怎么确定用户当前的SID、操作系统进程号PID等信息呢?

版权声明:本文为博主hw_libo原创文章,未经博主允许不得转载。 https://blog.csdn.net/HW_LiBo/article/details/6881457
 

方法一:
如果是sys或system用户或是有dba权限的用户,可以直接查询v$mystat即可得到
SQL> select sid from v$mystat where rownum=1;
       SID
----------
       143
然后再查询v$session
SQL> select sid,serial#,username,process from v$session where sid=143;
       SID    SERIAL# USERNAME        PROCESS
---------- ---------- ------------------------------ ------------
       143   579 SYS        5435

 

 

方法二:
如果是普通用户的话,是没有权限查询v$mystat和v$session,那么要实现必须要借助于dba管理员才可以,实现方法:
SQL> select sys_context('USERENV','SESSIONID') from dual;
SYS_CONTEXT('USERENV','SESSIONID')
-----------------------------------------------------
165  
此处得到的是v$session中的AUDSID字段中的值。
然后通过下面语句就可以查出SID,SERIAL#
SQL> select sid,serial#,username,process from v$session where audsid=165;
       SID    SERIAL# USERNAME        PROCESS
---------- ---------- ------------------------------ ------------
       149   136 SCOTT        5333

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页