MySQLでユーザーを作成する「CREATE USER」「 GRANT」

MySQLでユーザーを作成し、権限を割り当てる方法を紹介します。

MySQLにおけるユーザー

MySQLではデフォルトユーザーとして「root」ユーザーが作成されますが、「root」ユーザーは権限が強すぎるのでそのまま利用するのは避けたほうが良いです。

そのため、例えばWordPressをインストールする場合は、新しく「wordpress」といったユーザーを作成し、WordPressに関するデータベースへの権限だけ付与するのが一般的です。

MySQLにおけるユーザー名の制限と記号

MySQLにおけるユーザー名は、最大で16文字の長さまで指定できます。

また記号を使う場合は、シングルクオーテーション「'」で囲む必要があります。

【CREATE USER】ユーザーを作成する

CREATE USER ユーザー名 [IDENTIFIED BY 'パスワード'];

ユーザーを作成するには、「CREATE USER」を使います。

「IDENTIFIED ~」の部分を省略して、パスワードなしのユーザーも作成できますが、セキュリティリスクがあるので避けたほうが良いでしょう。

作成した直後は、次に説明する「GRANT」を使わないと、権限は全くない状態です。

【GRANT】ユーザーを作成して権限を付与する

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

「GRANT」文は、権限を付与するためのものですが、指定されたユーザーが存在しない場合、初期設定ではユーザーを新規作成します。

先に、「CREATE USER」でユーザーを作成し、そのあとで「GRANT」で権限を付与することもできます。

WordPress用にユーザー作成する

「wordpress」データベースに関する全ての権限を付与された「wp_user1」を「samplepassword」というパスワードで作成する場合は以下のようになります。

mysql> GRANT ALL PRIVILEGES ON wordpress.* to wp_user1@localhost IDENTIFIED BY 'samplepassword';

これで、「wp_user1」は、「wordpress」データベースに対しての権限が付与された状態で新規作成されます。


イベント

2017/10/06(金)
UX School(全10回)