0

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

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

4

2 回答 2

2
  1. ROLE特权,请通过阅读例如,了解您的选择。配置访问控制
    您必须考虑以下因素的组合:

    • 有效ROLE;确保在创建表时USER AAA两者USER BBB都在使用。ROLE SYSADMIN检查相关表的所有权,并运行命令SHOW ROLES以查看是否一切都按预期设置。
    • 或者用于GRANT OWNERSHIP ... FUTURE ...TO ROLE SYSADMIN确保SYSADMIN拥有每个对象
    • 使用拥有的 MANAGED SCHEMASYSADMIN来控制访问
  2. 您可以创建一个运行任意数量的 SQL 语句的JavaScript 存储过程,然后设置一个TASK运行/调用该过程。

于 2020-02-02T11:48:17.157 回答
0

先说几点:

  1. Snowflake 使用基于角色的访问控制 (RBAC)。这意味着使用什么用户并不重要,重要的是他们在做某事时激活了什么角色。

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

  3. 只有当活动角色是对象的所有者时,您才能删除对象,或者角色是创建它的角色的成员(它在角色层次结构中较高)

如果用户“AAA”使用SYSADMIN角色创建表,那么您需要确保用户“BBB”在SYSADMIN激活时删除表(或角色是SYSADMINlike的成员ACCOUNTADMIN

顺便说一句,我建议设置角色层次结构而不是分配太多人SYSADMIN

于 2020-02-02T17:38:07.400 回答