ユーザーに設定できる権限の種類と一覧

ユーザーが MySQL に接続したあとデータベースやテーブルを作成したり、テーブルからデータを取得するにはその操作に対する権限が設定されている必要があります。ここでは MySQL における権限の種類と権限の一覧について解説します。

(Last modified: )

権限のレベル

権限は大きく分けて次の6つのレベルが用意されています。

グローバルレベル(G)
グローバルレベル権限は全てのデータベースに適用される権限です。この権限は mysql.user テーブルに格納されます。

データベースレベル(D)
データベースレベル権限は特定のデータベース内の全てのオブジェクトに適用される権限です。この権限は mysql.db テーブル内に格納されます。

テーブルレベル(T)
テーブルレベル権限は特定のテーブル内の全てのカラムに適用される権限です。この権限は mysql.tables_priv テーブル内に格納されています。

カラムレベル(C)
カラムレベル権限は特定テーブル内の単一カラムに適用される権限です。この権限は mysql.columns_priv テーブル内に格納されています。

ルーチンレベル(R)
CREATE ROUTINE 、 ALTER ROUTINE 、 EXECUTE 、そして GRANT OPTION 権限はストアドルーチンに適用される権限です。(ファンクションとプロシージャ)それらは、グロー バルとデータベースレベルで供与されます。また、CREATE ROUTINE 以外は、これらの権限は各ルーチンに対してルーチンレベルで適用する事ができ mysql.procs_priv テーブル内に格納されます。

プロキシユーザー権限(P)
あるユーザーが別のユーザーの代理になることができます。この権限は mysql.proxies_priv テーブル内に格納されています。

グローバルレベルで権限は全てのデータベースに対する権限となります。それに対してデータベースレベルはデータベースを指定して権限を与える場合、テーブルレベルは特定のデータベースのさらに特定のテーブルに対する権限を与える場合、カラムラベルは特定のテーブルの中にある特定のカラムだけに対する権限を与える場合です。

例えば特定のデータベースにだけテーブルを作成する権限を与えたり、特定のテーブルのさらに特定のカラムの値だけを参照する権限を与えることなどができます。

権限の一覧

MySQL でユーザーに設定できる静的な権限の一覧です。

権限レベル意味
ALL [PRIVILEGES]GDTGRANT OPTION と PROXY 以外の全ての権限を設定します。
ALTERGDTテーブルの変更を可能にします。
ALTER ROUTINEGDRストアドルーチンの変更、削除を可能にします。
CREATEGDTデータベース、テーブルの作成を可能にします。
CREATE ROLEGロールの作成を可能にします。
CREATE ROUTINEGDストアドルーチンの作成を可能にします。
CREATE TABLESPACEGテーブルスペースとロググループの作成、変更、削除を可能にします。
CREATE TEMPORARY TABLESGDCREATE TEMPORARY TABLE の使用を可能にします。
CREATE USERGCREATE USER 、 DROP USER 、 RENAME USER 、そして REVOKE ALL PRIVILEGES の使用を可能にします。
CREATE VIEWGDTビューの作成と変更を可能にします。
DELETEGDTデータベース、テーブル、ビューの削除を可能にします。
DROPGDTテーブルの削除を可能にします。
DROP ROLEGロールの削除を可能にします。
EVENTGDイベントスケジューラがイベントの利用を可能にします。
EXECUTEGDRユーザがストアドルーチンを起動させるのを可能にします。
FILEGSELECT ... INTO OUTFILE と LOAD DATA INFILE の使用を可能にします。
GRANT OPTIONGDTRP他のアカウントへの権限の付与とを削除を可能にします。
INDEXGDTインデックスの作成と削除を可能にします。
INSERTGDTCINSERTの使用を可能にします。
LOCK TABLESGDSELECT 権限を持つテーブル上の LOCK TABLES の使用を可能にします。
PROCESSGSHOW FULL PROCESSLIST の使用を可能にします。
PROXY--PROXYの使用を可能にします。
REFERENCESGDTC外部キーの作成を可能にします。
RELOADGFLUSH の使用を可能にします。
REPLICATION CLIENTGユーザがスレーブとマスタの場所を問い合わせることを可能にします。
REPLICATION SLAVEG複製スレーブを可能とします。 (マスタからバイナリログイベントを読み込む為)
SELECTGDTCSELECT の使用を可能にします。
SHOW DATABASESGSHOW DATABASES の使用を可能とします。
SHOW VIEWGDTSHOW CREATE VIEWの使用を可能にします。
SHUTDOWNGmysqladmin shutdown の使用を可能にします。
SUPERGCHANGE MASTER TO 、 KILL 、 PURGE BINARY LOGS 、 SET GLOBAL 、そして mysqladmin debug command の使用を可能にします。
TRIGGERGDTトリガの作成と削除を可能にします。
UPDATEGDTCUPDATE の使用を可能にします。
USAGEG「権限が無い」 の同義語です。

権限の種類によって与える対象のレベルが決まっています。(G:グローバル、D:データベース、T:テーブル、C:カラムです、R:ルーチン、P:プロキシ)。

例えば SELECT 権限ではグローバルレベル単位からカラム単位まで任意のレベルで設定することができますので、すべてのデータベースに含まれるデータを取得できる権限を設定したり、特定のカラムだけデータを取得できるような権限を与えることができます。

-- --

MySQL における権限の種類と権限の一覧について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。