列出用户 / 角色
Oracle
SELECT username, account_status, default_tablespace, created
FROM dba_users
ORDER BY username;account_status 显示 LOCKED/EXPIRED 状态。角色请使用 dba_roles。
PostgreSQL
SELECT rolname, rolsuper, rolcanlogin, rolvaliduntil
FROM pg_roles
ORDER BY rolname;
-- Shortcut (psql): \du在 PostgreSQL 中,用户是带有 LOGIN 属性的角色;通过 rolcanlogin 区分。
MySQL
SELECT user, host, account_locked, password_expired
FROM mysql.user
ORDER BY user;在 MySQL 中,身份由用户 + 主机组合确定('app'@'%' 与 'app'@'localhost' 是不同的账户)。
SQL Server
-- Server logins:
SELECT name, type_desc, is_disabled FROM sys.server_principals
WHERE type IN ('S','U','G');
-- Database users:
SELECT name, type_desc FROM sys.database_principals
WHERE type IN ('S','U','G');登录名(login)是服务器级的,用户是数据库级的;两者通过 SID 映射。
MongoDB
// Users in the current database:
db.getUsers()
// All users in the system: use admin; db.system.users.find({}, {user:1, db:1, roles:1})用户定义在其创建所在的数据库中(authenticationDatabase)。
Redis
ACL LIST
# Names only: ACL USERS
# Your own identity: ACL WHOAMIRedis 6+ 的 ACL 体系。在此之前只有一个 'default' 用户和 requirepass。