【问题标题】:Recommended Role to Create and Manage users and roles in Snowflake [closed]在 Snowflake 中创建和管理用户和角色的推荐角色 [关闭]
【发布时间】:2026-01-03 18:20:03
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

    • 嗨罗伯特。谢谢你的解释。正如建议的那样,由于 UserAdmin 不是一个选项,因此将考虑 SecurityAdmin 来解决这个问题......
    【解决方案2】:

    回答你的问题,没有给定的。 USERADMIN 建议用于此任务。

    SECURITYADMIN 角色权限太高,它甚至可以将 ACCOUNTADMIN 权限授予自己或其他人。 参考文献:Overview of Access Control

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

    【讨论】:

    • 感谢迈克尔的建议。我从来没有听说过 OrgAdmin 现在会深入研究它。
    最近更新 更多