select /*+ ORDERED NO_USE_MERGE(ro) */
t.schema OWNER, q.name NAME, q.eventid QID
from system.aq$_queues q, system.aq$_queue_tables t,sys.obj$ ro
where q.table_objno = t.objno
and ro.obj# = q.eventid
and (ro.owner# = userenv('SCHEMAID')
or ro.obj# in
(select oa.obj#
from sys.objauth$ oa
where oa.privilege# = 21 and
grantee# in (select kzsrorol from x$kzsro))
or exists (select null from v$enabledprivs
where priv_number in (-218 /* MANAGE ANY QUEUE */,
-220 /* DEQUEUE ANY QUEUE */))
or (bitand(t.flags, 8) = 0
and (exists (select null from sys.objauth$ oa, sys.obj$ o
where oa.obj# = o.obj#
and o.owner# = 0
and (o.name = 'DBMS_AQ' or o.name = 'DBMS_AQADM')
and o.type# = 9
and oa.grantee# = userenv('SCHEMAID'))))
)
SELECT /*+ ORDERED NO_USE_MERGE(RO) */
T.SCHEMA OWNER
, Q.NAME NAME
, Q.EVENTID QID
FROM SYSTEM.AQ$_QUEUES Q
, SYSTEM.AQ$_QUEUE_TABLES T
, SYS.OBJ$ RO
WHERE Q.TABLE_OBJNO = T.OBJNO
AND RO.OBJ# = Q.EVENTID
AND (RO.OWNER# = USERENV('SCHEMAID')
OR RO.OBJ# IN
(SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE OA.PRIVILEGE# = 21 AND
GRANTEE# IN (SELECT KZSROROL
FROM X$KZSRO))
OR EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER IN (-218 /* MANAGE ANY QUEUE */
,
-220 /* DEQUEUE ANY QUEUE */))
OR (BITAND(T.FLAGS
, 8) = 0
AND (EXISTS (SELECT NULL
FROM SYS.OBJAUTH$ OA
, SYS.OBJ$ O
WHERE OA.OBJ# = O.OBJ#
AND O.OWNER# = 0
AND (O.NAME = 'DBMS_AQ' OR O.NAME = 'DBMS_AQADM')
AND O.TYPE# = 9
AND OA.GRANTEE# = USERENV('SCHEMAID'))))
)
|
|
|