什么是mysql权限系统_mysql权限基本概念

7次阅读

MySQL 权限系统基于“用户名 + 主机名”身份认证,分全局、数据库、表、列四级授权,权限存于 mysql 库各表并内存缓存,含管理类与操作类权限,部分具隐含继承性。

什么是 mysql 权限系统_mysql 权限基本概念

MySQL 权限系统是一套基于身份验证与操作授权的访问控制机制,核心目标是确保只有被明确允许的用户,才能在指定范围内执行特定数据库操作。

用户身份由“用户名 + 主机名”共同决定

同一个用户名从不同主机连接,会被视为完全不同的账户。例如:

  • appuser’@’192.168.10.5′‘appuser’@’localhost’ 是两个独立账户
  • 可以为它们设置不同密码、不同权限、甚至一个启用一个锁定
  • 通配符 ‘%’ 表示任意主机(不包括 localhost),若需覆盖本地连接,需额外显式创建 ‘user’@’localhost’

权限按作用范围分四个层级

权限不是笼统赋予的,而是严格绑定到具体 作用域,从宽到细依次为:

  • 全局层级(*.*):影响整个 MySQL 实例,如 CREATE USERSHUTDOWNRELOAD
  • 数据库层级(db_name.*):仅对该数据库内所有对象生效,如 CREATEDROPALTER 数据库或其中表
  • 表层级(db_name.table_name):控制对某张表的 SELECTINSERTUPDATEDELETE 等操作
  • 列层级(db_name.table_name.column_name):精细到某列的读写,常用于敏感字段隔离(如身份证号、密码哈希)

权限存储与生效机制

所有权限规则都持久化保存在 mysql 系统库 的多张权限表中,包括:

  • user:记录全局权限和账户属性(密码、过期、锁定状态)
  • db:记录数据库级权限
  • tables_privcolumns_priv:分别管理表级和列级权限
  • 服务启动时一次性加载进内存,后续权限检查均基于内存副本进行
  • 修改权限后无需重启,但执行 FLUSH PRIVILEGES 可强制重载(一般仅在直接更新权限表后需要)

权限类型分为管理类与操作类

并非所有权限都用于数据操作:

  • 管理类权限:如 SUPERREPLICATION CLIENTPROCESS,用于运维与系统控制
  • 操作类权限:如 SELECTINSERTEXECUTE(调用存储过程),面向业务逻辑
  • 部分权限具有隐含继承性 —— 比如授予 CREATE 权限到某个数据库,也自动包含在该库中建表的能力;但不会自动获得建库本身权限,除非显式授予 CREATE DATABASE
星耀云
版权声明:本站原创文章,由 星耀云 2025-12-30发表,共计1002字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources