oracle数据库账户被锁原因查找及处理

最近部署项目,启动之后有一个账户一直被锁。

数据库账户被锁一般是连接用户密码错误次数超过限制,被锁死。

查找原因:

1.查看连接配置的用户名密码是否有误。

这个如果有误,改一下配置就好了。

2.查看是否因为自己的连接造成的锁死。

这个有的时候会被坑,原来部署项目,发现账户一直被锁,配置怎么看都没问题,最后发现是别人的连接造成的账户被锁。

查看哪些用户连接该数据库的信息 sql

 SELECT osuser, a.username,cpu_time/executions/1000000||'s', sql_fulltext,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executions desc; 


发现别的电脑访问连接该账户造成锁死。

解决办法:

如果连接的电脑不是自己的,修改密码错误锁死限制次数。

查看用户的状态sql

select username,account_status,lock_date from dba_users;

查看密码错误次数锁死信息

select * from dba_profiles  where resource_name  like 'FAILED_LOGIN_ATTEMPTS%';


修改该次数

alter profile default limit FAILED_LOGIN_ATTEMPTS 50;

也可以改为不限制(安全考虑,不建议)

alter profile default limit FAILED_LOGIN_ATTEMPTS unlimited;

总之,配置问题尽量把配置改好。密码错误次数不限制尽量不要用。

解锁用户

1.通过plsql界面操作,找到user,右键,edit


去掉勾选

2.通过sql。
alter user test account unlock;  



Oracle数据库用户被定时,我们需要找出被定的原因。以下是几种可能的原因及其解决方案: 1. 密码错误次数超过限制 如果用户在一定时间内输入错误密码的次数超过了限制,那么该用户将被定。可以通过以下语句查找定的用户: ``` SELECT * FROM dba_users WHERE account_status LIKE '%LOCKED%'; ``` 解定的用户: ``` ALTER USER username ACCOUNT UNLOCK; ``` 2. 用户自己定 如果用户在自己的会话中使用了以下命令将自己定,则该用户将被定: ``` ALTER USER username ACCOUNT LOCK; ``` 解定的用户: ``` ALTER USER username ACCOUNT UNLOCK; ``` 3. 账户过期 如果用户的账户过期,该用户将被定。可以通过以下语句查找已过期的用户: ``` SELECT * FROM dba_users WHERE expiry_date < SYSDATE AND account_status NOT IN ('LOCKED', 'EXPIRED(GRACE)'); ``` 解定的用户: ``` ALTER USER username ACCOUNT UNLOCK; ``` 4. 触发器定 如果用户在执行某些操作时触发了一个定触发器,则该用户将被定。可以查找该用户的会话ID,并使用以下命令终止会话: ``` SELECT s.sid, s.serial#, s.username, s.status, s.osuser, s.machine FROM v$session s, v$process p WHERE s.paddr = p.addr AND s.username = 'username'; ALTER SYSTEM KILL SESSION 'sid,serial#'; ``` 需要注意的是,在终止会话之前,必须与用户确认是否要终止该会话。 总之,要解决Oracle用户被的问题,需要先找出被定的原因,然后根据具体情况采取相应的措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值