ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
MySQL の場合
基本: mysql.user テーブル
-- 全ユーザー (アカウント = user + host のセット)
SELECT user, host FROM mysql.user;
-- +------------------+-----------+
-- | user | host |
-- +------------------+-----------+
-- | root | localhost |
-- | mysql.sys | localhost |
-- | mysql.session | localhost |
-- | app_user | % | ← 全 IP から接続可
-- | readonly | 10.0.% | ← 社内 LAN のみ
-- +------------------+-----------+
MySQL は ユーザー名と接続元ホスト名の組み合わせでアカウントを管理します。同じ app_user でも 'app_user'@'localhost' と 'app_user'@'%' は別アカウント扱い。
認証プラグインや有効期限も見る
-- MySQL 5.7 以降
SELECT user, host, plugin, password_expired, account_locked
FROM mysql.user
ORDER BY user, host;
-- +-----------+-----------+-----------------------+------------------+----------------+
-- | user | host | plugin | password_expired | account_locked |
-- +-----------+-----------+-----------------------+------------------+----------------+
-- | root | localhost | caching_sha2_password | N | N |
-- | mysql.sys | localhost | caching_sha2_password | N | Y | ← ロック中
-- +-----------+-----------+-----------------------+------------------+----------------+
個別の権限を確認
SHOW GRANTS FOR 'app_user'@'%';
-- +------------------------------------------------------------------+
-- | Grants for app_user@% |
-- +------------------------------------------------------------------+
-- | GRANT USAGE ON *.* TO 'app_user'@'%' |
-- | GRANT SELECT, INSERT, UPDATE, DELETE ON `appdb`.* TO 'app_user'@'%' |
-- +------------------------------------------------------------------+
-- 現在ログイン中の自分の権限
SHOW GRANTS;
SHOW GRANTS FOR CURRENT_USER();
information_schema 経由
-- 全権限を行で取得
SELECT * FROM information_schema.USER_PRIVILEGES;
-- グローバル権限の集計
SELECT GRANTEE, GROUP_CONCAT(PRIVILEGE_TYPE) AS privs
FROM information_schema.USER_PRIVILEGES
GROUP BY GRANTEE;
-- スキーマレベル権限
SELECT * FROM information_schema.SCHEMA_PRIVILEGES;
-- テーブルレベル権限
SELECT * FROM information_schema.TABLE_PRIVILEGES;
PostgreSQL の場合
psql のメタコマンド
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
app_user | | {}
readonly | Cannot login | {ro_group}
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres=# \du+ -- 詳細表示 (コメント含む)
postgres=# \dg -- グループロールのみ
SQL から取得
SELECT rolname, rolsuper, rolcreaterole, rolcreatedb, rolcanlogin,
rolconnlimit, rolvaliduntil
FROM pg_roles
WHERE rolname NOT LIKE 'pg_%' -- 内部ロール除外
ORDER BY rolname;
-- 旧 pg_user (LOGIN ロールのみ表示する互換ビュー)
SELECT usename, usesuper, valuntil FROM pg_user;
-- 全権限を一覧
SELECT grantee, table_schema, table_name, privilege_type
FROM information_schema.table_privileges
WHERE grantee NOT IN ('postgres', 'PUBLIC')
ORDER BY grantee, table_schema, table_name;
PostgreSQL 9.0 以降は ユーザーとグループの区別が無くなり、すべて「ロール (Role)」として扱われます。ログイン可能なロール = 旧ユーザー、ログイン不可で他のロールにメンバーシップを持つロール = 旧グループ、という関係です。
Oracle の場合
-- DBA 権限ユーザーで
SELECT username, account_status, created, default_tablespace,
authentication_type, profile
FROM dba_users
ORDER BY username;
-- ACCOUNT_STATUS で見られる主な状態
-- OPEN ... 利用可
-- LOCKED ... 管理者がロック
-- EXPIRED ... パスワード期限切れ
-- EXPIRED & LOCKED ... ロック + 期限切れ
-- LOCKED(TIMED) ... 連続失敗で自動ロック
-- 一般ユーザーから見える範囲
SELECT username FROM all_users;
SELECT username FROM user_users; -- 自分自身
-- ユーザーの持つロール
SELECT * FROM dba_role_privs WHERE grantee = 'APP_USER';
-- ユーザーのシステム権限
SELECT * FROM dba_sys_privs WHERE grantee = 'APP_USER';
-- ユーザーのオブジェクト権限
SELECT * FROM dba_tab_privs WHERE grantee = 'APP_USER';
DB 間の対応表
| 目的 | MySQL | PostgreSQL | Oracle |
|---|---|---|---|
| ユーザー一覧 | SELECT user,host FROM mysql.user | \du / pg_roles | dba_users |
| 権限 | SHOW GRANTS | \dp / information_schema.table_privileges | dba_sys_privs / dba_tab_privs |
| ロール | (MySQL 8.0+) mysql.role_edges | pg_auth_members | dba_role_privs |
| 現在のユーザー | SELECT CURRENT_USER() | SELECT current_user | SELECT USER FROM dual |
削除済みユーザーが残るケース
テーブルの所有者やオブジェクトの所有者として残っている場合、DROP USER は失敗します。次のパターンに注意。
- MySQL: 接続中セッションが残っていると
DROP USERしても接続が切れるまで権限が有効に見えることがある - PostgreSQL:
REASSIGN OWNED BY old_user TO new_user;+DROP OWNED BY old_user;の順で先にオブジェクトの所有を移す - Oracle:
DROP USER xxx CASCADEで所有スキーマごと削除されるため誤削除に厳重注意
認証プラグインの確認 (MySQL)
-- MySQL 8.0 既定: caching_sha2_password
-- 古いクライアントが繋がらない場合 mysql_native_password に戻す
ALTER USER 'app'@'%' IDENTIFIED WITH mysql_native_password BY 'newpass';
-- LDAP 認証 (Enterprise Edition)
ALTER USER 'app'@'%' IDENTIFIED WITH authentication_ldap_simple;
-- 認証プラグインの一覧
SELECT user, host, plugin FROM mysql.user;
FAQ
Q: mysql.user を参照できない
A: 一般ユーザーには参照権限がありません。root または SELECT ON mysql.* 権限を持つアカウントで接続してください。
Q: 同じ user 名で host が違うレコードがいくつもある
A: それが MySQL の正常挙動。接続元 IP / ホスト名ごとに別アカウントです。一括で消すなら DROP USER 'app'@'host1', 'app'@'host2' のように指定。
Q: Oracle で「ロックされたユーザー」を解除したい
A: ALTER USER scott ACCOUNT UNLOCK; でロック解除、IDENTIFIED BY new_password でパスワード再設定。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ユーザー作成
- ユーザー名変更(RENAME USER)
- ユーザー一覧の表示
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?