联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
怎么找出通过dblink访问的用户信息?这个问题困惑了很久,今天在朋友的帮助下,终于通过基表实现了这个功能,记录下来
SELECT /*+ ORDERED */ S.KSUSEMNM "O_HOSTNAME",S.KSUSEPID "O_SPID",--操作dblink用户信息 G.K2GTITID_ORA "O_TXID", S.INDX "S_SID",S.KSUSESER "S_SERIAL#",--dblink session信息 DECODE(BITAND(KSUSEIDL, 11), 1, 'ACTIVE', 0, DECODE(BITAND(KSUSEFLG, 4096), 0, 'INACTIVE', 'CACHED'), 2, 'SNIPED', 3, 'SNIPED', 'KILLED') "S_STATUS", S.KSUUDNAM "DBLINK_USER" FROM SYS.X$K2GTE G, SYS.X$KTCXB T, SYS.X$KSUSE S WHERE G.K2GTDXCB = T.KTCXBXBA AND G.K2GTDSES = T.KTCXBSES AND S.ADDR = G.K2GTDSES;
查询结果如下
O_HOSTNAME O_SPID O_TXID S_SID S_SERIAL# S_STATUS DBLINK_USER ----------------------- ---------- ----------------------- ---------- ---------- -------- ------------ localhost.localdomain 2571 MCRM.757120d4.8.31.21425 5462 20 INACTIVE TEST1 localhost.localdomain 1021 MCRM.757120d4.6.17.21298 5467 664 INACTIVE TEST localhost.localdomain 1385 MCRM.757120d4.10.2.16138 5473 155 INACTIVE TEST
如果需要获取更加信息的信息,可以通过结合两端的v$session和v$process视图获得