GRANT の基本構文
GRANT システム権限 TO {ユーザー名|ロール名|PUBLIC} [WITH ADMIN OPTION]
GRANT オブジェクト権限 ON {オブジェクト名} TO {ユーザー名|ロール名|PUBLIC} [WITH GRANT OPTION]
- システム権限は、Oracle を管理するための権限でデータベース全体に対する権限。
- オブジェクト権限は、テーブルなどのオブジェクト(非スキーマ 含む)に対する権限。
WITH ADMIN OPTION or WITH GRANT OPTION を付けると与えられた権限を再度別のユーザーに対して付与することができる状態になる。
⇒ もう少し詳しく オブジェクト権限とシステム権限
テーブルに対する権限を付与する
- rivus というユーザーが admin というユーザーのテーブル my_table に対して SELECT、UPDATE、DELETE、INSERT できるようにする。
insert / select / update / delete オブジェクト権限の付与
GRANT select,update,delete,insert ON admin.my_table TO rivus
- rivus というユーザーが 全ユーザー のテーブルに対して SELECT、UPDATE、DELETE、INSERT できるようにする。
insert any table / select any table / update any table / delete any table システム権限の付与
GRANT select any table,update any table,delete any table,insert any table TO rivus
テーブルに関するオブジェクト権限
DML 関連
DDL 関連
- ALTER (ALTER TABLE) / DEBUG (デバッガ経由のトリガーなどへのアクセス)
- INDEX (CREATE INDEX) / REFERENCES (表参照制約 の作成)
以上すべて
のオブジェクト権限がある。
- rivus というユーザーが admin というユーザーのテーブル my_table に対して、ほとんどの操作ができるようにする。
all オブジェクト権限の付与
GRANT all ON admin.my_table TO rivus
テーブルに関するのシステム権限
- INSERT ANY / SELECT ANY / UPDATE ANY / DELETE ANY
- FLASHBACK ANY / LOCK ANY
- CREATE / CREATE ANY / ALTER ANY / BACKUP ANY / DROP ANY
プロシージャやパッケージを実行するための権限付与
- rivus というユーザーが admin というユーザーのパッケージ my_package を 実行 できるようにする。
execute オブジェクト権限の付与
GRANT execute ON admin.my_package TO rivus
- rivus というユーザーが 組み込みパッケージ dbms_lock を 実行 できるようにする。
execute オブジェクト権限の付与
GRANT execute ON dbms_lock TO rivus
- rivus というユーザーが 全てのストアドプロシージャ を 実行 できるようにする。
GRANT execute any procedure TO rivus
GRANT 関連事項