您的位置:首页 > 数据库 > Oracle

oracle数据库用户被锁定

2016-07-06 17:52 761 查看

1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间

SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; 

Session altered. 

2、查看具体的被锁时间   

select username,lock_date,profile from dba_users WHERE USERNAME LIKE '%USR%';

SQL> select username,lock_date from dba_users where username='TEST'; 

USERNAME LOCK_DATE  TEST 2011-03-10 08:51:03

3、解锁

SQL> alter user test account unlock; 

User altered. 

4、查看是那个ip造成的test用户被锁

查看$Oracle_HOME/network/admin/log/listener.log日志

10-MAR-2011 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=218.77.123.123)(PORT=49434)) * establish * lhoms * 0

10-MAR-2011 08:51:03 * (CONNECT_DATA=(SID=lhoms)(SERVER=DEDICATED)(CID=(PROGRAM=oracle)(HOST=omstestdb)(USER=oraoms))) * (ADDRESS=(PROTOCOL=tcp)(HOST=218.77.123.123)(PORT=49435)) * establish * lhoms * 0

这样可知是上面218.77.123.123的ip尝试多次失败登陆造成的被锁

注:

一般数据库默认是10次尝试失败后锁住用户

1、查看FAILED_LOGIN_ATTEMPTS的值

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;  

***********************以下步骤执行可以解决:

1.查看用户的proifle是哪个,一般是default

 SELECT username,PROFILE FROM dba_users;

 2.查看对应的概要文件(如default)的密码有效期设置

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

 3.将概要文件(如default)的密码有效期由默认的180天修改成“无限制”(修改之后不需要重启动数据库,会立即生效)

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

 4.对已经锁定和过期的账号进行解锁

 (1)alter user 用户名 identified by 原来的密码 account unlock; ----不用换新密码,用户名和密码也不用加引号,这个命令会解锁账号,同时取消密码过期。

 (2)alter user 用户名 account unlock;  ****************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息