Oracle 常见问题解决方法
解决ORA-28002:密码过期问题
-
警告信息:
ERROR: ORA-28002: the password will expire within 7 days
-
原因分析:
- 1
- 1
中默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”。 而10g之前版本的Oracle仍默UNLIMITED
- 解决办法:
- 查看用户的proifle是那个,一般是default:
sql> SELECT username,PROFILE FROM dba_users where username='INFDB' ;
- 查看指定概要文件(如default)的密码有效期设置:
sql> SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
- 将密码有效期由默认的180天修改成“无限制”:
sql> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
- 修改后,还没有被提示ORA-28002警告的用户不会再碰到同样的提示;
已经被提示的用户必须再改一次密码,举例如下:
$sqlplus / as sysdba
sql> alter user testUser identified by <原来的密码>
- 查看用户的proifle是那个,一般是default:
--1. 创建新的profile(PASSWD_UNLIMIT)复制DEFAULT的Script
CREATE PROFILE "PASSWD_UNLIMIT" LIMIT
SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME 180
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 7
PASSWORD_VERIFY_FUNCTION NULL;
SELECT * FROMdba_profiles;
--2. 修改新建的profile(PASSWD_UNLIMIT),密码过期为不过期
ALTER profilePASSWD_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
--3. 修改用户的Profile为新的profile
alter user MESSERIES profile PASSWD_UNLIMIT;