MySQLでユーザーを追加する方法を説明します。
手順1. ユーザーの追加
今回は、testUserというユーザーを作成します。パスワードはtestPassとします。
この場合、MySQLにログインして
CREATE USER "testUser" IDENTIFIED BY "testPass";
というSQL文を実行します。
手順2. 権限の追加
このままだと、このユーザーは何もできません。権限を持っていないためです。
今回はtestUsetに対し、testというデータベースの全てのテーブルの操作を許可するような権限を付与します。
実行するSQL文は以下です。
GRANT ALL PRIVILEGES ON test.* TO "testUser"@"%";
ちなみに、全てのDBへのアクセスを許可したい場合には、「test」の部分を「*」に変えます。
特定のテーブルのみ操作を許可する場合には、「*」の部分をテーブル名に変えます。
補足 アクセス元を限定する方法
testUserがlocalhostからのみDBにアクセスできるようにする場合、SQL文は以下のようになります。
CREATE USER "testUser"@"localhost" IDENTIFIED BY "testPass"; GRANT ALL PRIVILEGES ON test.* TO "testUser"@"localhost";
注意しないといけないのは、1行目のSQL文を見ればわかるように、ユーザーを作成する段階でアクセス元の指定が必要だということです。
これを忘れて「localhost」の部分を「%」にしてユーザーを作成してしまうと、2行目のSQL文章を実行したタイミングで以下のエラーになります。
ERROR 1133 (42000): Can't find any matching row in the user table