select u.name, o.name, da.attname, dl.levelname, c.name, 'N'
from sys.dimattr$ da, sys.obj$ o, sys.user$ u, sys.dimlevel$ dl, sys.col$ c
where da.dimobj# = o.obj#
and o.owner# = u.user#
and da.dimobj# = dl.dimobj#
and da.levelid# = dl.levelid#
and da.detailobj# = c.obj#
and da.col# = c.intcol#
and (o.owner# = userenv('SCHEMAID')
or o.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 (-215 /* CREATE ANY DIMENSION */,
-216 /* ALTER ANY DIMENSION */,
-217 /* DROP ANY DIMENSION */)
)
)
SELECT U.NAME
, O.NAME
, DA.ATTNAME
, DL.LEVELNAME
, C.NAME
, 'N'
FROM SYS.DIMATTR$ DA
, SYS.OBJ$ O
, SYS.USER$ U
, SYS.DIMLEVEL$ DL
, SYS.COL$ C
WHERE DA.DIMOBJ# = O.OBJ#
AND O.OWNER# = U.USER#
AND DA.DIMOBJ# = DL.DIMOBJ#
AND DA.LEVELID# = DL.LEVELID#
AND DA.DETAILOBJ# = C.OBJ#
AND DA.COL# = C.INTCOL#
AND (O.OWNER# = USERENV('SCHEMAID')
OR O.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 (-215 /* CREATE ANY DIMENSION */
,
-216 /* ALTER ANY DIMENSION */
,
-217 /* DROP ANY DIMENSION */)
)
)
|
|
|