select '1','2',
g.obj#, value(o),
(select j.longdbcs from sys.javasnm$ j where j.short = o.name),
u1.name, u2.name, p.name, g.sequence#,
NVL(g.option$,0),
(select c.name from sys.col$ c where g.obj#=c.obj# and g.col#=c.col#
and bitand(c.property, 1) = 0 -- exclude ADT attribute column
and bitand(c.property, 1024) = 0 -- exclude Nested table column
and bitand(c.property, 416) = 0) /* exclude system generated,
hidden and stored in lob cols */
from sys.ku$_edition_schemaobj_view o, sys.objauth$ g, sys.user$ u1, sys.user$ u2,
sys.table_privilege_map p
where g.obj#=o.obj_num and
g.grantor#=u1.user# and
g.grantee#=u2.user# and
g.privilege#=p.privilege and
(o.type_num != 2 or /* not a table or... */
exists (select 1 from tab$ t /* not a nested table */
where t.obj#=o.obj_num
and bitand(t.property,8192)!=8192))
and
(SYS_CONTEXT('USERENV','CURRENT_USERID')
IN (g.grantor#, g.grantee#, o.owner_num, 0) OR
g.grantee#=1 OR
EXISTS ( SELECT * FROM sys.session_roles
WHERE role='SELECT_CATALOG_ROLE' ))
SELECT '1'
, '2'
,
G.OBJ#
, VALUE(O)
,
(SELECT J.LONGDBCS
FROM SYS.JAVASNM$ J
WHERE J.SHORT = O.NAME)
,
U1.NAME
, U2.NAME
, P.NAME
, G.SEQUENCE#
,
NVL(G.OPTION$
, 0)
,
(SELECT C.NAME
FROM SYS.COL$ C
WHERE G.OBJ#=C.OBJ#
AND G.COL#=C.COL#
AND BITAND(C.PROPERTY
, 1) = 0 -- EXCLUDE ADT ATTRIBUTE COLUMN
AND BITAND(C.PROPERTY
, 1024) = 0 -- EXCLUDE NESTED TABLE COLUMN
AND BITAND(C.PROPERTY
, 416) = 0) /* EXCLUDE SYSTEM GENERATED
,
HIDDEN
AND STORED IN LOB COLS */
FROM SYS.KU$_EDITION_SCHEMAOBJ_VIEW O
, SYS.OBJAUTH$ G
, SYS.USER$ U1
, SYS.USER$ U2
,
SYS.TABLE_PRIVILEGE_MAP P
WHERE G.OBJ#=O.OBJ_NUM AND
G.GRANTOR#=U1.USER# AND
G.GRANTEE#=U2.USER# AND
G.PRIVILEGE#=P.PRIVILEGE AND
(O.TYPE_NUM != 2 OR /* NOT A TABLE OR... */
EXISTS (SELECT 1
FROM TAB$ T /* NOT A NESTED TABLE */
WHERE T.OBJ#=O.OBJ_NUM
AND BITAND(T.PROPERTY
, 8192)!=8192))
AND
(SYS_CONTEXT('USERENV'
, 'CURRENT_USERID')
IN (G.GRANTOR#
, G.GRANTEE#
, O.OWNER_NUM
, 0) OR
G.GRANTEE#=1 OR
EXISTS ( SELECT *
FROM SYS.SESSION_ROLES
WHERE ROLE='SELECT_CATALOG_ROLE' ))
|
|
|