user_role_privs や dba_role_privs テーブルから取得
ユーザに付与されているロールを確認する場合、データディクショナリの
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 ユーザへ grant したロールを確認する場合。
※ ロールを付与する権限( 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