データ制御言語(DCL)は、データアクセス権限を制御するために使用されます。DCLは、指定されたアカウントに対する特定のデータベースリソースへのアクセス権限を管理できます。
デフォルトの権限モデル
異なるデータベースシステムでは、デフォルトの権限モデルが異なります:
Oracleモード:Oracleデータベースでは、ユーザーを作成すると、そのユーザーと同名のスキーマが自動的に作成されます。例えば、ユーザー
SCOTTはスキーマSCOTTを持ち、このユーザーは自動的にそのスキーマ内のすべてのオブジェクトの所有者(Owner)になります。スキーマの所有者は追加の権限付与なしで自身のスキーマ内のオブジェクトにアクセスできますが、他のユーザーは権限付与を受ける必要があります。MySQLモード:データにはOwnerの概念がありません。データへのアクセス時には通常、権限付与が必要です。
よく使われるDCLコマンド
DCLには主に権限付与(GRANT)と権限取り消し(REVOKE)の2種類の操作が含まれます。
権限付与の例
スキーマAのテーブルtaに対するクエリ権限をユーザーBに付与します:
GRANT SELECT ON a.ta TO b;
ユーザーBのスキーマAのテーブルtaに対するクエリ権限を取り消します:
REVOKE SELECT ON a.ta FROM b;