[Home] [Help]
select u.name, o.name, 'TABLE',
decode(bitand(c.property, 1), 1, a.name, c.name), pc.pos#
from partcol$ pc, obj$ o, col$ c, user$ u, attrcol$ a
where pc.obj# = o.obj# and pc.obj# = c.obj# and c.intcol# = pc.intcol# and
c.obj# = a.obj#(+) and c.intcol# = a.intcol#(+) and
u.user# = o.owner# and o.subname IS NULL and
o.namespace = 1 and o.remoteowner IS NULL and o.linkname IS NULL and
(o.owner# = userenv('SCHEMAID')
or pc.obj# in
(select oa.obj#
from sys.objauth$ oa
where grantee# in ( select kzsrorol
from x$kzsro
)
)
or /* user has system privileges */
exists (select null from v$enabledprivs
where priv_number in (-45 /* LOCK ANY TABLE */,
-47 /* SELECT ANY TABLE */,
-397/* READ ANY TABLE */,
-48 /* INSERT ANY TABLE */,
-49 /* UPDATE ANY TABLE */,
-50 /* DELETE ANY TABLE */)
)
)
union
select u.name, io.name, 'INDEX',
decode(bitand(c.property, 1), 1, a.name, c.name), pc.pos#
from partcol$ pc, obj$ io, col$ c, user$ u, ind$ i, attrcol$ a
where pc.obj# = i.obj# and i.obj# = io.obj# and i.bo# = c.obj# and
c.intcol# = pc.intcol# and u.user# = io.owner# and
c.obj# = a.obj#(+) and c.intcol# = a.intcol#(+) and
io.subname IS NULL and
io.namespace = 4 and io.remoteowner IS NULL and io.linkname IS NULL and
(io.owner# = userenv('SCHEMAID')
or i.bo# in
(select oa.obj#
from sys.objauth$ oa
where grantee# in ( select kzsrorol
from x$kzsro
)
)
or /* user has system privileges */
exists (select null from v$enabledprivs
where priv_number in (-45 /* LOCK ANY TABLE */,
-47 /* SELECT ANY TABLE */,
-397/* READ ANY TABLE */,
-48 /* INSERT ANY TABLE */,
-49 /* UPDATE ANY TABLE */,
-50 /* DELETE ANY TABLE */)
)
)
SELECT U.NAME
, O.NAME
, 'TABLE'
,
DECODE(BITAND(C.PROPERTY
, 1)
, 1
, A.NAME
, C.NAME)
, PC.POS#
FROM PARTCOL$ PC
, OBJ$ O
, COL$ C
, USER$ U
, ATTRCOL$ A
WHERE PC.OBJ# = O.OBJ#
AND PC.OBJ# = C.OBJ#
AND C.INTCOL# = PC.INTCOL# AND
C.OBJ# = A.OBJ#(+)
AND C.INTCOL# = A.INTCOL#(+) AND
U.USER# = O.OWNER#
AND O.SUBNAME IS NULL AND
O.NAMESPACE = 1
AND O.REMOTEOWNER IS NULL
AND O.LINKNAME IS NULL AND
(O.OWNER# = USERENV('SCHEMAID')
OR PC.OBJ# IN
(SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO
)
)
OR /* USER HAS SYSTEM PRIVILEGES */
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER IN (-45 /* LOCK ANY TABLE */
,
-47 /* SELECT ANY TABLE */
,
-397/* READ ANY TABLE */
,
-48 /* INSERT ANY TABLE */
,
-49 /* UPDATE ANY TABLE */
,
-50 /* DELETE ANY TABLE */)
)
)
UNION
SELECT U.NAME
, IO.NAME
, 'INDEX'
,
DECODE(BITAND(C.PROPERTY
, 1)
, 1
, A.NAME
, C.NAME)
, PC.POS#
FROM PARTCOL$ PC
, OBJ$ IO
, COL$ C
, USER$ U
, IND$ I
, ATTRCOL$ A
WHERE PC.OBJ# = I.OBJ#
AND I.OBJ# = IO.OBJ#
AND I.BO# = C.OBJ# AND
C.INTCOL# = PC.INTCOL#
AND U.USER# = IO.OWNER# AND
C.OBJ# = A.OBJ#(+)
AND C.INTCOL# = A.INTCOL#(+) AND
IO.SUBNAME IS NULL AND
IO.NAMESPACE = 4
AND IO.REMOTEOWNER IS NULL
AND IO.LINKNAME IS NULL AND
(IO.OWNER# = USERENV('SCHEMAID')
OR I.BO# IN
(SELECT OA.OBJ#
FROM SYS.OBJAUTH$ OA
WHERE GRANTEE# IN ( SELECT KZSROROL
FROM X$KZSRO
)
)
OR /* USER HAS SYSTEM PRIVILEGES */
EXISTS (SELECT NULL
FROM V$ENABLEDPRIVS
WHERE PRIV_NUMBER IN (-45 /* LOCK ANY TABLE */
,
-47 /* SELECT ANY TABLE */
,
-397/* READ ANY TABLE */
,
-48 /* INSERT ANY TABLE */
,
-49 /* UPDATE ANY TABLE */
,
-50 /* DELETE ANY TABLE */)
)
)
|
|
|
|