oracle数据库用户密码过期

oracle数据库用户设置密码有效期后,如果密码过期,使用程序调用该用户时会报错:ORA-28001:the password has expired

可以将相关用户所属profile更改为永不过期,也可以为已过期用户更改密码

使用oracle用户以sysdba身份登录sqlplus
sqlplus / as sysdba

将用户user11的密码修改为NewPasswd
SQL> alter user user11 identified by NewPasswd

使用新密码登录oracle以验证密码有效性
sqlplus user11/NewPasswd@ora_name

如果用户登录时报错提示ORA-28000:用户已被锁,需要回到sysdba身份解锁用户
SQL> alter user user11 account unlock;

查询用户所属的profile是哪个
SQL> select username,profile from dba_users;

查询所有用户,通过CREATED列的时间与当前时间差,推测出密码已经过期的用户
SQL> select * from all_users;

通过LIMIT列查询各profile当前设置的密码有效天数
SQL> select * from dba_profiles where resource_name='PASSWORD_LIFE_TIME';

示例,将default的profile密码有效期修改为180天/永久
SQL> alter profile default limit PASSWORD_LIFE_TIME 180;
SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited;

设置密码永不过期后,未过期的用户会立即生效变为永久,但那些已经过期的用户需要修改一次密码才可以正常使用
以上内容修改之后,不需要重启服务,会立即生效

posted on 2022-04-08 11:04  越野兔  阅读(1049)  评论(0编辑  收藏  举报

导航