转载自:
http://blog.csdn.net/snowqoo/article/details/2657431
SQL> conn /as sysdba
已连接。
锁定用户的方法:
SQL> alter user test account lock;
用户已更改。
-------test用户登陆数据库,失败了。
C:/>sqlplus test/test
ERROR:
ORA-28000: the account is locked
解锁的方法:
SQL> conn /as sysdba
SQL> alter user test account unlock;
用户已更改。
select Distinct 'alter system kill session '||chr(39)||b.sid||','||b.serial#||chr(39)||';'
As cmd,b.username,b.logon_time
from v$locked_object a,v$session b
where a.session_id=b.sid
order by b.logon_time
执行cmd字段显示的命令即可。
回答人的补充 2011-04-11 14:14注意之前的SQL查出来的是持有锁的所有会话,也可以加一句,查出锁定指定对象的会话
select Distinct 'alter system kill session '||chr(39)||b.sid||','||b.serial#||chr(39)||';'
As cmd,b.username,b.logon_time
from v$locked_object a,v$session b
where a.session_id=b.sid
AND a.object_id =
(select object_id from dba_objects
where object_name = 'table_name'
and owner = 'xxx' and rownum = 1)
order by b.logon_time