[構文]
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オブジェクト権限に限り、
列単位で指定することができる。操作例を確認すること。
オブジェクト権限の状態を確認するデータ・ディクショナリの説明
- ■
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- 自分はどのスキーマのオブジェクトの
どの列に対してアクセスできるかを確認
すべて重要
すべて重要
システム権限とオブジェクト権限のちがい システム権限 オブジェクト権限 誰が? システム管理者(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表にアクセスするために必要な表権限を確認するデータ・ディクショナリはどれか答えよ。
- USER_COL_PRIVS_RECD
- USER_TAB_PRIVS_MADE
- USER_TAB_PRIVS_RECD
- USER_COL_PRIVS_MADE