通过这个dba_profiles视图,可以查询目前所使用的密码函数。
select * from dba_profiles;
PROFILE RESOURCE_NAME RESOURCE LIMIT
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
SOX PASSWORD_VERIFY_FUNCTION PASSWORD SOX_VERIFY_FUNCTION
------------------------------ -------------------------------- -------- ----------------------------------------
DEFAULT PASSWORD_VERIFY_FUNCTION PASSWORD NULL
SOX PASSWORD_VERIFY_FUNCTION PASSWORD SOX_VERIFY_FUNCTION
可以看到默认的profil没有指定verify_function;而SOX profile 指定verify_function为 SOX_VERIFY_FUNCTION。
如何创建verify_function并授予相应的profile呢?
可以手动创建,或者执行$ORACLE_HOME
/rdbms/admin/utlpwdmg.sql脚本来create verify_function。不过需要注意的一点是,
utlpwdmg.sql脚本中包含有ALTER 语句,如果你不想按照脚本上的设定,可以有两点解决方法:
一、vi
utlpwdmg.sql脚本,将最末的
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;
那些值改成你想要的
注意,其实最后那句才是我们想要的。
二、手动复制&粘贴执行
utlpwdmg.sql脚本中前一部分内容(虽然前面占了大部分),然后手动执行
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION verify_function; 如果是其他profile的话,比如sox,则 ALTER PROFILE sox LIMIT PASSWORD_VERIFY_FUNCTION verify_function;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/11400965/viewspace-406669/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/11400965/viewspace-406669/