ALTER SESSION POLICY¶
修改现有会话策略的属性。
在下一个使用会话策略的 SQL 查询运行时,对会话策略属性所做的任何更改才会生效。
- 另请参阅:
语法¶
ALTER SESSION POLICY [ IF EXISTS ] <name> RENAME TO <new_name>
ALTER SESSION POLICY [ IF EXISTS ] <name> SET
[ SESSION_IDLE_TIMEOUT_MINS = <integer> ]
[ SESSION_UI_IDLE_TIMEOUT_MINS = <integer> ]
[ ALLOWED_SECONDARY_ROLES = ( [ { 'ALL' | <role_name> [ , <role_name> ... ] } ] ) ]
[ COMMENT = '<string_literal>' ]
ALTER SESSION POLICY [ IF EXISTS ] <name> SET
TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]
ALTER SESSION POLICY [ IF EXISTS ] <name> UNSET TAG <tag_name> [ , <tag_name> ... ]
ALTER SESSION POLICY [ IF EXISTS ] <name> UNSET
[ SESSION_IDLE_TIMEOUT_MINS ]
[ SESSION_UI_IDLE_TIMEOUT_MINS ]
[ ALLOWED_SECONDARY_ROLES ]
[ COMMENT ]
参数¶
name
会话策略的标识符;对于您的账户必须是唯一的。
标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
RENAME TO new_name
指定会话策略的新标识符;对于您的账户必须是唯一的。
有关更多详细信息,请参阅 标识符要求。
可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定
new_name
值,该值分别以db_name.schema_name.object_name
或schema_name.object_name
的形式包含新数据库和/或架构名称。备注
目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。
除非 对象所有者(即拥有对象 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。
SET ...
指定要为会话策略设置的一个或多个参数(用空格、逗号或新行分隔)。
SESSION_IDLE_TIMEOUT_MINS = integer
对于 Snowflake 客户端和程序化客户端,在用户必须再次对 Snowflake 进行身份验证之前,会话可以空闲的分钟数。如果未指定值,Snowflake 将使用默认值。
分钟数可以是介于
30
和5
(含)之间的任意整数。默认值:``30``(半小时)
SESSION_UI_IDLE_TIMEOUT_MINS = integer
对于 Snowsight,在用户必须再次对 Snowflake 进行身份验证之前,会话可以空闲的分钟数。如果未指定值,Snowflake 将使用默认值。
分钟数可以是介于
30
和5
(含)之间的任意整数。默认值:``30``(半小时)
ALLOWED_SECONDARY_ROLES = ( [ { 'ALL' | role_name [ , role_name ... ] } ] )
指定会话策略的次要角色(如果有)。
该属性的可能值为:
()
不允许次要角色。
('ALL')
允许所有次要角色。
( role_name [ , role_name ... ] )
允许指定的角色作为次要角色。次要角色可以是用户定义的账户角色或系统角色。指定存储在 Snowflake 中的角色名称。有关详细信息,请参阅 标识符要求。
默认:
('ALL')
。如果在创建新会话策略时未设置该属性,则允许所有次要角色。此外,如果取消设置此属性,则 DESCRIBE SESSION POLICY 命令输出中此属性的值为'ALL'
COMMENT = 'string_literal'
为会话策略添加注释或覆盖现有注释。
UNSET ...
指定一个或多个要取消设置的会话策略参数,这会将它们重置为系统默认值。
您可以使用单个 ALTER 语句重置多个属性。每个属性 必须 用逗号分隔。重置属性时,仅指定名称。为该属性指定值将返回错误。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
OWNERSHIP |
会话策略 |
OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). |
请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。
有关会话策略 DDL 和权限的其他详细信息,请参阅 管理会话策略。
使用说明¶
如果您要更新现有掩码策略,并且需要查看该策略的当前定义,请调用 GET_DDL 函数或运行 DESCRIBE SESSION POLICY 命令。
在执行 ALTER 语句之前,您可以先执行 DESCRIBE SESSION POLICY 语句,确定策略的属性值。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
示例¶
以下示例更新了会话策略,使 Snowsight 会话超时值为 15
分钟。
DESC SESSION POLICY session_policy_prod_1;
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
| createdOn | name | sessionIdleTimeoutMins | sessionUIIdleTimeoutMins | comment |
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
| Mon, 11 Jan 2021 00:00:00 -0700 | session_policy_prod_1 | 30 | 30 | session policy for use in the prod_1 environment |
+---------------------------------+-----------------------+------------------------+--------------------------+--------------------------------------------------+
ALTER SESSION POLICY session_policy_prod_1 SET SESSION_UI_IDLE_TIMEOUT_MINS = 15;