雪花用户/角色管理

时间:2020-02-02 09:14:33

标签: snowflake-cloud-data-platform snowflake-schema snowflake-task

我具有角色为“ sysadmin”的其他用户。 当作为系统管理员的用户“ AAA”正在创建表时,一切正常,但是当用户“ BBB”要删除/创建或替换用户“ AAA”创建的表时,我们将收到“权限不足的错误” ”。我该怎么办?我有什么需要改变的吗?

** sysadmin中的所有用户在所需的架构,数据库,表上都具有“ GRANT ALL”。

2 个答案:

答案 0 :(得分:2)

  1. ROLE特权,请阅读例如以获得有关您的选择的概述。 Configuring Access Control
    您必须考虑以下各项的组合:

    • 有效的ROLE;确保创建表时USER AAAUSER BBB都在使用ROLE SYSADMIN。检查相关表的所有权,然后运行命令SHOW ROLES以查看是否已按预期设置所有内容。
    • 或者使用GRANT OWNERSHIP ... FUTURE ...TO ROLE SYSADMIN来确保SYSADMIN拥有每个对象
    • 使用SYSADMIN拥有的管理架构来控制访问权限
  2. 您可以创建一个运行任意数量的SQL语句的JavaScript Stored Procedure,然后设置一个TASK来运行/调用该过程。

答案 1 :(得分:0)

首先要提出几点:

  1. Snowflake使用基于角色的访问控制(RBAC)。这意味着使用什么用户都没有关系,这与他们在执行某项操作时激活的角色有关。

  2. 在创建对象(如表)时激活的角色成为该对象的所有者

  3. 仅当活动角色是对象的所有者, OR 时,才可以删除对象(该角色是创建该对象的角色的成员) )

如果用户“ AAA”使用SYSADMIN角色创建了表,则需要确保在激活SYSADMIN时用户“ BBB”正在删除表(或者是成员角色) SYSADMIN之类的ACCOUNTADMIN

顺便说一句,我建议您建立角色层次结构,而不要分配太多人SYSADMIN