动态表访问控制¶
本主题讨论对动态表执行创建、查询、更改、查看和删除等操作所需的权限。
要让用户完全访问动态表,可以执行以下任一操作:
要了解有关 Snowflake 权限模型的更多信息,请参阅 访问控制概述 和 访问控制权限。
创建动态表的权限¶
要创建动态表,必须使用具有以下权限的角色:
权限 |
对象 |
---|---|
CREATE DYNAMIC TABLE |
计划在其中创建动态表的架构。 |
SELECT |
计划为新动态表查询的现有表和视图。 |
USAGE |
计划用于新动态表的数据库和架构。 计划用于刷新表的仓库。 |
要创建依赖于另一个动态表的动态表,必须使用具有以下权限的角色:
权限 |
对象 |
---|---|
SELECT |
创建新的动态表时计划查询的动态表。 |
OPERATE |
新动态表依赖的所有上游动态表。只有在创建动态表时设置为同步刷新时才需要。 |
查询动态表的权限¶
要查询动态表,可以使用具有 创建动态表权限 的角色。对于用户(例如数据分析师)只需查询动态表的情况,可使用具有以下权限的角色:
权限 |
对象 |
---|---|
USAGE |
包含动态表的数据库和架构。 用于刷新表格的仓库。 |
SELECT |
查询的动态表。 |
更改动态表的权限¶
要更改动态表,必须使用拥有该动态表的 OWNERSHIP 或 OPERATE 权限的角色。
如果拥有动态表的 OPERATE 权限,可以使用 ALTER DYNAMIC TABLE 命令执行以下操作:
使用 ALTER ...SUSPEND 暂停动态表。
使用 ALTER ...RESUME 暂停动态表。
使用 ALTER ...REFRESH 暂停动态表。
使用 ALTER ...SET 暂停动态表。
查看动态表元数据的权限¶
要查看动态表的元数据和 Information Schema,必须使用具有该动态表 MONITOR 权限的角色。
虽然 OPERATE 权限授予了这一访问权限,但它也包括更改动态表的功能,因此 MONITOR 更适合用户不需要更改动态表的情况。例如,数据科学家拥有的角色。
如果拥有动态表的 MONITOR 权限,则可以执行以下操作:
使用 DESCRIBE DYNAMIC TABLE 命令和 Snowsight 动态表详细信息页面查看动态表的具体详细信息。如果只拥有动态表的 SELECT 权限,则以下字段会隐藏:
text
、warehouse
、scheduling_state
、last_suspended_on
和suspend_reason_code
(仅限 UI)。使用 SHOW DYNAMIC TABLES 命令查看可以访问哪些动态表。
导航至 DYNAMIC_TABLE_GRAPH_HISTORY 表函数,查看图表历史记录。
导航至 DYNAMIC_TABLE_REFRESH_HISTORY 表函数,查看刷新历史记录。
删除动态表的权限¶
要删除动态表,必须使用具有该动态表 OWNERSHIP 权限的角色。