Oracle系列---【如何修改oracle密码?优雅切换密码】
1.问题描述
接审计要求,已上线的数据库的密码属于弱口令,需要更改成严格的,但是服务又不能停机,这种情况下,只能在原有用户名上新增代理用户,这里不能用新建用户的方案,因为用户间不能共用schema,所以只能用新增代理用户的方案。切换到代理用户的过程中发现,"ORA-28000: The account is locked",代理用户PROXY_COM_SMM[COM_SMM]被锁了,这是因为COM_SMM被锁了导致的。oracle用户之所以被锁住,主要是因为修改了数据库用户COM_SMM的密码,应用配置文件中的COM_SMM的密码未来得及修改导致的。
2.解决方案
采用代理用户的原因:代理用户和真实用户可以共用一个schema,并且密码相互独立,可以当做新用户使用。
通过下面的sql定位到是哪个服务器的账户密码错误导致的用户被锁定,先停掉对应的服务,再解锁用户即可。
# 查看COM_SMM用户是否被锁住,"ORA-28000: The account is locked",下面的28000就是账户被锁的错误码。
SELECT * FROM DBA_AUDIT_SESSION WHERE USERNAME='COM_SDM' AND ACTION_NAME='LOGON' AND RETURNCODE=28000 ORDER BY "TIMESTAMP" DESC;
# 查看COM_SMM用户的登录失败的日志,通过USERHOST定位到是哪台机器导致的,下面的1017指的是账户名密码错误的错误码。
SELECT * FROM DBA_AUDIT_SESSION WHERE USERNAME='COM_SMM' AND ACTION_NAME='LOGON' AND RETURNCODE=1017 ORDER BY "TIMESTAMP" DESC;
# 解锁COM_SMM用户
ALTER USER COM_SMM ACCOUNT UNLOCK;
愿你走出半生,归来仍是少年!