ALTER PASSWORD POLICY

修改现有密码策略的属性。

在下一个使用密码策略的 SQL 查询运行时,对密码策略属性所做的任何更改才会生效。

另请参阅:

管理密码策略

语法

ALTER PASSWORD POLICY [ IF EXISTS ] <name> RENAME TO <new_name>

ALTER PASSWORD POLICY [ IF EXISTS ] <name> SET [ PASSWORD_MIN_LENGTH = <integer> ]
                                               [ PASSWORD_MAX_LENGTH = <integer> ]
                                               [ PASSWORD_MIN_UPPER_CASE_CHARS = <integer> ]
                                               [ PASSWORD_MIN_LOWER_CASE_CHARS = <integer> ]
                                               [ PASSWORD_MIN_NUMERIC_CHARS = <integer> ]
                                               [ PASSWORD_MIN_SPECIAL_CHARS = <integer> ]
                                               [ PASSWORD_MIN_AGE_DAYS = <integer> ]
                                               [ PASSWORD_MAX_AGE_DAYS = <integer> ]
                                               [ PASSWORD_MAX_RETRIES = <integer> ]
                                               [ PASSWORD_LOCKOUT_TIME_MINS = <integer> ]
                                               [ PASSWORD_HISTORY = <integer> ]
                                               [ COMMENT = '<string_literal>' ]

ALTER PASSWORD POLICY [ IF EXISTS ] <name> SET TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]

ALTER PASSWORD POLICY [ IF EXISTS ] <name> UNSET TAG <tag_name> [ , <tag_name> ... ]

ALTER PASSWORD POLICY [ IF EXISTS ] <name> UNSET [ PASSWORD_MIN_LENGTH ]
                                                 [ PASSWORD_MAX_LENGTH ]
                                                 [ PASSWORD_MIN_UPPER_CASE_CHARS ]
                                                 [ PASSWORD_MIN_LOWER_CASE_CHARS ]
                                                 [ PASSWORD_MIN_NUMERIC_CHARS ]
                                                 [ PASSWORD_MIN_SPECIAL_CHARS ]
                                                 [ PASSWORD_MIN_AGE_DAYS ]
                                                 [ PASSWORD_MAX_AGE_DAYS ]
                                                 [ PASSWORD_MAX_RETRIES ]
                                                 [ PASSWORD_LOCKOUT_TIME_MINS ]
                                                 [ PASSWORD_HISTORY ]
                                                 [ COMMENT ]
Copy

参数

name

密码策略的标识符;对于您的账户必须是唯一的。

标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如 "My object")。放在双引号内的标识符也区分大小写。

有关更多详细信息,请参阅 标识符要求

RENAME TO new_name

指定会话策略的新标识符;对于您的账户必须是唯一的。

有关更多详细信息,请参阅 标识符要求

可以将对象移动到其他数据库和/或架构,同时选择重命名对象。为此,请指定一个限定 new_name 值,该值分别以 db_name.schema_name.object_nameschema_name.object_name 的形式包含新数据库和/或架构名称。

备注

  • 目标数据库和/或架构必须已存在。此外,新位置中不能存在同名对象;否则,该语句将返回错误。

  • 除非 对象所有者(即对对象拥有 OWNERSHIP 权限的角色)也拥有目标架构,否则禁止将对象移动到托管访问架构。

SET ...

指定要为密码策略设置的一个或多个参数(用空格、逗号或新行分隔)。

PASSWORD_MIN_LENGTH = integer

指定密码必须包含的最小字符数。

支持的范围:8 到 256(含)。

默认值:8

PASSWORD_MAX_LENGTH = integer

指定密码必须包含的最大字符数。此数字必须大于或等于 PASSWORD_MIN_LENGTHPASSWORD_MIN_UPPER_CASE_CHARSPASSWORD_MIN_LOWER_CASE_CHARS 之和。

支持的范围:8 到 256(含)。

默认值:256

PASSWORD_MIN_UPPER_CASE_CHARS = integer

指定密码必须包含的最小大写字符数。

支持的范围:0 到 256(含)。

默认值:1

PASSWORD_MIN_LOWER_CASE_CHARS = integer

指定密码必须包含的最小小写字符数。

支持的范围:0 到 256(含)。

默认值:1

PASSWORD_MIN_NUMERIC_CHARS = integer

指定密码必须包含的最小数字字符数。

支持的范围:0 到 256(含)。

默认值:1

PASSWORD_MIN_SPECIAL_CHARS = integer

指定密码必须包含的最小特殊字符数。

支持的范围:0 到 256(含)。

默认值:0

PASSWORD_MIN_AGE_DAYS = integer

指定用户在可以再次更改最近更改的密码之前必须等待的天数。

支持的范围:0 到 999(含)。

默认值:0

PASSWORD_MAX_AGE_DAYS = integer

指定一个天数,至多达到此天数时必须更改密码。

支持的范围:0 到 999(含)。

值为零(即 0)表示无需更改密码。Snowflake 不建议为默认账户级密码策略或任何用户级策略选择此值。相反,应选择符合您的内部安全准则的值。

默认值:90,代表密码必须每 90 天更改一次。

重要

此参数有状态。有关详细信息,请参阅 账户和用户的自定义密码策略 中的备注。

PASSWORD_MAX_RETRIES = integer

指定在被锁定之前可以尝试输入密码的最大次数。

支持的范围:1 到 10(含)。

默认值:5

重要

此参数有状态。有关详细信息,请参阅 账户和用户的自定义密码策略 中的备注。

PASSWORD_LOCKOUT_TIME_MINS = integer

指定在用尽指定的密码重试次数(即 PASSWORD_MAX_RETRIES)之后,用户账户将被锁定的分钟数。

支持的范围:1 到 999(含)。

默认值:15

重要

此参数有状态。有关详细信息,请参阅 账户和用户的自定义密码策略 中的备注。

PASSWORD_HISTORY = integer

指定 Snowflake 存储的最近密码数量。当用户更新其密码值时,不能重复这些存储的密码。

当前密码值不会计入历史记录。

在增大历史记录值时,Snowflake 将保存先前的值。

在减小该值时,Snowflake 会根据所设置的数量值保存存储的值。例如,如果历史记录值为 8,并且将历史记录值更改为 3,则 Snowflake 将存储最近的 3 个密码值,并删除历史记录中 5 个较旧的密码值。

默认值:0

最大值:24

COMMENT = 'string_literal'

为密码策略添加注释或覆盖现有注释。

TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

有关在语句中指定标签的信息,请参阅 对象和列的标签配额

UNSET ...

为密码策略指定一个或多个要取消设置的参数,这会将它们重置为系统默认值。

您可以使用单个 ALTER 语句重置多个属性。每个属性 必须 用逗号分隔。重置属性时,仅指定名称。为该属性指定值将返回错误。

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

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 和权限的其他详细信息,请参阅 管理密码策略

使用说明

  • 在执行此命令之前,请运行 DESCRIBE PASSWORD POLICY 命令以确定策略的属性值。

    如果您想更新现有密码策略并需要查看该策略的当前定义,请调用 GET_DDL 函数或运行 DESCRIBE PASSWORD POLICY 命令。

  • 禁止将密码策略移动到托管访问架构,除非 密码策略所有者(即具有密码策略的 OWNERSHIP 权限的角色)也是目标架构的所有者。有关更多信息,请参阅 访问控制权限概述

示例

以下示例介绍当前密码策略,随后更新密码策略以指定允许的密码重试次数:

DESC PASSWORD POLICY password_policy_prod_1;

ALTER PASSWORD POLICY password_policy_prod_1 SET PASSWORD_MAX_RETRIES = 3;
Copy
语言: 中文