ユーザに権限が付与されているロールの確認方法

ユーザに権限が付与されているロールを確認する場合、データディクショナリの
user_role_privs テーブルや、dba_role_privs テーブルを参照する。


テーブル定義

全ユーザのロール権限情報

SQL> desc dba_role_privs
 名前           NULL?    型
 ------------ -------- ------------
 GRANTEE               VARCHAR2(30)
 GRANTED_ROLE NOT NULL VARCHAR2(30)
 ADMIN_OPTION          VARCHAR2(3)
 DEFAULT_ROLE          VARCHAR2(3)

ユーザ自身に与えられたロール権限情報

SQL> desc user_role_privs

 名前           NULL?    型
 ------------ -------- ------------
 USERNAME              VARCHAR2(30)
 GRANTED_ROLE          VARCHAR2(30)
 ADMIN_OPTION          VARCHAR2(3)
 DEFAULT_ROLE          VARCHAR2(3)
 OS_GRANTED            VARCHAR2(3)

 

ロールを付与

例えば、HOGE ユーザへ付与したロールを確認する場合。
※ ロールを付与する権限( admin option )を有するユーザで行う。

SQL> grant connect,resource to hoge;

権限付与が成功しました。

権限を確認

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

GRANTEE GRANTED_ROLE ADMIN_ DEFAUL
------- ------------ ------ ------
HOGE    CONNECT      NO     YES
HOGE    RESOURCE     NO     YES

HOGE ユーザでログイン

SQL> conn hoge/hoge@ORCL
接続されました。

自分に付与されたロールを確認

SQL> select * from user_role_privs;

USERNAME GRANTED_ROLE ADMIN_ DEFAUL OS_GRA
-------- ------------ ------ ------ ------
HOGE     CONNECT      NO     YES    NO
HOGE     RESOURCE     NO     YES    NO

関連記事

人気ブログランキングへ

このページの先頭へ