たまーにしかやらないので、やり方すぐ忘れちゃいますよね。
まずは現在の権限の確認。
rootユーザーとwordpressユーザーがlocalhostからのアクセスのみを許可されていることがわかります。
mysql> select user, host from mysql.user;
+-----------+-----------+
| user | host |
+-----------+-----------+
| root | localhost |
| wordpress | localhost |
+-----------+-----------+
新しくsample_userを作成して再度確認すると全てのホスト(%はワイルドカード)からのアクセス許可するユーザーが作成されている。
mysql> CREATE USER sample_user IDENTIFIED BY [PASSWORD] 'password’;
mysql> select user, host from mysql.user;
+-------------+-----------+
| user | host |
+-------------+-----------+
| sample_user | % |
| root | localhost |
| wordpress | localhost |
+-------------+-----------+
wordpressというDBの全てのテーブルに対してのアクセス権限を設定。この例では「192.168.10.%」というようにローカルのIPからの接続を許可している。%がワイルドカードで、これを使用する場合はシングルクォートで囲う必要があります。
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO sample_user@'192.168.10.%’;
# 同時にパスワードを設定する場合はSQLに下記を追記する
# IDENTIFIED BY 'xxxxxx' WITH GRANT OPTION;
mysql> select user, host from mysql.user;
+-------------+--------------+
| user | host |
+-------------+--------------+
| sample_user | % |
| sample_user | 192.168.10.% |
| root | localhost |
| wordpress | localhost |
+-------------+--------------+
新しくレコードが追加されてますね!これでOKです。
権限をrevokeするSQLも書きたかったんですが、なぜか意図した通りに出来なかった。。。また別の機会に書きます。