0

0

mysql权限管理_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:30:01

|

1218人浏览过

|

来源于php中文网

原创

bitsCN.com

一、权限

命令标识

授权表中对应的列

说明

CREATE

Create_priv

创建数据库、表或索引

CREATE TEMPORARY TABLES

Create_tmp_table_priv

创建临时数据表

CREATE ROUTINE

Create_routine_priv

创建函数或存储

CREATE VIEW

Create_view_priv

创建视图

CREATE USER

Create_user_priv

创建用户

EXECUTE

Execute_priv

执行函数或存储过程

INDEX

Index_priv

建立索引

REFERENCES

References_priv

建立约束

DROP

Drop_priv

删除表

SELECT

Select_priv

查询数据

INSERT

Insert_priv

插入数据

UPDATE

Update_priv

更新数据

DELETE

Delete_priv

删除数据

LOCK TABLES

Lock_tables_priv

锁定表格

SHOW DATABASES

Show_db_priv

列出数据库

SHOW VIEW

Show_view_priv

列出视图

USAGE

 

只有登录权限,其他权限都没有

ALL

 

所有权限,除了WITH GRANT OPTION

ALTER

Alter_priv

更改数据表

ALTER ROUTINE

Alter_routine_priv

更改函数或存储过程

PROCESS

Process_priv

显示连接进程和中断连接进程

FILE

File_priv

载入文件

RELOAD

Reload_priv

可以用FLUSH

REPLICATION CLIENT

Repl_client_priv

可以检查Masters和Slaves

REPLICATION SLAVE

Repl_slave_priv

在Slave里的特殊权限

SHUTDOWN

Shutdown_priv

关闭MySQL

WITH GRANT OPTION

Grant_priv

可以将自己拥有的权限赋给其他用户

SUPER

Super_priv

执行kill线程,change master、purge master logs、set global等命令的权限

create tablespace

Create_tablespace_priv 

创建表空间

Event

Event_priv 

确定用户能否创建、修改和删除事件

Trigger

Trigger_priv 

确定用户能否创建和删除触发器

 

二、权限级别

1、global level 全局权限控制,所有的信息都保存在mysql.user表中。

2、database level 作用域为指定某个数据库中的所有对象,所有权限信息保存在mysql.db中。当执行grant命令时,通过“database.*”来限定作用域为database整个数据库;也可以通过use命令选定授权的数据库,然后通过“*”来限定作用域,这样授权的作用域实际上就是当前选定的整个数据库。

3、table level 作用范围是授权语句中指定数据库的指定表(database.table),权限信息保存在tables_priv中。

4、column level 作用域为某个指定的列,权限信息保存在columns_priv中。column level级别的权限仅有insert、select、update这三种。语法格式:grant select(id,value) on test.t2 to ‘abc’@‘%’。给abc用户授予 test数据库t2表的id、value列select权限.

5、routine level 针对的主要对象时procedure和function。目前暂时只有execute和alter routine两种。语法格式:grant execute on test.p1 to 'abc' @'%';

6、with grant option。在授权时加上此命令,被授权用户有传递权限的权限。

三、权限查看和更改

1、新加权限或者用户。 

  GRANT 权限 ON 库名.表名 TO 新用户名@主机名 IDENTIFIED BY ‘密码‘;

  例:grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";新加的用户名为test1 ,密码为abc,对所有表有增删查改的权限,在任何主机上可以登录。

 

2、查看权限。

   使用show grants 语句查看指定账户的权限;例如,要检查Host和User值分别为pc84.example.com和bob的账户所授予的权限,应通过语句:

mysql> SHOW GRANTS FOR 'bob'@'pc84.example.com';

 

3、更改权限。

   若通过直接修改权限表来更改权限,则修改完后都必须要执行“flush privileges”,通知mysql重新加载MySQL的权限信息;如果通过grant、revoke或drop user命令来修改权限,则不需要执行“flush privileges”命令。

 

4、权限更改何时生效

当mysqld启动时,所有授权表的内容被读进内存并且从此时生效。

当服务器注意到授权表被改变了时,现存的客户端连接有如下影响:

· 表和列权限在客户端的下一次请求时生效。

· 数据库权限改变在下一个USE db_name命令生效。

· 全局权限的改变和密码改变在下一次客户端连接时生效。

如果用GRANT、REVOKE或SET PASSWORD对授权表进行修改,服务器会注意到并立即重新将授权表载入内存。

如果你手动地修改授权表(使用INSERT、UPDATE或DELETE等等),你应该执行mysqladmin flush-privileges或mysqladmin reload告诉服务器再装载授权表,否则你的更改将不会生效,除非你重启服务器。

如果你直接更改了授权表但忘记重载,重启服务器后你的更改方生效。这样可能让你迷惑为什么你的更改没有什么变化!

 

 

5、修改密码

当使用setpassword、insert、update更改密码时,必须使用PASSWORD()函数加密密码。若果不使用PASSWORD()函数,密码将不工作。

例如,下面的语句设置密码,但没能加密,因此用户后面不能连接:

    mysql> SET PASSWORD FOR 'abe'@'host_name' = 'eagle';

相反,应这样设置密码:

mysql> SET PASSWORD FOR 'abe'@'host_name' = PASSWORD('eagle');

当使用GRANT或CREATE USER语句或mysqladmin password命令指定密码时,不需要PASSWORD()函数,它们会自动使用PASSWORD()来加密密码。

四、权限表列值的规则

1、user 、host 、db表中值的规则

· 通配符字符“%”和“_”可用于表的Host和Db列。它们与用LIKE操作符执行的模式匹配操作具有相同的含义。如果授权时你想使用某个字符,必须使用反斜现引用。例如,要想在数据库名中包括下划线(‘_’),在GRANT语句中用‘/_’来指定。

·在db表的'%'Host值意味着“任何主机”,在db表中空Host值意味着“对进一步的信息咨询host表”。

·在host表的'%'或空Host值意味着“任何主机”。

·在三个表中的'%'或空Db值意味着“任何数据库”。

·在user、db表中的空User值匹配匿名用户

 

2、tables_priv和columns_priv表中值得规则

·通配符“%”并“_”可用在使用在两个表的Host列。

·在两个表中的'%'或空Host意味着“任何主机”。

·在两个表中的Db、Table_name和Column_name列不能包含通配符或空。

3、mysql.host表的特殊点

mysql.host不是通过grant或revoke权限来授予或去除的,必须手工通过insert、update和delete命令来修改其中的数据。其中的权限无法单独生效,必须与mysql.db权限表一起才能生效。当mysql.db中的信息不完整时,采取访问mysql.host。

当想在db表的范围之内扩展一个条目时,就会用到host表。举例来说,如果某个db允许通过多个主机访问的话,那么超级用户就可以让db表内将host列为空,然后用必要的主机名填充host表。

五、访问控制

阶段1:连接核实

当你试图连接MySQL服务器时,服务器基于你的身份以及你是否能通过供应正确的密码验证身份来接受或拒绝连接。如果不是,服务器完全拒绝你的访问,否则,服务器接受连接,然后进入阶段2并且等待请求。

你的身份基于2个信息:

·你从那个主机连接

·你的MySQL用户名

身份检查使用3个user表(Host, User和Password)范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。

 

阶段2:请求核实

一旦你建立了连接,服务器进入访问控制的阶段2。对在此连接上进来的每个请求,服务器检查你想执行什么操作,然后检查是否有足够的权限来执行它。这正是在授权表中的权限列发挥作用的地方。这些权限可以来自user、db、host、tables_priv或columns_priv表。

 

六、query 处理权限校验流程

七、常做操作所需权限

1、备份

备份用户会通过mysqldump来做备份,一般只需要用到select和lock tables 两项权限。如果使用带-tab选项的mysqldump来做tab分界符文件的导出,或者是用select into outfile,那么还需要一个file权限。

例:grant select,lock tables,file on *.* to backup@localhost

为了保证许多备份操作的一致性,还会用到flush tables with read lock,所以还需要reload权限。

 

2、操作和监控

维护系统或修复故障需要用到kill或show命令,还需要关闭服务器。所以需要用到process和shutdown权限。

 

 

 

bitsCN.com

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

705

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

233

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

117

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

22

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

61

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

30

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

669

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

58

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 9.4万人学习

Django 教程
Django 教程

共28课时 | 4.4万人学习

Excel 教程
Excel 教程

共162课时 | 18万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号