データベース

DCL(データ制御言語)とは

2021年2月21日

データ制御言語(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;

helpful