Snowflake - 按用户名授予权限

Snowflake - Grant permissions by username

我正在尝试将某些实体的读取权限限制为特定用户。

在 Oracle 中我会简单地做

GRANT SELECT ON sensitive_schema.my_table1 TO error_2646;
GRANT SELECT ON sensitive_schema.my_table2 TO error_2646;
GRANT SELECT ON sensitive_schema.my_tableN TO error_2646;

或理想情况下在架构级别

GRANT SELECT ON sensitive_schema TO error_2646;

我可以在 Snowflake 中执行此操作吗?在文档中,权限似乎是由 Snowflake 中的角色管理的,我不想更改此人的角色。

https://docs.snowflake.com/en/sql-reference/sql/grant-privilege.html

由于 Snowflake 的权限方法是基于角色的访问控制 (RBAC),您将无法向特定用户授予 G​​RANTS。

如果你绝对不想为此工作,也许你可以看看Dynamic Data Masking。您将能够使用 current_user() 向特定用户屏蔽数据。但是您必须为要屏蔽的每个字段类型创建一个屏蔽策略,并将此策略应用于您 table 中的每个字段,因此与角色方法相比,我不推荐这种方法。