SELECT
u.username owner
, t.name table_name
, c.name foreign_key_name
, decode(bitand(cd.defer,32),32, 'Y', 'N') is_rely
FROM
dba_users u
, sys.obj$ t
, sys.con$ c
, sys.cdef$ cd
WHERE u.user_id = t.owner#
AND t.type# IN (2,4) /* table, view */
AND t.obj# = cd.obj#
AND cd.con# = c.con#
AND cd.type# = 4 /* referential */
AND ( t.owner# = UID
OR t.obj# IN
(SELECT obj# FROM sys.objauth$
WHERE ( grantee# = UID
OR grantee# IN
(SELECT privilege#
FROM sys.sysauth$
WHERE privilege# > 0
START WITH grantee# = UID
CONNECT BY PRIOR privilege# = grantee#)))
OR EXISTS /* SELECT ANY TABLE */
(SELECT null FROM v$enabledprivs
WHERE priv_number = -47))
WITH READ ONLY
SELECT
U.USERNAME OWNER
, T.NAME TABLE_NAME
, C.NAME FOREIGN_KEY_NAME
, DECODE(BITAND(CD.DEFER
, 32)
, 32
, 'Y'
, 'N') IS_RELY
FROM
DBA_USERS U
, SYS.OBJ$ T
, SYS.CON$ C
, SYS.CDEF$ CD
WHERE U.USER_ID = T.OWNER#
AND T.TYPE# IN (2
, 4) /* TABLE
, VIEW */
AND T.OBJ# = CD.OBJ#
AND CD.CON# = C.CON#
AND CD.TYPE# = 4 /* REFERENTIAL */
AND ( T.OWNER# = UID
OR T.OBJ# IN
(SELECT OBJ#
FROM SYS.OBJAUTH$
WHERE ( GRANTEE# = UID
OR GRANTEE# IN
(SELECT PRIVILEGE#
FROM SYS.SYSAUTH$
WHERE PRIVILEGE# > 0
START WITH GRANTEE# = UID
CONNECT BY PRIOR PRIVILEGE# = GRANTEE#)))
OR EXISTS /* SELECT ANY TABLE */
(SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER = -47))
WITH READ ONLY
|
|
|