この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:atom
更新日時:2026-05-17 15:10:58

タイトル: ユーザーおよびパスワード一覧の確認

MySQL / MariaDB 上のユーザー一覧と認証関連情報を確認する方法です。実行には mysql データベースへの参照権限(通常はroot権限)が必要です。

基本コマンド

以下のコマンドを実行する。

> SELECT user, password FROM mysql.user;


+------+----------+
| user | password |
+------+----------+
| root |         |
| pma  |         |
+------+----------+
5 rows in set (0.00 sec)

MySQL 5.7 以降の場合

MySQL 5.7以降ではパスワードカラムが authentication_string に変わっています。次のように書きます。

SELECT user, host, authentication_string
FROM mysql.user;

パスワード本体はハッシュ化されており、平文では取得できません。

認証プラグインも一緒に確認

SELECT user, host, plugin
FROM mysql.user;

主な plugin 値:

プラグイン意味
mysql_native_password従来のパスワード認証
caching_sha2_passwordMySQL 8.0 既定
auth_socket / unix_socketUnixソケットでOSユーザー名と照合

権限も一緒に見る

-- 個別ユーザーの権限
SHOW GRANTS FOR 'username'@'localhost';

-- 現在の接続ユーザーの権限
SHOW GRANTS FOR CURRENT_USER;

-- 全ユーザーの詳細
SELECT user, host, Select_priv, Insert_priv, Update_priv, Delete_priv
FROM mysql.user;

パスワードの変更

-- MySQL 5.7+ / MariaDB
ALTER USER 'username'@'localhost' IDENTIFIED BY 'newpassword';

-- 古いMySQL (5.6以前)
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('newpassword');

-- 変更を反映
FLUSH PRIVILEGES;

関連する確認コマンド

コマンド用途
SELECT user, host FROM mysql.user;ユーザーと接続元の一覧
SHOW GRANTS FOR 'u'@'h';そのユーザーの権限
SELECT CURRENT_USER, USER();現在の接続情報
SHOW DATABASES;そのユーザーから見えるDB一覧
SHOW PROCESSLIST;接続中ユーザーの一覧

注意点

  • mysql.user の参照には権限が必要: 通常は root 等管理者ユーザーのみ
  • パスワードはハッシュ: authentication_string は平文ではない
  • 同じユーザー名でhostが違うと別レコード: 'root'@'localhost''root'@'%' は別ユーザー扱い
  • 本番では mysql.user 参照ログも残ること、監査対象になりうることに注意

関連