ALTER PASSWORD POLICY

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

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

另请参阅:

DDL 命令

语法

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(含)。

默认值:14

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 个较旧的密码值。

默认值:5

最大值:24

COMMENT = 'string_literal'

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

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

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

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

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

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 和权限的其他详细信息,请参阅 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
语言: 中文