在 Snowflake 中创建和管理用户和角色的推荐角色

Recommended Role to Create and Manage users and roles in Snowflake

建议使用以下哪些角色来创建和管理用户和角色? A. 系统管理员 B. 安全管理员 C. PUBLIC D. 帐户

我对 SecurityAdmin 或 AccountAdmin 表示怀疑,因为两者都能够执行角色和用户的创建和管理,但就推荐而言,任何人都可以提出建议

这是一个很好的示意图,可以解释 Snowflake 中的角色层次结构,尤其是关于开箱即用的角色:

ACCOUNTADMIN 是 Snowflake 中的“顶级”角色,即最强大的角色。它封装了系统定义的 SYSADMIN 和 SECURITYADMIN 角色,应谨慎使用。

SECURITYADMIN 可以全局管理任何对象授权,以及创建、监控和管理用户和角色。更具体地说,此角色被授予 MANAGE GRANTS 安全特权,以便能够修改任何授权,包括撤销它,并通过系统角色层次结构继承 USERADMIN 角色的特权(例如,USERADMIN 角色被授予 SECURITYADMIN)。

USERADMIN 专用于用户和角色管理。更具体地说,这个角色被授予 CREATE USERCREATE ROLE 安全权限,并且可以在帐户中创建用户和角色。该角色还可以管理它拥有的用户和角色。只有对对象具有 OWNERSHIP 权限的角色(即用户或角色)或更高的角色才能修改对象属性。此外,该角色必须分别具有全局 CREATE USERCREATE ROLE 权限,才能修改其拥有的用户或角色。

SYSADMIN 具有在帐户中创建虚拟仓库和数据库(以及其他对象)的权限。如果按照建议,您创建了一个最终将所有自定义角色分配给 SYSADMIN 角色的角色层次结构,则该角色还能够将仓库、数据库和其他对象的权限授予其他角色。

PUBLIC 是自动授予帐户中每个用户和每个角色的伪角色。 PUBLIC 角色可以拥有安全对象,就像任何其他角色一样;但是,根据定义,该角色拥有的对象对所有其他用户都可用,并且您的 account.This 角色中的角色通常用于不需要显式访问控制并且所有用户在以下方面都被视为平等的情况他们的访问权限。

所以,正确答案是 USERADMIN 但由于 USERADMIN 不是一个选项,我们应该选择最低级别的角色,它具有管理用户和角色的必要权限,正如我们从图表和解释中看到的那样以上,应该是 SECURITYADMIN.

回答你的问题,给定的none。 USERADMIN 推荐用于此任务。

SECURITYADMIN角色权限过高,甚至可以给自己或别人授予ACCOUNTADMIN权限。 参考资料:Overview of Access Control

值得补充的是,还有一个非常重要的顶级角色:ORGADMIN,更多信息请看这里:Enabling the ORGADMIN Role.