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

タイトル: ユーザー関連

本稿は MariaDB / MySQL のユーザー関連 SQL に関する記事です。データベースユーザの作成・確認・変更・削除・権限付与といった、ユーザ管理の操作をまとめます。

子ページから項目を選択してください。

本ページの子ページ

ユーザー関連 SQL の早見表

操作SQL
ユーザ一覧SELECT user, host FROM mysql.user;
ユーザ作成CREATE USER 'app'@'%' IDENTIFIED BY '********';
名前変更RENAME USER 'old'@'%' TO 'new'@'%';
パスワード変更ALTER USER 'app'@'%' IDENTIFIED BY '********';
削除DROP USER 'app'@'%';
権限付与GRANT SELECT, INSERT, UPDATE, DELETE ON myapp.* TO 'app'@'%';
権限取消REVOKE INSERT ON myapp.* FROM 'app'@'%';
権限確認SHOW GRANTS FOR 'app'@'%';
反映FLUSH PRIVILEGES;

ユーザー名と host 部分の意味

MySQL / MariaDB のユーザは 'user'@'host'ペアで識別されます。同じ user 名でも host 部分が違えば別のユーザ扱いで、別々の権限・パスワードを持てます。

host 指定意味
'localhost'UNIXドメインソケット (同一マシン)
'127.0.0.1'TCP loopback
'%'すべてのホスト (DB ネットワーク到達可能なら誰でも)
'10.0.0.%'サブネット指定
'web01.example.com'特定の FQDN (DNSが信用できる前提)

権限の階層

階層
グローバル (すべての DB)GRANT ALL ON *.* TO 'u'@'%';
データベース単位GRANT SELECT ON myapp.* TO 'u'@'%';
テーブル単位GRANT SELECT ON myapp.users TO 'u'@'%';
カラム単位GRANT SELECT (id, name) ON myapp.users TO 'u'@'%';
ルーチンGRANT EXECUTE ON PROCEDURE myapp.p TO 'u'@'%';

代表的な権限

権限用途
SELECT参照
INSERT / UPDATE / DELETEデータ更新
CREATE / ALTER / DROPDDL
INDEXインデックス管理
EXECUTEストアド呼出
CREATE USERユーザ管理
RELOADFLUSH 実行
REPLICATION CLIENT / SLAVEレプリ管理
ALL PRIVILEGES全権限 (本番では避ける)
GRANT OPTION他人へ権限を付与する権限

典型的なアプリ用ユーザの作成

-- 1. ユーザ作成
CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass!2026';

-- 2. 必要最小限の権限を付与
GRANT SELECT, INSERT, UPDATE, DELETE ON myapp.* TO 'app'@'%';

-- 3. 確認
SHOW GRANTS FOR 'app'@'%';

-- 4. 反映 (CREATE USER / GRANT 後は自動反映だが、念のため)
FLUSH PRIVILEGES;

パスワードに関する近年の変更

  • MySQL 8.0 から既定の認証プラグインが caching_sha2_password に変更
  • 古いクライアント / レガシーアプリは接続失敗することがある。必要なら mysql_native_password を明示
  • パスワードは平文では一切残らない (ハッシュ化されて保管)
  • 有効期限 (PASSWORD EXPIRE)・履歴・複雑度ポリシーが設定可能

運用上の注意

  • 本番アプリ用ユーザに GRANT OPTIONALL PRIVILEGES を渡さない
  • 同じ user 名でも host 違いで権限が別。意図しない権限漏れがないかチェック
  • % の host は便利だが、可能なら送信元 IP / VPC ネットワークで絞る
  • 権限変更は本番反映前に検証環境で動作確認
  • レプリケーション環境では権限変更がレプリカに伝搬する点を意識
  • クラウド (RDS / Aurora) では一部のシステム権限が制限される。サービス固有のロールを利用

関連