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