我具有角色为“ sysadmin”的其他用户。 当作为系统管理员的用户“ AAA”正在创建表时,一切正常,但是当用户“ BBB”要删除/创建或替换用户“ AAA”创建的表时,我们将收到“权限不足的错误” ”。我该怎么办?我有什么需要改变的吗?
** sysadmin中的所有用户在所需的架构,数据库,表上都具有“ GRANT ALL”。
答案 0 :(得分:2)
ROLE
特权,请阅读例如以获得有关您的选择的概述。 Configuring Access Control。
您必须考虑以下各项的组合:
ROLE
;确保创建表时USER AAA
和USER BBB
都在使用ROLE SYSADMIN
。检查相关表的所有权,然后运行命令SHOW ROLES
以查看是否已按预期设置所有内容。GRANT OWNERSHIP ... FUTURE ...TO ROLE SYSADMIN
来确保SYSADMIN
拥有每个对象SYSADMIN
拥有的管理架构来控制访问权限您可以创建一个运行任意数量的SQL语句的JavaScript Stored Procedure,然后设置一个TASK
来运行/调用该过程。
答案 1 :(得分:0)
首先要提出几点:
Snowflake使用基于角色的访问控制(RBAC)。这意味着使用什么用户都没有关系,这与他们在执行某项操作时激活的角色有关。
在创建对象(如表)时激活的角色成为该对象的所有者
仅当活动角色是对象的所有者, OR 时,才可以删除对象(该角色是创建该对象的角色的成员) )
如果用户“ AAA”使用SYSADMIN
角色创建了表,则需要确保在激活SYSADMIN
时用户“ BBB”正在删除表(或者是成员角色) SYSADMIN
之类的ACCOUNTADMIN
)
顺便说一句,我建议您建立角色层次结构,而不要分配太多人SYSADMIN
。