【注意】 この記事は過去に別サイトで執筆したものを再掲載したものです。 内容が古くなっていて現在では適用できない場合や、もっと良い方法が出来ている場合があります。 |
ユーザ作成
GRANTコマンドで権限とパスワードを同時に設定する。
mysql> GRANT SELECT,INSERT,DELETE,UPDATE,CREATE,DROP,FILE,ALTER,INDEX ON *.* to
sample_user IDENTIFIED BY 'ABC123';
Query OK, 0 rows affected (0.00 sec)
自身のオプションを継承して、admin
というユーザを作成し、パスワード'pass'
を設定する。
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@"192.168.0.%" IDENTIFIED BY 'pass' WITH GRANT OPTION;
"192.168.0.%"
は、"192.168.0."
からのログオンを許すという意味。同PC内であれば、"localhost"
と書く。 ".*"
はアクセスできるテーブルを指す。”データベース名.テーブル名” の形式。"WITH GRANT OPTION"
は、GRANT構文の実行権限を付与する意味。"ALL PRIVILEGES"
は全ての実行権限という意味、selectのみだったら"SELECT"
と書く。
変更事項の即時反映
mysql> FLUSH PRIVILEGES;
ユーザ一覧
ユーザ情報もデータとして保存されているのでSELECT文を使って問い合わせる。
mysql> SELECT user, host, password FROM MYSQL.USER;
+-------+-----------+-------------------------------------------+
| user | host | password |
+-------+-----------+-------------------------------------------+
| root | localhost | |
| root | 127.0.0.1 | |
| root | ::1 | |
| admin | localhost | |
+-------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
パスワードはハッシュ値なので紛失パスワードを知ることは出来ない。
ハッシュ値なので同じワードを使えば同じハッシュ値になる。