SYS権限でログイン
※「as sysdba」をつける必要あり
sqlplus sys/{パスワード}@{ネットサービス名} as sysdba --oracleインストールユーザーかつ、OS認証が有効の場合 sqlplus / as sysdba
PDBに接続
--PDB確認 SELECT NAME, OPEN_MODE FROM v$pdbs; --PDBに接続 ALTER SESSION SET CONTAINER = {PDB名};
権限を確認
※確認したいユーザーでログインして実行すること
※USERをDBAにするとデータベース内のすべてを参照
--ロール SELECT * FROM USER_ROLE_PRIVS; --システム権限 SELECT * FROM USER_SYS_PRIVS; --オブジェクト権限 SELECT * FROM USER_TAB_PRIVS;
ロール付与
※ロールとは権限をまとめたもの
GRANT {権限} TO {ユーザー名}; GRANT CONNECT TO {ユーザー名}; --データベース接続用ロール --含まれる権限(バージョン10g以降) --CREATE SESSION データベース接続権限 GRANT RESOURCE TO {ユーザー名}; --開発者用ロール --含まれる権限 --CREATE CLUSTER クラスターを作成する権限 --CREATE INDEXTYPE インデックスタイプを作成する権限 --CREATE OPERATOR 演算子を作成する権限 --CREATE PROCEDURE ストアドプロシージャ、ファンクション、パッケージを作成する権限 --CREATE SEQUENCE シーケンスを作成する権限 --CREATE TABLE テーブルを作成する権限 --CREATE TRIGGER トリガーを作成する権限 --CREATE TYPE オブジェクト型やコレクション型を作成する権限 GRANT EXP_FULL_DATABASE TO {ユーザー名}; --エクスポート用ロール --含まれる権限 --SELECT ANY TABLE 任意のテーブルからデータを選択する権限 --BACKUP ANY TABLE 任意のテーブルをバックアップする権限 --ADMINISTER DATABASE TRIGGER データベーストリガーを管理する権限 GRANT IMP_FULL_DATABASE TO {ユーザー名}; --インポート用ロール --含まれる権限 --ALTER ANY TABLE 任意のテーブルを変更する権限 --ALTER ANY PROCEDURE 任意のプロシージャを変更する権限 --CREATE ANY TABLE 任意のスキーマにテーブルを作成する権限 --CREATE ANY INDEX 任意のスキーマにインデックスを作成する権限 --CREATE ANY PROCEDURE 任意のスキーマにプロシージャを作成する権限 --CREATE ANY SEQUENCE 任意のスキーマにシーケンスを作成する権限 --CREATE ANY TRIGGER 任意のスキーマにトリガーを作成する権限 --CREATE ANY VIEW 任意のスキーマにビューを作成する権限 --DROP ANY TABLE 任意のテーブルを削除する権限 --INSERT ANY TABLE 任意のテーブルにデータを挿入する権限 --UPDATE ANY TABLE 任意のテーブルのデータを更新する権限 --DELETE ANY TABLE 任意のテーブルからデータを削除する権限 --EXECUTE ANY PROCEDURE 任意のプロシージャを実行する権限 --ロールの中身を確認 SELECT * FROM ROLE_SYS_PRIVS WHERE ROLE = '{ロール名}';
権限付与
※ANYを省くと自スキーマのみ対象になる
GRANT {権限} TO {ユーザー名}; --基本系 GRANT CREATE SESSION TO {ユーザー名}; --データベース接続権限 GRANT UNLIMITED TABLESPACE TO {ユーザー名};--すべての表領域に対し、無制限の領域割り当て --操作系 GRANT SELECT ANY TABLE TO {ユーザー名}; --Select GRANT INSERT ANY TABLE TO {ユーザー名}; --Insert GRANT DELETE ANY TABLE TO {ユーザー名}; --Delete GRANT UPDATE ANY TABLE TO {ユーザー名}; --Update --作成系 GRANT CREATE ANY TABLE TO {ユーザー名}; --テーブル GRANT CREATE ANY VIEW TO {ユーザー名}; --ビュー GRANT CREATE ANY MATERIALIZED VIEW TO {ユーザー名}; --マテビュー GRANT CREATE ANY PROCEDURE TO {ユーザー名}; --プロシージャ GRANT CREATE ANY SEQUENCE TO {ユーザー名}; --シーケンス GRANT CREATE ANY SYNONYM TO {ユーザー名}; --シノニム GRANT CREATE ANY INDEX TO {ユーザー名}; --インデックス --削除系 GRANT DROP ANY TABLE TO {ユーザー名}; --テーブル GRANT DROP ANY VIEW TO {ユーザー名}; --ビュー GRANT DROP ANY MATERIALIZED VIEW TO {ユーザー名}; --マテビュー GRANT DROP ANY PROCEDURE TO {ユーザー名}; --プロシージャ GRANT DROP ANY SEQUENCE TO {ユーザー名}; --シーケンス GRANT DROP ANY SYNONYM TO {ユーザー名}; --シノニム GRANT DROP ANY INDEX TO {ユーザー名}; --インデックス --変更系 GRANT ALTER ANY TABLE TO {ユーザー名}; --テーブル GRANT ALTER ANY VIEW TO {ユーザー名}; --ビュー GRANT ALTER ANY MATERIALIZED VIEW TO {ユーザー名}; --マテビュー GRANT ALTER ANY PROCEDURE TO {ユーザー名}; --プロシージャ GRANT ALTER ANY SEQUENCE TO {ユーザー名}; --シーケンス GRANT ALTER ANY SYNONYM TO {ユーザー名}; --シノニム GRANT ALTER ANY INDEX TO {ユーザー名}; --インデックス○ --実行系 GRANT EXECUTE ANY PROCEDURE TO {ユーザー名}; --プロシージャ
権限剥奪
REVOKE {権限} FROM {ユーザ名};