CREATE PASSWORD POLICY¶
创建新的密码策略或替换现有的密码策略。
创建密码策略后,将密码策略应用于使用 ALTER ACCOUNT 语句的账户或使用 ALTER USER 语句的用户。
语法¶
CREATE [ OR REPLACE ] PASSWORD POLICY [ IF NOT EXISTS ] <name>
[ 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>' ]
必填参数¶
name
密码策略的标识符;对于您的账户必须是唯一的。
标识符值必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如
"My object"
)。放在双引号内的标识符也区分大小写。有关更多详细信息,请参阅 标识符要求。
可选参数¶
PASSWORD_MIN_LENGTH = integer
指定密码必须包含的最小字符数。
支持的范围:8 到 256(含)。
默认值:8
PASSWORD_MAX_LENGTH = integer
指定密码必须包含的最大字符数。此数字必须大于或等于
PASSWORD_MIN_LENGTH
、PASSWORD_MIN_UPPER_CASE_CHARS
和PASSWORD_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'
为密码策略添加注释或覆盖现有注释。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE PASSWORD POLICY |
架构 |
请注意,对架构中的对象进行操作还需要对父数据库和架构具有 USAGE 权限。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。
有关密码策略 DDL 和权限的其他详细信息,请参阅 管理密码策略。
使用说明¶
如果您想替换现有密码策略并需要查看该策略的当前定义,请调用 GET_DDL 函数或运行 DESCRIBE PASSWORD POLICY 命令。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
为当前账户创建名为 password_policy_prod_1
的密码策略:
CREATE PASSWORD POLICY PASSWORD_POLICY_PROD_1 PASSWORD_MIN_LENGTH = 12 PASSWORD_MAX_LENGTH = 24 PASSWORD_MIN_UPPER_CASE_CHARS = 2 PASSWORD_MIN_LOWER_CASE_CHARS = 2 PASSWORD_MIN_NUMERIC_CHARS = 2 PASSWORD_MIN_SPECIAL_CHARS = 2 PASSWORD_MIN_AGE_DAYS = 1 PASSWORD_MAX_AGE_DAYS = 30 PASSWORD_MAX_RETRIES = 3 PASSWORD_LOCKOUT_TIME_MINS = 30 PASSWORD_HISTORY = 5 COMMENT = 'production account password policy';