【问题标题】: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。

如何允许从仅选择的架构中的表中进行选择?

【问题讨论】:

    标签: snowflake-cloud-data-platform


    【解决方案1】:

    您的赠款看起来不错,所以我想知道您是如何访问/测试它的。
    或者role dw_ro_role 的实际授权可能比您在上面显示的要多。

    如果您使用只有role dw_ro_role 且与默认角色相同的用户登录数据库,您应该只能访问schema my_db.my_schema_2

    【讨论】:

    • 我同意上面的答案。这些看起来不错,或者您正在使用不同的角色进行测试,或者该角色已经获得了更多的授权。唯一的附加评论是,您可能还需要考虑向架构中的未来表添加授权,因此您无需在创建新表时继续运行授权。
    • 就像 Mike 说的那样检查你的 PUBLIC 角色或任何其他已经获得授权的角色。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2021-12-12
    • 2021-10-21
    • 2014-08-10
    相关资源
    最近更新 更多