サイドバーの壁紙
博主头像
tin博主等级

子の曰わく、我れ三人行なえば必ず我が師を得(う)。其の善き者を択びてこれに従う。其の善からざる者にしてこれを改む。

  • 累積執筆 74 記事
  • 累計作成 32 タグ
  • 累計受入 2 コメント

目 次CONTENT

記事目次

Oracleユーザーの権限とロールをどのように確認するか

tin
tin
2023-10-01 / 0 コメント / 0 いいね! / 4,621 読み / 589 文字

Oracleユーザーの権限とロールをどのように確認するか

1. すべてのユーザーを表示する:

select * from dba_users;
select * from all_users;
select * from user_users;

補足:dba_* > all_* > user_*

(1) dba_* : データベースのすべてのオブジェクト
 ※DBA(データベース管理者)権限を持つユーザーのみがこのビューを参照できます。
(2) all_* :現在のユーザーが所有している、またはアクセスできるすべてのオブジェクト
(3) user_*:現在のユーザーが所有しているすべてのオブジェクト

2. ユーザーまたはロールのシステム権限(ユーザーまたはロールに直接割り当てられたシステム権限)を表示する:

select * from dba_sys_privs;
select * from user_sys_privs;

3. ロールが持つ権限を表示する(ログインユーザーが持っているロールのみが表示されます):

sql>select * from role_sys_privs;

4. ユーザーオブジェクトの権限を表示する:

select * from dba_tab_privs;
select * from all_tab_privs;
select * from user_tab_privs;

5. すべてのロールを表示する:

select * from dba_roles;

6. ユーザーまたはロールが持つロールを表示する:

select * from dba_role_privs;
select * from user_role_privs;

7. sysdbaまたはsysoperシステム権限を持つユーザーを表示する(クエリを実行するには適切な権限が必要です):

select * from V$PWFILE_USERS

たとえば、ユーザー「tin」が持つ権限を表示する場合:

SQL> select * from dba_sys_privs where grantee='tin';

GRANTEE                        PRIVILEGE                                ADMIN_OPTION
------------------------------ ---------------------------------------- ------------
tin                            CREATE TRIGGER                           NO
tin                            UNLIMITED TABLESPACE                     NO

たとえば、ユーザー「tin」が持つロールを表示する場合:

SQL> select * from dba_role_privs where grantee='tin';

GRANTEE   GRANTED_ROLE   ADMIN_OPTION  DEFAULT_ROLE
------------------------------ ------------------------------ ------------ ------------
tin                           DBA                         NO              YES

あるユーザーのすべての権限およびロールを表示する場合:

select privilege from dba_sys_privs where grantee='tin'
union
select privilege from dba_sys_privs where grantee in 
(select granted_role from dba_role_privs where grantee='tin' );
0
  • 0

コメント欄