特定のユーザーの 2 つの異なるテーブルからロールと権限を取得しようとしています。私のクエリはこれです:
Select r.grantee, r.granted_role , s.privilege
From dba_role_privs r, dba_sys_privs s
Where r.grantee=s.grantee and r.grantee=(select username from dba_users where username='HR');
私はこれで終わっています:
GRANTEE GRANTED_ROLE PRIVILEGE
---------- -------------------- --------------------
HR DBA CREATE VIEW
HR RESOURCE CREATE VIEW
HR DBA UNLIMITED TABLESPACE
HR RESOURCE UNLIMITED TABLESPACE
HR DBA CREATE DATABASE LINK
HR RESOURCE CREATE DATABASE LINK
HR DBA CREATE SEQUENCE
HR RESOURCE CREATE SEQUENCE
HR DBA CREATE SESSION
HR RESOURCE CREATE SESSION
HR DBA ALTER SESSION
GRANTEE GRANTED_ROLE PRIVILEGE
---------- -------------------- --------------------
HR RESOURCE ALTER SESSION
HR DBA CREATE SYNONYM
HR RESOURCE CREATE SYNONYM
14 rows selected.
ユーザーが多くのロール/権限を持っていない場合は問題ありませんが、たとえばSYSのようなユーザーの場合、私は最終的に10600 rows selected.
クエリの結果を改善する方法はありますか? 私は参加を逃しましたか?
PS: 私は oracle 11g に取り組んでいます。
あなたがそれをより良くするのを助けることができるなら、そうしてください
ありがとうございます!