role_sys_privs テーブルから取得する
Oracleアカウント毎に、個別に権限を付与して運用する方法は効率的ではない。
オブジェクト権限、システム権限はロールでの一括管理が有効だ。
ロールに付与されている権限を確認するにはデータディクショナリの
role_sys_privs テーブルを参照する。
テーブル定義
SQL> desc role_sys_privs 名前 NULL? 型 ------------ -------- ------------ ROLE NOT NULL VARCHAR2(30) PRIVILEGE NOT NULL VARCHAR2(40) ADMIN_OPTION VARCHAR2(3)
RESOURCE ロールの確認例
SQL> select * from role_sys_privs where role = 'RESOURCE'; ROLE PRIVILEGE ADMIN_ -------- ---------------- ------ RESOURCE CREATE TRIGGER NO RESOURCE CREATE SEQUENCE NO RESOURCE CREATE CLUSTER NO RESOURCE CREATE TYPE NO RESOURCE CREATE PROCEDURE NO RESOURCE CREATE TABLE NO RESOURCE CREATE INDEXTYPE NO RESOURCE CREATE OPERATOR NO 8行が選択されました。
Oracle標準の開発者向けのロールなので、各種オブジェクトに対しての
作成権限が含まれていることがわかる。(ADMIN OPTION は無し)
ロール作成時の注意事項
オリジナルのロールを作成する場合は、対象となるユーザが管理者なのか、開発者なのか、運用者なのか。どのようなオブジェクト権限、システム権限が必要なのか。
ふわっとした権限設定は、セキュリティリスクやオペレーションリスクを増やす要因になる。
ユーザ種別を踏まえた上で、「必要最低限」の権限セットをロールに定義することが重要。