单一模式上的雪花授予选择
Posted
技术标签:
【中文标题】单一模式上的雪花授予选择【英文标题】:Snowflake Grant Select on single schema 【发布时间】:2019-10-30 09:18:17 【问题描述】:数据库:my_db
架构:my_schema_1、my_schema_2
表格:
my_schema_1:table_a,table_b my_schema_2:table_c,table_d我想为 my_schema_2 中的所有表授予选择权限。
use role securityadmin;
grant usage
on database my_db
to role dw_ro_role;
grant usage on schema my_db.my_schema_2
to role dw_ro_role;
grant select
on all tables in schema my_db.my_schema_2
to role dw_ro_role;
但是,这将授予对数据库中所有模式的访问权限。 (我认为通过授权使用)事实上,如果我:
grant usage on my_db...
revoke select on all tables in my_schema_2
我仍然可以查询所有内容。
如果我撤销对数据库 my_db 的使用,我将无法查询任何内容。
my_db 的所有者是系统管理员。架构的所有者是 etl_tool_role。
如何允许从仅选择的架构中的表中进行选择?
【问题讨论】:
【参考方案1】:您的赠款看起来不错,所以我想知道您是如何访问/测试它的。
或者role dw_ro_role
的实际授权可能比您在上面显示的要多。
如果您使用只有role dw_ro_role
且与默认角色相同的用户登录数据库,您应该只能访问schema my_db.my_schema_2
。
【讨论】:
我同意上面的答案。这些看起来不错,或者您正在使用不同的角色进行测试,或者该角色已经获得了更多的授权。唯一的附加评论是,您可能还需要考虑向架构中的未来表添加授权,因此您无需在创建新表时继续运行授权。 就像 Mike 说的那样检查你的PUBLIC
角色或任何其他已经获得授权的角色。以上是关于单一模式上的雪花授予选择的主要内容,如果未能解决你的问题,请参考以下文章