>> MySQL入門トップに戻る

MySQL 権限の設定(GRANT)

MySQLの権限の設定(GRANT)について説明します。

MySQLで作成したユーザにはどのDB、どのテーブルにアクセスできるか、
という権限を設定することが出来ます。

SQLコマンドの書式は以下の通りになります。
GRANT 権限 on 有効範囲 to ユーザ名@ホスト名;
権限には主要なものでは、ALLとUSAGEがあり、
ALLは全ての権限を与えますが、USAGEは何も権限を与えないことを意味します。

その他の権限は「SELECT」や「ALTER」、「CREATE」「DELETE」「DROP」「INSERT」など、
各SQLの操作コマンドを指定できます。
このユーザには「SELECT」しか実行させたくない、というときは「SELECT」だけを指定することになります。
その他にもたくさん権限があるので、詳しくはMySQLの公式サイトをご確認ください。

有効範囲には、どのDB、どのテーブルに対して権限を与えるのかを指定します。
有効範囲にはワイルドカードのアスタリスク(*)が使えます。

実際のコマンドは以下の通りになります。
//全ての権限
GRANT ALL on test.* to sample@localhost;
//SELECTのみ
GRANT SELECT on test.* to sample@localhost;
「test.*」で「testデータベースの全てのテーブル」という意味になります。
上記コードの前者は、
「sample@localhost」ユーザに「testデータベースの全てのテーブル」に対して、
全ての権限を与える、という意味になります。

後者は、
「sample@localhost」ユーザに「testデータベースの全てのテーブル」に対して、
SELECT文を実行するの権限のみを与える、という意味になります。
>> 【MySQL ユーザの権限の確認】に進む
>> MySQL入門トップに戻る