データベースを扱うにはSQLが必要です。SQLはデータベースに対して命令を行い、データベースを操作・定義・制御を行います。一般的には大きく3つに分類されます。
- データ操作言語(DML…Data Manipulation Language)
- データ定義言語(DDL…Data Definition Language)
- データ制御言語(DCL…Data Control Language)←本記事
今回はデータ制御言語(DCL)について取り上げます。
DCL(データ制御言語)とは?
DCL(データ制御言語)とは、Data Control Languageの略で、データに対するアクセスを制御する言語です。端的に言えば、ログインしているユーザーが、特定のデータベースにアクセスできる権限を制御(許可・禁止)を行います。
DCLは主に、以下の機能を指します。
- GRANT:権限の付与
- REVOKE:権限の剥奪
データベースにはスキーマと言うものがあり、データベース上にスキーマは複数存在することが可能です。
例えば、スキーマが2つ存在し、それぞれAスキーマとBスキーマという名前を持ち、Aスキーマにログイン可能なユーザーをユーザーX、Bスキーマにログイン可能なユーザーをユーザーYとします。
ユーザーXはBスキーマを操作する権限を持っていますが、ユーザーYはAスキーマを参照のみの権限しか付与されてないとすると、ユーザーXはBスキーマに対して更新や削除が可能ですが、ユーザーYはAスキーマを見ることしか出来ません。
- ユーザーX:Aスキーマ、Bスキーマに対して操作可能
- ユーザーY:Aスキーマ参照のみ、Bスキーマに対して操作可能
もし、ユーザーYにAスキーマを操作する権限を付与したい場合、GRANTを使用して、Aスキーマの操作権限を付与してあげれば、ユーザーYでもAスキーマに対して更新や削除が可能となります。ユーザーXにBスキーマを操作する権限を剥奪することも可能です。
「DCL」という単語を覚える必要は?
無理に覚える必要はありません、と言いたいですが、GRANTとREVOKEしかありませんし、やってることは権限の付与・剥奪だけなので、覚えて下さい。DMLやDDLは覚える量が多いですが、DCLについてはすることが1つなので、覚えてしまった方が良いです。
関連記事
【DB基礎】DML(データ操作言語)とは?
データベースを扱うにはSQLが必要です。SQLはデータベースに対して命令を行い、データベースを操作・定義・制御を行います。一般的には大きく3つに分類されます。 データ操作言語(DML…Data Manipulation Language)←...
【DB基礎】DDL(データ定義言語)とは?
データベースを扱うにはSQLが必要です。SQLはデータベースに対して命令を行い、データベースを操作・定義・制御を行います。一般的には大きく3つに分類されます。 データ操作言語(DML…Data Manipulation Language) ...
.