架构:

ACCOUNT_USAGE

GRANTS_TO_ROLES 视图

此 Account Usage 视图可用于查询已向角色授予的访问控制权限。

列名称

数据类型

描述

CREATED_ON

TIMESTAMP_LTZ

向角色授予权限的日期和时间(采用 UTC 时区)。

MODIFIED_ON

TIMESTAMP_LTZ

更新权限的日期和时间(采用 UTC 时区)。

PRIVILEGE

VARCHAR

为角色添加的权限的名称。

GRANTED_ON

VARCHAR

授予权限的对象类型,如 TABLEDATABASE

NAME

VARCHAR

权限授予涉及的对象的名称。

TABLE_CATALOG

VARCHAR

当前表的数据库的名称,或者用于存储类实例的数据库的名称。

TABLE_SCHEMA

VARCHAR

当前表的架构的名称,或者用于存储类实例的架构的名称。

GRANTED_TO

VARCHAR

ROLEDATABASE_ROLEINSTANCE_ROLEAPPLICATION_ROLEAPPLICATION

GRANTEE_NAME

VARCHAR

收件人角色、被授予权限的角色或 Snowflake Native App 对象名称的标识符。

GRANT_OPTION

BOOLEAN

TRUE / FALSE。如果设置为 TRUE,则收件人角色可以向其他角色授予权限。

GRANTED_BY

VARCHAR

表示将权限授予被授予者的角色。SNOWFLAKE 系统角色授予的权限的 GRANTED_BY 显示为空。

DELETED_ON

TIMESTAMP_LTZ

撤销权限的日期和时间(采用 UTC 时区)。

GRANTED_BY_ROLE_TYPE

VARCHAR

APPLICATIONROLEDATABASE_ROLE

OBJECT_INSTANCE

VARCHAR

包含特定类的实例角色的对象的完全限定名称,格式为 database.schema.class

使用说明

  • 视图的延迟时间最长可达 120 分钟(2 小时)。

  • 视图不包含从通过共享创建的数据库向数据库角色授予的权限。

  • 视图不包含已删除对象的授权。

  • 视图会定期更新,以支持新对象。您可以使用 SHOW GRANTS TO ROLE 命令列出特定角色的所有授权。

  • GRANTED_BY 列表示将权限授予被授予者的角色。授权角色称为 授予者

    当您使用 GRANT <privileges> 向角色授予对象的权限时,以下授权规则确定将哪个角色列为权限的授予者:

    1. 如果 活跃角色 是对象所有者(即对对象具有 OWNERSHIP 权限),则该角色是授予者。

    2. 如果活跃角色拥有已授权的授予选项的指定权限(即,授予活跃角色权限,该活跃角色拥有 GRANT <privileges> 的 WITH GRANT OPTION 子句,其中 <role_name> 是其中一个活跃角色)。如果是,那么拥有已授权的授予选项的权限角色就是授予者角色。请注意,如果多个活跃角色满足此标准,则无法确定哪个角色成为授予者角色。

    3. 如果一个活跃角色拥有全局 MANAGE GRANTS 权限,则授予者角色是对象所有者,而 不是 拥有 MANAGE GRANTS 权限的角色。也就是说,MANAGE GRANTS 权限允许角色模拟对象所有者,以便对该对象授予权限。

    对于 Snowflake SYSTEM 角色授予的权限,GRANTED_BY 列显示为空。此角色执行某些内部操作。客户无法修改 SYSTEM 角色所授予的权限。

语言: 中文