SELECT M."CLUSTER_ID",M."DATABASE_NAME",M."DESCRIPTION",M."DB_LOCATION",M."HIVE_URI" FROM DBA_HIVE_DATABASES M, SYS.USER$ U
WHERE U.user# = USERENV('SCHEMAID') AND
-- Current 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 */)
)
)
OR
-- If current user is neither SYS nor DBA, then do the following checks
-- User must have read privilege on ORACLE_BIGDATA_CONFIG directory
(((U.NAME IN (SELECT GRANTEE FROM
ALL_TAB_PRIVS
WHERE TABLE_NAME = 'ORACLE_BIGDATA_CONFIG' AND
PRIVILEGE = 'READ')) OR
('PUBLIC' IN (SELECT GRANTEE FROM
ALL_TAB_PRIVS
WHERE TABLE_NAME = 'ORACLE_BIGDATA_CONFIG' AND
PRIVILEGE = 'READ')))))
SELECT M."CLUSTER_ID"
, M."DATABASE_NAME"
, M."DESCRIPTION"
, M."DB_LOCATION"
, M."HIVE_URI"
FROM DBA_HIVE_DATABASES M
, SYS.USER$ U
WHERE U.USER# = USERENV('SCHEMAID') AND
-- CURRENT 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 */)
)
)
OR
-- IF CURRENT USER IS NEITHER SYS NOR DBA
, THEN DO THE FOLLOWING CHECKS
-- USER MUST HAVE READ PRIVILEGE ON ORACLE_BIGDATA_CONFIG DIRECTORY
(((U.NAME IN (SELECT GRANTEE FROM
ALL_TAB_PRIVS
WHERE TABLE_NAME = 'ORACLE_BIGDATA_CONFIG' AND
PRIVILEGE = 'READ')) OR
('PUBLIC' IN (SELECT GRANTEE FROM
ALL_TAB_PRIVS
WHERE TABLE_NAME = 'ORACLE_BIGDATA_CONFIG' AND
PRIVILEGE = 'READ')))))
|
|
|