Oracle数据库如果没有指定配置profile,那么通常用户所使用的时默认的profile,名称为DEFAULT,而在默认的profile中规定了每个用户口令的有效期为180天,查询方式如下:
SQL>SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
PS:如果在数据库中用户配置了指定的自定义配置的profile,那么将DEFAULT改为指定的名称。
如果在数据库上线后使用默认的profile:DEFAULT,那么在数据库运行超过180天后没有进行用户口令重置,就会在链接数据库用户时报错:ORA-28002。此时可将密码重置或者将用户密码设置为不过期的装填。
Oracle数据库用户口令永不过期设置方法:
以下步骤以具有DBA权限用户操作
1.查看口令失效用户的profile文件
SQL>SELECT username,profile FROM dba_users;
2.查看对应的概要文件的口令有效期设置
SQL>SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3.将口令有效期默认值180天修改成“无限制”
SQL>ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
该参数修改实时生效。
注意:
出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED,即建议客户能够定期修改数据库用户口令。
在修改PASSWORD_LIFE_TIME值之前已经失效的用户,还是需要重新修改一次密码才能使用。
SQL>alter user user_name identified by password;
查询dba_users的account_status字段,它有以下值
ACCOUNT_STATUS
OPEN
EXPIRED --这个状态表示已经过期了
EXPIRED(GRACE)
LOCKED(TIMED)
LOCKED
EXPIRED & LOCKED(TIMED)
EXPIRED(GRACE) & LOCKED(TIMED)
EXPIRED & LOCKED
EXPIRED(GRACE) & LOCKED