MySQLのユーザを管理する方法まとめ。作成・パスワード・権限

2014年6月7日

MySQL

MySQL のユーザを管理する方法をまとめました。ユーザを表示・作成・削除する方法、パスワード設定方法、権限の付与方法を紹介します。MySQL のユーザ操作は、たまーに必要になりますがすぐ忘れてしまって毎回ググっているので、いい加減覚えるために整理。

動作確認環境

  • MySQL5.6

目次

  1. ユーザ作成
  2. パスワード変更
  3. ユーザ表示
  4. ユーザ削除
  5. 権限付与
  6. 権限参照
  7. 権限剥奪

ユーザ作成

CREATE USER 構文を使用します。ユーザ名は半角英数 16 文字まで。

# パスワードが空のユーザを登録
mysql> CREATE USER 'root'@'127.0.0.1';
# パスワードを指定してユーザを登録
mysql> CREATE USER 'root'@'127.0.0.1' IDENTIFIED by 'hoge';

パスワード変更

SET PASSWORD 構文を使います。

# ログインユーザのパスワードを設定
mysql> SET PASSWORD = PASSWORD('hoge');
# 他のユーザのパスワードを設定
mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('hoge');

ユーザ表示

mysql データベースの user テーブルを参照します。

mysql> SELECT Host,User,Password FROM mysql.user;

+-----------+----------+-----------+
| Host      | User     | Password  |
+-----------+----------+-----------+
| localhost | root     | ********* |
| 127.0.0.1 | root     | ********* |
| ::1       | root     | ********* |
| localhost | hoge     | ********* |
| localhost |          | ********* |
+-----------+----------+-----------+

ユーザ一覧は一度は確認すると良いと思います。匿名ユーザや root のパスワードが空のものが残っていたりします。

ユーザ削除

DROP USER 構文を使用します。

mysql> DROP USER 'root'@'127.0.0.1';
mysql> DROP USER 'root'@'::1';
mysql> DROP USER ''@'localhost';

権限付与

GRANT 構文を使います。

# 全データベース、全テーブルに全権限を付与
mysql> GRANT ALL [PRIVILEGES] ON *.* TO 'root'@'127.0.0.1';
# 特定のデータベースに全権限を付与
mysql> GRANT ALL [PRIVILEGES] ON データベース名.* TO 'hoge'@'127.0.0.1';
# 特定のテーブルに CRUD 権限を付与
mysql> GRANT SELECT,UPDATE,INSERT,DELETE ON データベース名.テーブル名 TO 'hoge'@'127.0.0.1';

権限の指定方法は以下を参照

MySQL 5.6 Reference Manual GRANT Syntax

権限参照

mysql> SHOW GRANTS FOR 'root'@'127.0.0.1';

権限剥奪

mysql> REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'127.0.0.1';

-技術ブログ
-