How to check tables which are having Row access policy in Snowflake - security

I have created few tables in a schema and a row access policy with "create or replace row access policy <policy_name>.." command.
Then I have added the row access policy to the tables with "alter table <table_name> add row access policy <policy_name>..."
It is working as expected. My question is, In future, If I want to get a list of tables in a schema that are having the row access policy, How can I get that?
"show tables .. " command doesn't show that table has a row access policy.

I just had the same issue and I think I figured it out.
Check out the docs here - https://docs.snowflake.com/en/sql-reference/functions/policy_references.html.
You can search for row access policies based on the policy name or the object name that you want to check.
In your example, let's say your table is called my_db.my_schema.my_table. To view row access policies on the table, just run:
use database my_db;
use schema information_schema;
select *
from table(information_schema.policy_references(ref_entity_name => 'my_db.my_schema.my_table', ref_entity_domain => 'table'));

Related

Kentico - Unable to find a custom user column

I just took over a project from a developer who has already left an organisation and I'm doing some maintenance work in the project. I can see the following code in a custom web part
CurrentUserInfo CurrentUser = MembershipContext.AuthenticatedUser;
DateTime ExpirationDate = CurrentUser.GetValue("aps_expirationdate", DateTime.Now);
The strange thing is, I cannot seem to find this custom field 'aps_expirationdate' anywhere in the system or in the database.
I checked the following places but couldn't find it.
Checked Membership module 'User' class and 'User - Settings' class
Checked 'User' module
Did a manual Sql Search in the database to find a table with a column name 'aps_expirationdate'
but I cannot seem to find this column anywhere and the other strange thing is, when I debug the code it does return a date value. No bugs in the code so, cannot say that this is an invalid column name. Where else should I look?
Based on what you've put in your initial question, it sounds as if the column was added manually and not through the Kentico UI. In order for the data access layer or the Kentico API to know that field exists, the definition has to be stored within the Kentico module class and not just in the database.
Here's what I'd do to correct this:
Find what table the field exists in. If you want the custom field to be part of the User or User Settings objects then they need to be added to either the CMS_User or CMS_UserSetting table.
If the field does not exist in either the CMS_User or CMS_UserSetting table, then go to the Modules app in the Kentico UI.
In the Modules App, go to Membership > Classes > Users > Fields and add the aps_expirationdate field.
If you have data in the field aps_expirationdate in the other table, write a query to copy it from the other table to the CMS_User table.
Now the API call as noted above will work.
If the field is already in the CMS_User or CMS_UserSetting table, then you will have to do the following:
In SSMS, rename that field to aps_expirationdate_old.
In the Modules App, go to Membership > Classes > Users > Fields and add the aps_expirationdate field.
Assuming you have data in the aps_expirationdate_old field in the CMS_User or CMS_UserSetting table, write a query to copy it from the other table to the CMS_User table.
Your last bullet point states you "Did a manual Sql Search in the database to find a table with a column name 'aps_expirationdate'". This contradicts what you state at the end of your question which states "I cannot seem to find this column anywhere". If you cannot find what table the aps_expirationdate exists in, then check out the following SO answer to find that column in a given database.
https://stackoverflow.com/a/4849704/698678

Azure Data Factory passing a parameter into a function (string replace)

I'm trying to use ADF to create azure table storage tables from one source SQL table.
Within my pipeline..
I can query a distinct list of customers pass this into a for-each
task.
Inside the for each select the data for each customer
But when I try to to create an Azure table for each customers data with the table name based on the customer ID I hit errors.
The customer ID is a GUID so I'm trying to format this to remove the dashes which are invalid in a table name...
Something along the lines of
#replace('#{item().orgid}','-','')
So 7fb6d90f-2cc0-40f5-b4d0-00c82b9935c4 becomes 7fb6d90f2cc040f5b4d000c82b9935c4
I can't seem to get the syntax right
Any ideas?
try this: #replace(item().orgid,'-','').

Query to update a table contents in azure table storage

Is it possible to update a column using Query in azure table storage ? The table has already 100 records and now I have added a new column. For the previous 100 records , the newly added column value is "null" as shown in the image. I just want to set a default value for all the 100 records. I need to know how to update the table.
There are several ways to edit columns in Azure storage, you can use the Update Entity functionality to do via Web requests, I'd recommend checking the documentation, Then you can also use Storage Explorer to modify single columns if you have enough permissions.

How to automatically update data source and index for a view in Azure Search

How can I update the exiting data source which is create from azure SQL view.
What are steps I need to follow once when dealing with azure search for Database view.
My Data source& index should be updated once my view gets updates.
Assuming that by "updating the view" you mean adding more columns to the SELECT clause:
You don't need to update the datasource as long as you didn't change the name of the view or the credentials.
You will need to add newly added fields to your index definition. This doesn't happen automatically. Once you add new fields to your index schema, indexer will start populating those fields for newly indexed rows. To populate documents that have already been indexed, reset the indexer (in the portal or using the Reset Indexer API).

FileMaker Pro pop up values from related table

I have a portal in my contacts table layout that shows related mention in a second "mentions" table. This related table has a relationship to a third "sources" table that I want the user to select from when they view the data in the "mentions" portal of my "contacts" layout. This works for the most part. The problem comes when the user changes the "source" in the portal then attempts to change the "source" in the next portal row t will change the "source" to the last select source regardless to make a selection
any ideas ?
here are some screen shots of how I have it setup
portal and specified field
and field control setup
and the relationship
You are modifying the value of the source field in the sources table, which is not what you want. You only want to use that data to populate your value list and store the serial number of that source (or the source text) in your mentions table.
1) Create a value list from sources using all values from the sources field.
2) Create a new field in the Mentions table called 'source.'
3) Add that field to the portal and remove the current sources field.
4) Apply the value list to your new field.
It sounds like your portal isn't actually the mentions table, but the sources table. Either that or the field that you're using to change the "source" is not in the mentions table, or is not the correct Table Occurrence.
The portal should be based on the Mentions table, and should contain a field in that table that refers to the sources table, not a field from the sources table.
Either way, to diagnose it further, I'd probably need more detail.

Resources