データ制御言語(DCL)
DCL(Data Control Language)とは、データ制御言語と呼ばれるSQLの命令のことです。
主なデータ制御言語は次の通り。
データ制御言語 | 説明 |
GRANT | テーブルに対する権限を与える |
REVOKE | テーブルに対する権限を取り消す |
データベースのテーブルに対する権限を与える「GRANT」、権限を取り消す「REVOKE」などのデータ制御言語のことを「DCL」といいます。
スポンサーリンク
「GRANT」または「REVOKE」で設定できる主な権限には次のようなものがあります。※付与できる権限は使用するDBMSにより異なります。
- SELECT:テーブルのレコードを検索する権限
- INSERT:テーブルにレコードを追加する権限
- UPDATE:テーブルのレコードを更新する権限
- DELETE:テーブルのレコードを削除する権限
- CONNECT:データベースもしくはスキーマに接続する権限
- USAGE:スキーマや関数などのデータベースオブジェクトを利用する権限
- CREATE:データベース、テーブルの作成する権限
- EXECUTE:関数またはプロシージャ、演算子の使用を許可する権限
- ALL PRIVILEGES:利用可能な権限をまとめて許可する権限
【DCL】権限付与(GRANT)
テーブルに権限を与えるのが「GRANT」文です。
GRANTの基本構文
GRANT {付与する権限} ON {対象} TO {権限を付与するユーザ}
次の例は「user1」というユーザにテーブル「admin.sample」に対しての SELECT、UPDATE、DELETE、INSERT 権限を付与している例です。
■GRANT 文の使用例(select / update / delete / insert 権限付与の例)
GRANT select, update, delete, insert ON admin.sample TO user1
【DCL】権限剥奪(REVOKE)
テーブルの権限を取り消すのが「REVOKE」文です。
REVOKEの基本構文
REVOKE {剥奪する権限} ON {対象} FROM {権限を剥奪するユーザ}
次の例は「user1」というユーザからテーブル「admin.sample」に対しての INSERT 権限を剥奪している例です。
■REVOKE文の使用例(insert権限剥奪の例)
REVOKE insert ON admin.sample FROM user1;