ORACLE密码过期,修改密码

.连接数据库
sqlplus "/as sysdba"

sqlplus user_name/password@ip:port/sid

查询数据库是否安装
select status from v$instance;
如果数据库状态为open,那么说明数据库已经安装。

查看口令失效的用户的profile文件(一般为default)
select username,profile from dba_users;

查看指定文件的密码有效期
SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

修改密码有效期(修改后立即生效,不需重启数据库)
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;


断开数据库连接

exit

如果用户的密码已经过期,还需要再修改一次密码才能使用。

alter user user_name identified by password;

user_name是用户名,password是新密码。
如果账户被锁:ORA-28000: the account is locked,则使用如下语句解锁。

alter user user_name account unlock;

commit;


----------------------------------------------------------------------------------------
取消密码管理: 'alter profile default limit password_reuse_max unlimited;'
'alter profile default limit password_reuse_time unlimited;'

 

修改数据密码为原密码

-----------------------------------------------------------------------------------

SELECT 'ALTER USER '||NAME||' IDENTIFIED BY VALUES '''||PASSWORD||''';' FROM SYS.USER$ WHERE PASSWORD IS NOT NULL

查询出来后执行修改数据库密码为原来的密码

 如果不能修改,则是由于设置了权限。无法进行更改,改一下权限就好


1)password_reuse_time和password_reuse_max都为unlimted的时候
可以随便重置
2)当指定password_reuse_time和password_reuse_max其中一个,另外一个unlimted的时候
密码永远无法重置


3)当同时指定password_reuse_time和password_reuse_max的时候
在满足password_reuse_max的时候,可以重置密码
在同时满足password_reuse_time和password_reuse_max的时候,可以重置密码
在满足password_reuse_time但从为更换过密码的时候,也就是password_reuse_max一次也没用的时候密码无法重置.

 

posted @ 2020-03-05 11:22  不会游泳的鱼丶  阅读(594)  评论(0编辑  收藏  举报