LoginSignup
0
1

More than 5 years have passed since last update.

MySQL GRANT構文について

Last updated at Posted at 2018-12-01

GRANT構文とは

GRANT ステートメントは、MySQL ユーザーアカウントに権限を付与します。GRANT にはまた、セキュア接続の使用やサーバーリソースへのアクセスに関する制限などの、その他のアカウント特性を指定する機能もあります。GRANT を使用するには、GRANT OPTION 権限が必要であり、かつ付与しようとしている権限を持っている必要があります。

引用:https://dev.mysql.com/doc/refman/5.6/ja/grant.html

GRANT構文は権限を付与したり、制限の操作が行える構文です。
セキュア接続というのは、HTTPS接続の事です。
HTTPSが分からない方はこちらを参照してください。

GRANT ALL ON *.* TO 'test'@'localhost';

この構文を例に解説します。

GRANT

これはGRANT構文を使用する、という宣言です。

ALL

今回の例からいうとグローバル権限を対象とする全ての権限を指します。
テーブルレベル、データベースレベルでALLを指定する事も可能です。
テーブルレベルでのALLの場合構文は下記のようになります。

GRANT ALL ON mydb.mytbl TO 'test'@'localhost';

例に挙げた構文との違いは、ONの後です。
DB_name.Table_nameの形になります。

データベースレベルでのALLの場合、構文は下記のようになります。

GRANT ALL ON mydb.* TO 'test'@'localhost';

こちらも同様に例に挙げた構文との違いは、ONの後です。
DB_name.*の形になります。

ON .

グローバル権限を割り当てる時に使用します。
特定のサーバー上のすべてのデータベースが対象となります。

TO 'test'@'localhost'

どのユーザーで、どのホストなのか、を指定します。
例文では、testユーザーで、localhostを指定しています。

ちなみに、''シングルクォーテーションで囲む必要は基本的にありません。
シングルクォーテーションで囲む必要があるのは、例えば特殊文字のハイフン-が入っている場合です。

SHOW GRANTS構文

どのような権限が付与されているか、を確認する事が出来る構文です。
現在の状態や、権限付与後に確認する時は、この構文を使います。

基礎構文
SHOW GRANTS [FOR user];
// [FOR user] → 'test'@'localhost'など
  • SHOW GRANTS;
  • SHOW GRANTS FOR CURRENT_USER;
  • SHOW GRANTS FOR CURRENT_USER();

上記3つのいずれかを使用する事で、現在接続されているアカウントの権限を確認することが出来ます。

参考

https://dev.mysql.com/doc/refman/5.6/ja/grant.html#grant-other-characteristics
https://dev.mysql.com/doc/refman/5.6/ja/show-grants.html
https://dev.mysql.com/doc/refman/5.6/ja/privileges-provided.html

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1