Appearance
账户与权限模型
用户标识
- 用户由
用户名@主机唯一确定,例如'app'@'%'、'dba'@'10.0.0.%'。 - 同一用户名在不同主机上是 不同账户,权限独立。
认证插件
- 8.0 默认 多为
caching_sha2_password;旧客户端连不上时可换插件或升级客户端(仅作了解,生产以安全为先)。 - 密码存储在系统表中,勿在应用日志中打印连接串。
授权粒度
- 全局:
GRANT ... ON *.*。 - 库级:
ON db_name.*。 - 表级、列级:按需最小化。
- 常用权限:
SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER、INDEX,管理类SUPER、REPLICATION SLAVE等仅给运维账号。
示例(理解用)
sql
CREATE USER 'app_ro'@'%' IDENTIFIED BY '强密码';
GRANT SELECT ON myapp.* TO 'app_rw'@'%';
FLUSH PRIVILEGES;实践原则
应用库使用 独立账号,只读副本 用只读账号,人 与 服务 分账号,便于审计与回收。详见 账号与授权最小化。