Oracle数据库操作中,我们有时会用到锁表查询以及解锁和kill进程等操作,那么这些操作是怎么实现的呢?本文我们主要就介绍一下这部分内容。
(1)锁表查询的代码有以下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
(2)查看哪个表被锁
select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
(3)查看是哪个session引起的
select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
(4)杀掉对应进程
执行命令:alter system kill session '1025,41'; (alter system kill session 'sid,serial#';)
其中1025为sid,41为serial#.
-------------------------------------------------------------------------------------------------------------------------------------
赋权:
【Oracle】想查询相关的v$视图,但是提示表或视图不存在解决办法
原因是使用的用户没有相关的查询权限导致
解决办法:
grant select any dictionary to 用户; --这个权限比较大
这个权限是最低的要求,但是可以访问到v$相关视图
grant select_catalog_role to 用户;
收回权限
revoke select_catalog_role from user; (revoke select_catalog_role from 用户名;)
--------------------- 作者:zclinux_ 来源:CSDN 原文:https://blog.csdn.net/imliuqun123/article/details/79192396?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!
备注:
赋权后,该账户重新登录。