共计 839 个字符,预计需要花费 3 分钟才能阅读完成。
现场在 Oracle 实施过程中,基于安全考虑(用户名和密码之前暴露给其他公司了),需要对用户密码进行修改。
修改过程很简单(alter user [username] identified by
此处含有隐藏内容,需要正确输入密码后可见!
;),但是在修改之后出现该用户被锁定的问题。
原因:数据库参数文件中设置了输错密码的次数,登录时当输错密码的次数超过所设置的次数时,则锁住该用户。默认一般为 10 次。输错密码锁住用户的设计原因:防止恶意的密码攻击。
一开始以为是内部人员不知道密码修改了,多次尝试登陆因为密码错误导致账户锁定。对账号进行了手动解锁(alter user [username] account unlock;),但是后续又出现多次锁定的情况。
后来发现我们在基于此用户做过一些 ETL 以及建立 DBLINK 等,对这些内容进行同步的密码更新解决用户锁定的问题。
下面是过程中问题排查方式:
1、查询出当前账号的锁定时间
select username,lock_date from dba_users where username=[username];
2、根据锁定时间查看日志文件
日志存放路径可以通过命令查看
可以通过日志文件定位访问的 IP 地址等信息(或者 trace 文件夹下的 listener.log 文件)。
在使用过程中,我们也可以修改允许的最大密码输入错误次数,具体修改方法如下:
1、查看当前设置值
select * from dba_profiles where RESOURCE_NAME=’FAILED_LOGIN_ATTEMPTS’;
2、修改为 30 次
alter profile default limit FAILED_LOGIN_ATTEMPTS 30;
3、修改为无限次(为安全起见,不建议使用)
alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;
更多 Oracle 相关信息见 Oracle 专题页面 https://www.linuxidc.com/topicnews.aspx?tid=12