MySQLでユーザー一覧を確認する「mysql.userテーブル」

MySQL作成済のユーザー一覧を表示する方法を紹介します。

MySQLのユーザー情報が保存されているmysql.user

ユーザー情報はmysqlデータベース内のuserテーブルに保存されています。そのため、ユーザー情報を確認するには、userテーブルに対する権限(select)が必要です。

userテーブルには、ホスト、ユーザー名、暗号化済パスワードなどが保存されています。

ユーザー一覧を表示する

今回は、rootユーザーでMySQLにログインし、クエリを実行する例を紹介します。

$ mysql -u root -p

MySQLにログインしたら、SELECTでユーザー名とホストを取得します。

mysql> SELECT Host, User FROM mysql.user;

+--------------+-----------+
| Host         | User      |
+--------------+-----------+
| 127.0.0.1    | root      |
| ::1          | root      |
| localhost    | root      |
| localhost    | wordpress |
+--------------+-----------+

「::1」はIPv6におけるlocalhostで、「127.0.01」はIPv4におけるlocalhostになります。

暗号化済のパスワードを表示する

また暗号化済のパスワードも表示できるので、パスワードのカラムが設定されていないということがないか合わせて確認できます。

wordpressユーザーのホスト、ユーザー名、パスワードを表示するクエリは以下の通りです。

mysql >SELECT Host, User, Password FROM user WHERE User = "wordpress";
+-----------+-----------+-------------------------------------------+
| Host      | User      | Password                                  |
+-----------+-----------+-------------------------------------------+
| localhost | wordpress | *2470C0C09DEE12341618BB00005ADCA2EC9D1E19 |
+-----------+-----------+-------------------------------------------+

ただし、このパスワードは暗号化済のため、パスワードを忘れた時に確認しても意味はありません。