В настоящее время у меня есть база данных с несколькими ролями и пользователями, роли имеют несколько привилегий в таблицах и системе, и теперь я хочу перечислить все привилегии, предоставленные для системы и таблиц определенной ролью, назначенной пользователю.
У меня есть этот запрос, чтобы найти привилегии и роли таблицы, связанные с определенной ролью:
SELECT DR.GRANTED_ROLE, RP.PRIVILEGE, RP.TABLE_NAME FROM DBA_ROLE_PRIVS DR, role_tab_privs RP WHERE RP.ROLE=DR.GRANTED_ROLE AND DR.GRANTEE='ROLE';
и этот для системных привилегий, предоставленных пользователю:
SELECT PRIVILEGE
FROM dba_sys_privs
WHERE grantee = 'USR'
UNION
SELECT PRIVILEGE
FROM dba_role_privs rp JOIN role_sys_privs rsp ON (rp.granted_role = rsp.role)
WHERE rp.grantee = 'USR'
ORDER BY 1;
I 'Я не могу найти привилегии, предоставленные пользователям, поскольку у него нет общих столбцов с ролью privs и user privs.Любая помощь приветствуется.