第4章 オブジェクト権限(補足)

1.オブジェクト権限の付与

[構文]

GRANT オブジェクト権限名 [ , オブジェクト権限名 , ・・・ ]
ON オブジェクト名 TO ユーザ名 [ , ユーザ名 , ・・・ ]
[ WITH GRANT OPTION ];

※WITH ADMIN OPTIONについては4-4で説明

■8種類のオブジェクト権限

オブジェクト権限機能付与できるオブジェクト
ビュー順序プロシージャ
ALTER オブジェクトを変更できる権限

DELETE 行を削除できる権限

INDEX その表に索引を作成できる権限


INSERT 行を新規挿入できる権限

REFERENCES その表を参照する制約を作成できる権限


SELECT データを検索できる権限
UPDATE データを更新できる権限

EXECUTE ストアド・プログラムを実行できる権限


■あるオブジェクトに対する8種類すべての権限をユーザに一度に与えるには「ALL」を使う
(オブジェクトによって使える権限が違うので、8種類すべての権限が付くわけではない)
ALLで与えた権限は、個別に取り消すことができる

■あるオブジェクトに対する権限をすべてのユーザに一度に与えるには、ユーザ名に「PUBLIC」を指定する(システム権限と同じ)。

■オブジェクト権限の付与、取り消しでON以下に指定できるオブジェクト名は「1つだけ」である(カンマで区切って複数指定はできない)。

■UPDATE, REFERENCESオブジェクト権限に限り、列単位で指定することができる。

操作例を確認すること。

2.オブジェクト権限の確認

オブジェクト権限の状態を確認するデータ・ディクショナリの説明

USER_TAB_PRIVS_MADE
自分が持つオブジェクトに対して誰がアクセスできるかを確認
GRANTEE権限を与えられたユーザ名
TABLE_NAMEオブジェクト名
GRANTOR権限を与えたユーザ名
PRIVILEGEオブジェクト権限の種類
GRANTABLE他のユーザに権限を与えれるかどうか
USER_TAB_PRIVS_RECD
自分はどのスキーマのオブジェクトに対してアクセスできるかを確認
OWNERオブジェクトの所有者
TABLE_NAMEオブジェクト名
GRANTOR権限を与えたユーザ名
PRIVILEGEオブジェクト権限の種類
GRANTABLE他のユーザに権限を与えれるかどうか
USER_COL_PRIVS_MADE
自分が持つオブジェクトのどの列に対して誰がアクセスできるかを確認
USER_COL_PRIVS_RECD
自分はどのスキーマのオブジェクトのどの列に対してアクセスできるかを確認

3.オブジェクト権限の取消

すべて重要

4.オブジェクト権限のオプション

すべて重要

5.システム権限とオブジェクト権限のちがい

システム権限とオブジェクト権限のちがい

システム権限オブジェクト権限
誰が? システム管理者(sysやsystemユーザ)やDBA権限を持つユーザが付与 オブジェクトの所有者(作成者)が付与
種類 126種類以上 8種類×オブジェクトの数
目的 使用中のOracleデータベースで何ができるのか?という権限 各オブジェクトに対して、各ユーザが何ができるのかという権限
オプション WITH ADMIN OPTION WITH GRANT OPTION
連鎖(CASCADE) USERAからあるシステム権限をREVOKEしても、USERAから付与されたUSERBは影響を受けない USERAからあるオブジェクト権限をREVOKEすると、USERAから付与されたUSERBはそのオブジェクト権限を失う

確認問題

問題1

あるオブジェクトに対するすべてのオブジェクト権限をALLを用いて付与した。この時、ある特定のオブジェクト権限だけを取り消すことはできる?
(「できる」「できない」で答えよ)

問題2

OYA表はSCOTTのオブジェクトである。他のユーザがOYA表にアクセスするために必要な表権限を確認するデータ・ディクショナリはどれか答えよ。

  1. USER_COL_PRIVS_RECD
  2. USER_TAB_PRIVS_MADE
  3. USER_TAB_PRIVS_RECD
  4. USER_COL_PRIVS_MADE

TOP ]