1. ホーム
  2. sql

[解決済み] Oracleで、あるユーザーのすべての権限を表示するには?

2022-08-22 22:17:14

質問

どなたか、sql-console で特定のユーザーからのすべての権限/ルールを表示する方法を教えていただけませんか?

どのように解決するのですか?

以下のビューを試してみてください。

SELECT * FROM USER_SYS_PRIVS; 
SELECT * FROM USER_TAB_PRIVS;
SELECT * FROM USER_ROLE_PRIVS;

DBAやその他のパワーユーザは、他のユーザに与えられた権限を DBA_ バージョンで他のユーザに与えられた権限を見つけることができます。 これらは のドキュメントを参照してください。 .

これらのビューは、与えられた権限のみを表示する 直接 を表示します。 検索 すべて を見つけるには、より複雑な再帰的SQLステートメントが必要です。

select * from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER' order by 1,2,3;
select * from dba_sys_privs  where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3;
select * from dba_tab_privs  where grantee = '&USER' or grantee in (select granted_role from dba_role_privs connect by prior granted_role = grantee start with grantee = '&USER') order by 1,2,3,4;