oracle11g 设置密码永不过期

2022-04-01 15:18:05

在oracle database 11g中,默认在default概要文件中设置了“PASSWORD_LIFE_TIME=180天”所导致。密码过期后,业务进程连接数据库异常,影响业务使用。数据库密码过期后,业务进程一旦重启会提示连接失败。注:Oracle 11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以下方式进行修改:

 

1.查看用户的proifle是哪个(一般是default):

1
SQL> select username,profile from dba_users where username='user_name';

 

2.查看概要文件密码有效期设置:

1

SQL> select from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

 ( sqlplus / as sysdba  修改对所有用户生效)

 

3.如果密码有效期被设置为180天,那么将需要进行如下修改:

1
SQL> alter profile default limit password_life_time unlimited; 

修改后不需要重启数据库,修改将立即生效。

注意:修改后,还没有被提示ORA-28002警告的账户不会再碰到同样的问题,已经被提示的用户仍需要再修改一次密码,方法如下:

1
SQL> alter user user_name identified by password;         --这里的password使用原来的密码即可

 对于有些用户修改密码后提示密码复杂度不够的可以重置为null

取消Oracle密码复杂度检查:

SQL> alter profile default limit password_verify_function null;


一个特殊的ora-28002错误:

注意到SQL语句中包含dblink(红框部分),故将dblink所属的用户的密码重置即可。

1
2
SQL> alter profile default limit password_life_time unlimited;
SQL> alter user dblinkusr identified by efutureone;