create_verify_function 过程
您可以使用 Amazon RDS 过程 rdsadmin.rdsadmin_password_verify.create_verify_function
创建自定义函数来验证密码。所有版本的 RDS for Oracle 都支持 create_verify_function
过程。
create_verify_function
过程具有以下参数。
参数名称 | 数据类型 | 默认值 | 必需 | 描述 |
---|---|---|---|---|
|
varchar2 |
— |
是 |
自定义函数的名称。将在 SYS 架构中为您创建此函数。为用户配置文件分配此函数。 |
|
number |
8 |
否 |
要求的字符的最小数量。 |
|
number |
256 |
否 |
允许的字符的最大数量。 |
|
number |
1 |
否 |
要求的字母的最小数量。 |
|
number |
0 |
否 |
要求的大写字母的最小数量。 |
|
number |
0 |
否 |
要求的小写字母的最小数量。 |
|
number |
1 |
否 |
要求的数字的最小数量。 |
|
number |
0 |
否 |
要求的特殊字符的最小数量。 |
|
number |
3 |
否 |
旧密码和新密码之间需要的不同字符的最小数。 |
|
布尔值 |
true |
否 |
设置为 |
|
布尔值 |
true |
否 |
设置为 |
|
布尔值 |
true |
否 |
设置为 |
|
布尔值 |
true |
否 |
设置为 |
|
布尔值 |
false |
否 |
设置为 |
|
布尔值 |
false |
否 |
设置为 |
可以创建多个密码验证函数。
自定义函数的名称受到一些限制。您的自定义函数不能具有与现有系统对象相同的名称。名称长度不能超过 30 个字符。另外,名称必须包括以下字符串之一:PASSWORD
、VERIFY
、COMPLEXITY
、ENFORCE
或 STRENGTH
。
下面的示例创建一个名为 CUSTOM_PASSWORD_FUNCTION
的函数。此函数要求密码具有至少 12 个字符、2 个大写字符、1 个数字和 1 个特殊字符,并且该密码禁止使用 @ 字符。
begin rdsadmin.rdsadmin_password_verify.create_verify_function( p_verify_function_name => '
CUSTOM_PASSWORD_FUNCTION
', p_min_length =>12
, p_min_uppercase =>2
, p_min_digits =>1
, p_min_special =>1
, p_disallow_at_sign =>true
); end; /
要查看验证函数的文本,请查询 DBA_SOURCE
。以下示例获取名为 CUSTOM_PASSWORD_FUNCTION
的自定义密码函数的文本。
COL TEXT FORMAT a150 SELECT TEXT FROM DBA_SOURCE WHERE OWNER = 'SYS' AND NAME = '
CUSTOM_PASSWORD_FUNCTION
' ORDER BY LINE;
要将您的验证函数与用户配置文件关联,请使用 alter
profile
。以下示例将验证函数与 DEFAULT
用户配置文件关联。
ALTER PROFILE
DEFAULT
LIMIT PASSWORD_VERIFY_FUNCTIONCUSTOM_PASSWORD_FUNCTION
;
要查看哪些用户配置文件与哪些验证函数关联,请查询 DBA_PROFILES
。以下示例获取与名为 CUSTOM_PASSWORD_FUNCTION
的自定义验证函数关联的配置文件。
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD' AND LIMIT = '
CUSTOM_PASSWORD_FUNCTION
'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------- -------------------------------- -------- ------------------------ DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD CUSTOM_PASSWORD_FUNCTION
以下示例获取所有配置文件以及与之关联的密码验证函数。
SELECT * FROM DBA_PROFILES WHERE RESOURCE_NAME = 'PASSWORD_VERIFY_FUNCTION'; PROFILE RESOURCE_NAME RESOURCE LIMIT ------------------------- -------------------------------- -------- ------------------------ DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD CUSTOM_PASSWORD_FUNCTION RDSADMIN PASSWORD_VERIFY_FUNCTION PASSWORD NULL