ユーザーの追加には以下のようなSQLを流す。
mysql> GRANT <操作名> ON <データベース名>.<テーブル名> TO <ユーザ名>@<ホスト名> IDENTIFIED BY '<パスワード>';
mysql> FLUSH PRIVILEGES;
操作名は下記にある表の中から選んで使用する。
セキュリティを全く考慮しないのであれば、ALLでも問題はない。
データベース名やテーブル名を指定することで、指定したデータベースやテーブル以外にはアクセスできないようなユーザーを作成することができる。
ユーザー名はDBに接続する際に使用するユーザー名
接続先のDBがあるホスト名またはIPを記載する。
WebサーバとDBサーバが一緒であれば、localhostで繋がる。
WebサーバとDBサーバが異なる場合は、DBサーバのホスト名またはIPを記載することで接続できる。
「FLUSH PRIVILEGES」はユーザー情報の反映のためのSQLで、これをしないと作成したユーザーで
ログインすることはできない。
操作名一覧
ALL
すべての権限を設定出来るユーザを追加
ALTER
ALTER TABLE(テーブル変更)の使用を許可
CREATE
CREATE TABLE(テーブル作成) の使用を許可
CREATE TEMPORARY TABLES
CREATE TEMPORARY TABLE(一時テーブルの作成) の使用を許可
DROP
DROP TABLE(テーブルの削除) の使用を許可
INDEX
CREATE INDEX(インデックス作成) および DROP INDEX(インデックス削除) の使用を許可
LOCK TABLES
SELECT 権限を持つテーブルで LOCK TABLES(テーブルのロック) の使用を許可
PROCESS
SHOW FULL PROCESSLIST の使用を許可
REPLICATION CLIENT
スレーブおよびマスタのサーバーを知る権利を付与
REPLICATION SLAVE
レプリケーションのスレーブに必要(マスタからバイナリログを読み取るため)
SHOW DATABASES
SHOW DATABASES によりすべてのデータベースが表示される
SHUTDOWN
mysqladmin shutdown の使用を許可