mysql用户和权限是什么_mysql权限管理基础概念

14次阅读

MySQL 用户由用户名和主机名共同定义,权限分全局、数据库、表、列四级,支持角色批量授权,连接需经合法性与权限两阶段验证,修改权限后需刷新缓存。

mysql 用户和权限是什么_mysql 权限管理基础概念

MySQL 用户和权限是数据库访问控制的核心机制:用户代表能连接并操作数据库的实体,权限则决定这个用户能做什么——比如查数据、改表结构、删库,甚至管理其他用户。

用户由用户名 + 主机名共同定义

MySQL 不只看用户名,还严格绑定客户端来源。例如 appuser’@’192.168.1.%’‘appuser’@’localhost’ 是两个完全独立的账户,可以设不同密码、不同权限。主机名支持通配符(% 表示任意 IP,_ 表示单字符),但不支持正则或网段掩码写法。

权限分层级,粒度从宽到细

权限不是笼统的一张表,而是按作用范围分层存储在系统库 mysql 的多张表中:

  • 全局级(mysql.user):如 SELECTDROP DATABASERELOAD,影响整个实例
  • 数据库级(mysql.db):如 CREATEALTER 某个库下的对象
  • 表级(mysql.tables_priv):限制对某张表的 INSERTUPDATE
  • 列级(mysql.columns_priv):精细到只允许查 users.name,但不能看 users.phone

角色让批量授权更可控(MySQL 8.0+)

角色是一组预定义权限的集合,类似“模板”。你可以先创建一个 report_reader 角色,赋予它所有库的 SELECT 权限;再把该角色授予多个报表用户。后续只需调整角色权限,所有成员自动同步,不用逐个 GRANT

权限生效依赖两阶段验证

每次连接进来,MySQL 先检查 user 表确认账号是否存在、密码是否正确、来源 IP 是否允许(合法性验证);通过后,再按层级顺序(global → db → table → column)叠加匹配的权限项,最终确定该会话能执行哪些操作( 权限验证 )。修改权限后必须执行 FLUSH PRIVILEGES 或重启服务才能让内存中的权限缓存更新(仅直接改系统表时需要;用 GRANT/REVOKE 命令则自动刷新)。

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-21发表,共计859字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources