Oracle更改用户密码过期,取消密码验证
在测试环境学习oracle,出现用户密码过期的问题,更改密码提示验证未通过,因为为测试环境,为方便期间,不需要经常修改密码,在此发现profile的使用方法,记录如下。
SQL> SELECT * FROM dba_profiles ;
查看用户所属的 profile ,一般为DEFAULT
SQL>select * from dba_profiles where resource_type='PASSWORD';
SQL> alter user lh identified by lh;
alter user lh identified by lh
ORA-28003: password verification for the specified password failed
ORA-20001: Password same as or similar to user
取消密码管理:
SQL>alter profile DEFAULT limit unlimited;
如:
SQL>alter profile DEFAULT limit password_reuse_time unlimited;
停止密码检验函数:
SQL>alter profile DEFAULT limit password_verify_function null;
创建 用户 专用 profile:
CREATE PROFILE test LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL 3000
CONNECT_TIME 45
LOGICAL_READS_PER_SESSION DEFAULT
LOGICAL_READS_PER_CALL 1000
PRIVATE_SGA 15K
COMPOSITE_LIMIT 5000000;
如需更改:
SQL>alter profile test limit PASSWORD_LIFE_TIME 60 ;
更改用户profile
SQL>alter user scott profile test;
****************************************************************
Oracle数据库用户密码过期处理
1、sqlplus 用户/密码@数据库服务 as sysdba;
2、select username,profile from dba_users;
3、select * from dba_profiles s where s.profile='default' and resource_name='password_life_time';
4、alter profile default limit password_life_time unlimited;
如果用户已经被锁定,则执行5,否则不用执行5;
5、alter user 用户 identified by 密码 account unlock;
//////////////////////////////////////
/*查看用户所属的 profile,一般为DEFAULT*/
SELECT * FROM dba_profiles;
select * from dba_profiles where resource_type='PASSWORD' and profile=upper('PROFILE1');
/*停止密码检验函数:*/
alter profile PROFILE1 limit PASSWORD_VERIFY_FUNCTION null;
alter user yufeng profile DEFAULT;
alter profile PROFILE1 limit PASSWORD_LIFE_TIME 60 ;
alter profile PROFILE1 limit password_life_time unlimited;
/*如果用户已经被锁定,则执行下面SQL,否则不用执行;*/
alter user 用户 identified by 密码 account unlock;
***********************************************************************************************
=》Oracle密码复杂度设置(Oracle_Password_Complexity)
一、Oracle_Password_Complexity:
SQL> alter system set resource_limit = true;
SQL> @ $ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql → [verify_function|verify_function_11G]
SQL> alter profile default limit password_verify_function verify_function;
# 取消Oracle密码复杂度检查:
SQL> alter profile default limit password_verify_function null;
SQL> SELECT profile,resource_type,resource_name,limit FROM dba_profiles WHERE resource_type='PASSWORD' AND profile='DEFAULT';
1.FAILED_LOGIN_ATTEMPTS: 用户在登录尝试失败n次后被锁定。
2.PASSWORD_LOCK_TIME: 登录尝试失败达到指定次数,用户锁定时长,以“Day”为单位。
3.PASSWORD_LIFE_TIME: 用户口令的生命周期。
4.PASSWORD_GRACE_TIME: 表示用户口令使用时间超过其生命周期后,可以延续使用的天数,并且可延续时间内登录会有相应口令即将过期的提示。
5.PASSWORD_REUSE_TIME: 指定了口令不能重用前的天数。
6.PASSWORD_REUSE_MAX: 在达到PASSWORD_REUSE_TIME指定时间后,要再次使用同一口令前必须改变的次数。
如:PASSWORD_REUSE_TIME=30,PASSWORD_REUSE_MAX=10,用户可以在30天以后重用该口令,要求口令必须被改变超过10次。
7.PASSWORD_VERIFY_FUNCTION: Oracle允许将复杂的PL/SQL密码验证脚本做为参数传递给PASSWORD_VERIFY_FUNCTION。并且其自己提供了一个默认的脚本,但是用户可以创建自己的验证规则或使用第三方软件验证。
8.Password Verify Function:
When you create a password verify function for verifying the user password, this function can verify the following password characteristics:
1.The minimum number of characters for the password.
2.The characters that the password must contain, such as when a password should contain a specific number of numeric, alphabetic or special characters.
3.Whether or not the password can be the same as the username.Whether or not the new password can be similar to the previous password.
Oracle 11g数据库密码区分大小写的设置 → SEC_CASE_SENSITIVE_LOGON = TRUE.