Help us understand the problem. What is going on with this article?

MySQL GRANT構文について

More than 1 year has passed since last update.

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

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away