オブジェクト権限
オブジェクト権限とは、表やビュー、行、ストアドプロシージャなどのオブジェクトに対する権限のことです。オブジェクト権限の種類には、以下のようなものがあります。
オブジェクトと権限
オブジェクト権限 |
ファンクション |
パッケージ |
プロシージャ |
順序 |
シノニム |
表 |
ビュー |
ALTER |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
✗ |
DEBUG |
✓ |
✓ |
✓ |
✗ |
✓ |
✓ |
✓ |
DELETE |
✗ |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
EXECUTE |
✓ |
✓ |
✓ |
✗ |
✗ |
✗ |
✗ |
INDEX |
✗ |
✗ |
✗ |
✗ |
✓ |
✓ |
✗ |
INSERT |
✗ |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
MERGE VIEW |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
REFERENCES |
✗ |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
SELECT |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
✓ |
UNDER |
✗ |
✗ |
✗ |
✗ |
✗ |
✗ |
✓ |
UPDATE |
✗ |
✗ |
✗ |
✗ |
✓ |
✓ |
✓ |
オブジェクト権限の一覧
Oracleデータベースにおけるオブジェクト権限の一覧を次に示す。
- ALTER
- この表や順序を変更できる。
- DELETE
- この表から行を削除できる。
- EXECUTE
- このパッケージ、プロシージャ又はファンクションを実行できる。
- INDEX
- この表又はマテリアライズド・ビューに存在する列に対して索引を作成できる。
- INSERT
- この表に行を追加できる。
- REFERENCES
- この表に存在する列を参照する制約を作成できる。
- SELECT
- この表に対して問い合わせできる。
表の所有者が他のユーザに SELECT 権限を付与する例を以下に示す。
SQL> GRANT SELECT ON emp TO tsuka WITH GRANT OPTION;
表の SELECT 権限を付与されたユーザは、その表に対して問い合わせができる。
SQL> SELECT * FROM emp;
- UPDATE
- この表に存在する行を更新できる。
- READ
- このディレクトリ内のファイルを読み取れる。
- WRITE
- このディレクトリ内のファイルに書き込める。
SQL文
オブジェクト権限を操作するSQL文の一覧を次に示す。
- GRANT
- ユーザやロールにオブジェクト権限を付与する。
- REVOKE
- ユーザやロールからオブジェクト権限を剥奪する。
データディクショナリ
オブジェクト権限に関するデータ・ディクショナリ・ビューを次に示す。
- ALL_COL_PRIVS
- 自分が持つ列オブジェクト権限、自分に付与されたロールが持つ列オブジェクト権限及びPUBLICが持つ列オブジェクト権限
- ALL_COL_PRIVS_MADE
- 自分が所有者である列オブジェクト権限及び自分が付与者である列オブジェクト権限
- ALL_COL_PRIVS_RECD
- 自分が権限授与者である列オブジェクト権限、自分に付与されたロールが権限授与者である列オブジェクト権限及びPUBLICが権限授与者である列オブジェクト
- ALL_TAB_PRIVS
- 自分のオブジェクト権限、自分に付与されたロールのオブジェクト権限、PUBLICのオブジェクト権限
- ALL_TAB_PRIVS_MADE
- 自分がオブジェクトの所有者であるオブジェクトの権限付与及び自分が権限付与者であるオブジェクトの権限付与
- ALL_TAB_PRIVS_RECD
- 自分が権限受領者であるオブジェクトの権限付与、自分に与えられたロールが権限受領者であるオブジェクトの権限付与及びPUBLICが権限受領者であるオブジェクトの権限付与
- DBA_COL_PRIVS
- すべての列オブジェクト権限
- DBA_COL_PRIVS_MADE
- 自分が所有者である列オブジェクト権限
- DBA_TAB_PRIVS
- すべてのオブジェクト権限
- USER_COL_PRIVS
- 自分が持つ列オブジェクト権限
- USER_COL_PRIVS_MADE
- 自分が権限授与者である列オブジェクト権限
- USER_COL_PRIVS_RECD
- 自分が権限受領者である列オブジェクトの権限付与
- USER_TAB_PRIVS
- 自分が所有者であるオブジェクトの権限付与、自分が権限付与者であるオブジェクトの権限付与及び自分が権限受領者であるオブジェクトの権限付与
- USER_TAB_PRIVS_MADE
- 自分が所有者であるオブジェクトの権限付与
- USER_TAB_PRIVS_RECD
- 自分が権限受領者であるオブジェクトの権限付与