mysql用户和权限是什么_mysql权限管理基础概念
#技术教程 发布时间: 2025-12-21
MySQL用户由用户名和主机名共同定义,权限分全局、数据库、表、列四级,支持角色批量授权,连接需经合法性与权限两阶段验证,修改权限后需刷新缓存。
MySQL 用户和权限是数据库访问控制的核心机制:用户代表能连接并操作数据库的实体,权限则决定这个用户能做什么——比如查数据、改表结构、删库,甚至管理其他用户。
用户由用户名+主机名共同定义
MySQL 不只看用户名,还严格绑定客户端来源。例如 'appuser'@'192.168.1.%' 和 'appuser'@'localhost' 是两个完全独立的账户,可以设不同密码、不同权限。主机名支持通配符(% 表示任意IP,_ 表示单字符),但不支持正则或网段掩码写法。
权限分层级,粒度从宽到细
权限不是笼统的一张表,而是按作用范围分层存储在系统库 mysql 的多张表中:
- 全局级(mysql.user):如 SELECT、DROP DATABASE、RELOAD,影响整个实例
- 数据库级(mysql.db):如 CREATE、ALTER 某个库下的对象
- 表级(mysql.tables_priv):限制对某张表的 INSERT 或 UPDATE
- 列级(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 命令则自动刷新)。
上一篇 : ubuntu 15.04下mysql开放远程3306端口
下一篇 : Android 使用版本控制工具时添加忽略文件的方式(详解)
-
SEO外包最佳选择国内专业的白帽SEO机构,熟知搜索算法,各行业企业站优化策略!
SEO公司
-
可定制SEO优化套餐基于整站优化与品牌搜索展现,定制个性化营销推广方案!
SEO套餐
-
SEO入门教程多年积累SEO实战案例,从新手到专家,从入门到精通,海量的SEO学习资料!
SEO教程
-
SEO项目资源高质量SEO项目资源,稀缺性外链,优质文案代写,老域名提权,云主机相关配置折扣!
SEO资源
-
SEO快速建站快速搭建符合搜索引擎友好的企业网站,协助备案,域名选择,服务器配置等相关服务!
SEO建站
-
快速搜索引擎优化建议没有任何SEO机构,可以承诺搜索引擎排名的具体位置,如果有,那么请您多注意!专业的SEO机构,一般情况下只能确保目标关键词进入到首页或者前几页,如果您有相关问题,欢迎咨询!