MySQL权限系统基于“用户名+主机名”身份认证,分全局、数据库、表、列四级授权,权限存于mysql库各表并内存缓存,含管理类与操作类权限,部分具隐含继承性。
MySQL权限系统是一套基于身份验证与操作授权的访问控制机制,核心目标是确保只有被明确允许的用户,才能在指定范围内执行特定数据库操作。
同一个用户名从不同主机连接,会被视为完全不同的账户。例如:
权限不是笼统赋予的,而是严格绑定到具体作用域,从宽到细依次为:
CREATE USER、SHUTDOWN、RELOAD
CREATE、DROP、ALTER 数据库或其中表SELECT、INSERT、UPDATE、DELETE 等操作
ame.table_name.column_name):精细到某列的读写,常用于敏感字段隔离(如身份证号、密码哈希)所有权限规则都持久化保存在 mysql 系统库 的多张权限表中,包括:
user:记录全局权限和账户属性(密码、过期、锁定状态)db:记录数据库级权限tables_priv 和 columns_priv:分别管理表级和列级权限FLUSH PRIVILEGES 可强制重载(一般仅在直接更新权限表后需要)并非所有权限都用于数据操作:
SUPER、REPLICATION CLIENT、PROCESS,用于运维与系统控制SELECT、INSERT、EXECUTE(调用存储过程),面向业务逻辑CREATE 权限到某个数据库,也自动包含在该库中建表的能力;但不会自动获得建库本身权限,除非显式授予 CREATE DATABASE