データベース

第4章 リレーショナルデータベース言語SQL
4.1
4.2
4.3
4.4
4.5
4.6
背景と基本概念
データ定義
アクセス権限
問合せ
データ更新
アプリケーションからのデータ操作
4.3 アクセス権限
データセキュリティを実現するための機能
①表の定義者は「表の所有者」すべてのアクセ
ス権限を持つ。
②表の所有者は、特定の利用者にアクセス権限
を付与(GRANT)したり取り消す(REVOKE)こ
とができる。
Grant : 授与する
Revoke : 撤回する。取り消す。
1.権限の付与(GRANT)
認可識別子で指定される利用者に
可能なアクセス(動作)を指定
【書き方】
GRANT 権限 ON 表名 TO 権限受領者
[,権限受領者・・・][WITH GRANT OPTION]
権限:{ALL PRIVILEGES | 動作 [, 動作・・・] }
動作:[SELECT |DELETE|INSERT [列名[,列名・・・]|
UPDATE [列名[,列名・・・] |REFERENCES [列名[,列名・・・]|}
権限受領者:{PUBLIC|認可識別子 }
Privilege(プリヴァリッジ):特権
WITH GRANT OPTION :
権限を付与された利用者がさらに他の利用者にアクセス権を
再付与できる権限を与えることを示す。
権限の付与の例
①表「社員」を処理するためのすべての権限を利用者Aに付与する。
GRANT ALL PRIVILEGES ON 社員 TO 利用者A
②表「社員」を参照する権限を利用者Bに与える。
GRANT SELECT ON 社員 TO 利用者B
③表「社員」への追加と削除の権限を利用者Cに与える。
GRANT INSERT, DELETE ON 社員 TO 利用者C
④表「社員」の課IDを参照する権限を利用者Dに与える。
GRANT UPDATE(課ID) ON 社員 TO 利用者D
⑤表「社員」に関するすべての権限および権限再付与の権限を利用者E
に与える。
GRANT ALL PRIVILEGES ON 社員 TO 利用者E WITH GRANT OPTION
2.権限の取消し(REVOKE)
既に付与した権限を取り消す。
ただし、自分が付与した範囲内に限定
【書き方】
REVOKE [GRANT OPTION FOR] 権限 ON 表名 FROM 権限受領者
[,権限受領者・・・]削除動作
削除動作:{RESTRICT | CASCADE }
Restrict(リストリクト):限定する。制限する。
Cascade (キャスケイド):滝。転じて連鎖的に・・・すること。
CASCADEで取り消すと、WITH GRANT OPTIONで派生した他からの権限の
許可/拒否されている権限も取り消される。
また、WITH GRANT OPTIONで許可されている権限をCASCADEで取り消す
と、その権限のGRANTおよびDENYの両方が取り消される。
権限取消しの例
①表「社員」を処理するためのすべての権限を利用者Aに付与したが、
それをすべて取り消す。
REVOKE ALL PRIVILEGES ON 社員 FROM 利用者A RESTRICT
②表「社員」への追加と削除の権限を利用者Cに与えたが、削除の権限
を取り消す(追加の権限は残す)。
REVOKE DELETE ON 社員 FROM 利用者C RESTRICT
⑤表「社員」に関するすべての権限および権限再付与の権限を利用者E
に与えたが、再付与の権限を取り消す(利用者Eが再付与した利用者
の権限は放棄される)。
REVOKE GRANT OPTION ALL PRIVILEGES ON 社員 FROM 利用者E
RESTRICT
(注)CASCADEはどこまで影響が及ぶか明示的でないので、
使わないほうが無難