GRANT 構文

メモ:  Category:mysql

ユーザーの作成と権限の設定をします。

GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
    ON {テーブル名 | * | *.* | データベース名.*}
    TO ユーザID [IDENTIFIED BY 'パスワード']
                [, ユーザID [IDENTIFIED BY 'パスワード'] ...]
    [REQUIRE
        [{SSL| X509}]
        [CIPHER cipher [AND]]
        [ISSUER issuer [AND]]
        [SUBJECT subject]
    ]
    [WITH GRANT OPTION]

GRANT 構文の priv_type には、次のようなものがあります。

GRANT 構文の priv_type について:

priv_type 概要
ALL [PRIVILEGES] すべての権限。(ALLと同義語)
ALTER ALTER TABLE構文が実行できる権限。
CREATE データベースとテーブルの作成が行える権限。
DROP データベースとテーブルの削除が行える権限。
FILE LOAD DATA構文とSELECT ~ INTO OUTFILE構文を実行できる権限。
PROCESS mysqladminコマンドのprocesslistとkill命令を実行できる権限。
RELOAD mysqladminコマンドのreload、refresh、flush-privileges、flush-hosts、flush-logs、flush-tables命令を実行できる権限。
SHUTDOWN mysqladminコマンドのshutdown命令を実行できる権限。
DELETE DELETE構文を実行できる権限。
INSERT INSERT構文を実行できる権限。
SELECT SELECT構文を実行できる権限。
UPDATE UPDATE構文を実行できる権限。
INDEX インデックスの作成と削除が行える権限。
REFERENCES テーブルのリファレンスが参照できる権限。
USAGE すべての権限がない。(“no privileges"と同義)

上から8つは通常のデータ操作以上の権限を与えるので、十分な検討が必要です。

WITH GRANT OPTION は、作成したユーザーに GRANT 構文の実行権限を与えます。 ただし、自分自身が持っていない権限を与えることはできません。

ユーザー作成例

例1.localhostからのみ接続可能な全ての権限を持つユーザーの作成

GRANT ALL ON データベース名.* TO ユーザー名@localhost IDENTIFIED BY 'パスワード';

例2.どのホストからでも接続可能な全ての権限を持つユーザーの作成

GRANT ALL ON データベース名.* TO ユーザー名@"%" IDENTIFIED BY 'パスワード';

例3.localhostからのみ接続可能なオブジェクト権限を持つユーザーの作成

GRANT SELECT,INSERT,UPDATE,DELETE ON データベース名.* TO ユーザー名@localhost
      IDENTIFIED BY 'パスワード';

bluenote by BBB