使用 Oracle 11g,有没有办法可以防止我的用户密码需要更新(ORA-28001)?
答案1
Oracle 中密码的过期时间由分配给用户的配置文件控制。您可以通过查询 DBA_USERS 表来查看分配给每个用户的配置文件
SELECT username, profile
FROM dba_users
您似乎已经达到PASSWORD_LIFE_TIME
限制。在 11g 之前,默认配置文件将此设置为无限制。为了提高安全性,11.1 开始强制定期更改密码。您可以通过创建新配置文件并将该新配置文件分配给现有用户或更新已分配给用户的现有配置文件来恢复旧行为。由于听起来您想为所有人更改此行为,因此修改默认配置文件可能更容易。
ALTER PROFILE default
LIMIT password_life_time UNLIMITED
当然,如果第一个查询表明您的用户被分配了除 DEFAULT 之外的配置文件,那么您可能希望更改该配置文件。
如果你对配置文件控制的其他行为感兴趣,创建个人资料文档非常有用。
答案2
我已经被烧伤很多次了,所以我把它们都设置为:
set pages 60
select * from dba_profiles where profile='DEFAULT';
alter profile default limit FAILED_LOGIN_ATTEMPTS UNLIMITED;
alter profile default limit PASSWORD_LIFE_TIME UNLIMITED;
alter profile default limit PASSWORD_GRACE_TIME UNLIMITED;
alter profile default limit PASSWORD_LOCK_TIME UNLIMITED;
select * from dba_profiles where profile='DEFAULT';