文档章节

MySQL的权限有哪些及如何设置

五大三粗
 五大三粗
发布于 2015/04/21 10:42
字数 1338
阅读 12
收藏 0
点赞 0
评论 0
  • 一.权限表
     mysql数据库中的3个权限表:user 、db、 host
MYSQL验证权限的过程是:
     1)先从user表中的host、 user、 password这3个字段中判断连接的IP、用户名、密码是否存在表中,存在则通过身份验证;
     2)通过权限验证,进行权限分配时,按照user、db、tables_priv、columns_priv的顺序进行分配。
          即先检查全局权限表user,如果user中对应的权限为Y,则此用户对所有数据库的权限都为Y,将不再检查db, tables_priv,columns_priv;
          如果为N,则到db表中检查此用户对应的具体数据库,并得到db中为Y的权限;
          如果db中为N,则检查tables_priv中此数据库对应的具体表,取得表中的权限Y,
          以此类推。
 

二.MySQL各种权限(共27个) (以下操作都是以root身份登陆进行grant授权)

1. usage      连接(登陆)权限,建立一个用户,就会自动授予其usage权限(默认授予)。      

mysql> grant usage on *.* to ‘p1′@’localhost’ identified by ‘123′;

      该权限只能用于数据库登陆,不能执行任何操作;且usage权限不能被回收,也即REVOKE用户并不能删除用户。
 

2. select      必须有select的权限,才可以使用select table      

mysql> grant select on pyt.* to ‘p1′@’localhost’;

      mysql> select * from shop;
 

3. create      必须有create的权限,才可以使用create table

     mysql> grant create on pyt.* to ‘p1′@’localhost’;
 

4. create routine      必须具有create routine的权限,才可以使用{create |alter|drop} {procedure|function}      

mysql> grant create routine on pyt.* to ‘p1′@’localhost’;      

当授予create routine时,自动授予EXECUTE, ALTER ROUTINE权限给它的创建者:      

mysql> show grants for ‘p1′@’localhost’;  

5. create temporary tables(注意这里是tables,不是table)      

必须有create temporary tables的权限,才可以使用create temporary tables.      

mysql> grant create temporary tables on pyt.* to ‘p1′@’localhost’;      

mysql@mydev ~]$ mysql -h localhost -u p1 -p pyt

mysql> create temporary table tt1(id int);

 

6. create view      必须有create view的权限,才可以使用create view      

mysql> grant create view on pyt.* to ‘p1′@’localhost’;

       mysql> create view v_shop as select price from shop;
 

7. create user      要使用CREATE USER,必须拥有mysql数据库的全局CREATE USER权限,或拥有INSERT权限。  

mysql> grant create user on *.* to ‘p1′@’localhost’;

     或:mysql> grant insert on *.* to p1@localhost;
 

8. insert      必须有insert的权限,才可以使用insert into ….. values….

9. alter

     必须有alter的权限,才可以使用alter table

     alter table shop modify dealer char(15);
 

10. alter routine      必须具有alter routine的权限,才可以使用{alter |drop} {procedure|function}      

mysql>grant alter routine on pyt.* to ‘p1′@’ localhost ‘;      

mysql> drop procedure pro_shop;

mysql> revoke alter routine on pyt.* from ‘p1′@’localhost’;  

11. update      必须有update的权限,才可以使用update table      

mysql> update shop set price=3.5 where article=0001 and dealer=’A'; 

12. delete

     必须有delete的权限,才可以使用delete from ….where….(删除表中的记录)

13. drop

     必须有drop的权限,才可以使用drop database db_name; drop table tab_name;    

drop view vi_name; drop index in_name;

14. show database

通过show database只能看到你拥有的某些权限的数据库,除非你拥有全局SHOW DATABASES权限。      

对于p1@localhost用户来说,没有对mysql数据库的权限,所以以此身份登陆查询时,无法看到mysql数据库:  

15. show view      必须拥有show view权限,才能执行show create view。      

mysql> grant show view on pyt.* to p1@localhost;    

mysql> show create view v_shop;

16. index

     必须拥有index权限,才能执行[create |drop] index      

mysql> grant index on pyt.* to p1@localhost;      

mysql> create index ix_shop on shop(article);    

mysql> drop index ix_shop on shop;

17. execute

     执行存在的Functions,Procedures

18. lock tables      必须拥有lock tables权限,才可以使用lock tables  

mysql> grant lock tables on pyt.* to p1@localhost;   19. references

     有了REFERENCES权限,用户就可以将其它表的一个字段作为某一个表的外键约束。
 

20. reload      必须拥有reload权限,才可以执行flush [tables | logs | privileges]

mysql> grant reload on *.* to ‘p1′@’localhost’;  

21. replication client      拥有此权限可以查询master server、slave server状态。      

mysql> show master status;      

ERROR 1227 (42000): Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation

mysql> grant Replication client on *.* to p1@localhost;  

或:mysql> grant super on *.* to p1@localhost;  

22. replication slave      拥有此权限可以查看从服务器,从主服务器读取二进制日志。      

mysql> show slave hosts;      

ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation      

mysql> show binlog events;      

ERROR 1227 (42000): Access denied; you need the REPLICATION SLAVE privilege for this operation      

mysql> grant replication slave on *.* to p1@localhost;      

mysql> show slave hosts;  

23. Shutdown      关闭MySQL:  

24. grant option      拥有grant option,就可以将自己拥有的权限授予其他用户(仅限于自己已经拥有的权限)      

mysql> grant Grant option on pyt.* to p1@localhost;  

25. file      拥有file权限才可以执行 select ..into outfile和load data infile…操作,但是不要把file, process, super权限授予管理员以外的账号,这样存在严重的安全隐患。      

mysql> grant file on *.* to p1@localhost;      

mysql> load data infile ‘/home/mysql/pet.txt’ into table pet;

26. super

     这个权限允许用户终止任何查询;修改全局变量的SET语句;使用CHANGE MASTER,PURGE MASTER LOGS。     mysql> grant super on *.* to p1@localhost;      mysql> purge master logs before ‘mysql-bin.000006′;

27. process

     通过这个权限,用户可以执行SHOW PROCESSLIST和KILL命令。

默认情况下,每个用户都可以执行SHOW PROCESSLIST命令,但是只能查询本用户的进程。      

mysql> show processlist;  

注:      管理权限(如 super, process, file等)不能够指定某个数据库,on后面必须跟*.*

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 155
博文 892
码字总数 4545120
作品 0
广州
程序员
mysql权限表整理

一、MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界。比如只允许你执行select操作,那么你就不能执行update操作。只允许你从某台机器上连接mysql,...

chenshifei ⋅ 2016/12/20 ⋅ 0

mysql数据库权限管理

感觉不错,文章转载自:http://www.cnblogs.com/Richardzhu/p/3318595.html 一、MySQL权限简介 关于mysql的权限简单的理解就是mysql允许你做你全力以内的事情,不可以越界。比如只允许你执行...

ytliu2010 ⋅ 2017/06/06 ⋅ 0

大数据社区整理的Linux运维笔试面试题(47题)

大数据社区整理的Linux运维笔试面试题(47题) Linux操作系统知识 1. Linux开机启动流程详细步骤是什么?忘记密码如何破解? 2. 企业中Linux数据库服务器做raid几,你们原来公司的数据库服务...

代金券优惠 ⋅ 06/06 ⋅ 0

MYSQL数据库管理之权限管理

经常遇到有网友在QQ群或者论坛上问关于mysql权限的问题,今天抽空总结一下关于这几年使用MYSQL的时候关于MYSQL数据库的权限管理的经验,也希望能对使用mysql的网友有所帮助! MYSQL权限简介 关于...

GarenBean ⋅ 2016/04/15 ⋅ 0

Linux运维MySQL必会面试题100道

老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口是否运...

老男孩oldboy ⋅ 2017/08/25 ⋅ 0

Linux提权后获取敏感信息的方法与途径

下面是一个混合的命令做同样的事情,在不同的地方,或只是一个不同的眼光来看待事物。 我知道有更多的“东西”去寻找。这只是一个基本粗略的指南。并不是每一个命令,做好要注重细节. 文中的...

次渠龙哥 ⋅ 2014/06/01 ⋅ 0

Mysql安全配置

0x01 前言 很多文章中会说,数据库的权限按最小权限为原则,这句话本身没有错,但是却是一句空话。因为最小权限,这个东西太抽象,很多时候你并弄不清楚具体他 需要哪些权限。 现在很多mysql...

天天顺利 ⋅ 2015/10/08 ⋅ 1

mysql 赋给用户远程权限 grant all privileges on

登陆 在本机上使用命令行登陆,并切换到MySQL库 mysql -uroot -puse mysql; 要查看user表中user=’root’的对应情况,根据实际需求来更改表信息 select host,user from user where user='roo...

坚持30天 ⋅ 2017/07/20 ⋅ 0

mysql系统数据库安装

mysql就不用谈理论了,文档写了安装过程,以及基本增删改查 1.准备工作确认没有使用RPM方式安装mysql-server、mysql2.安装mysql之前,需要安装软件开发软件包,如果安装操作系统的时候勾选过...

xuewenhcang ⋅ 01/08 ⋅ 0

第三章:MySQL数据库系统

1、卸载原有的mysql上图中使用rpm方式安装过mysql,所以使用rpm -e msyql --nodeps卸载2、安装mysql之前,需要安装软件开发软件包,如果安装操作系统的时候勾选过“软件开发”,就不用安装了...

春风十里cc ⋅ 01/01 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Jenkins实践3 之脚本

#!/bin/sh# export PROJ_PATH=项目路径# export TOMCAT_PATH=tomcat路径killTomcat(){pid=`ps -ef | grep tomcat | grep java|awk '{print $2}'`echo "tom...

晨猫 ⋅ 今天 ⋅ 0

Spring Bean的生命周期

前言 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,掌握这些可以加深对 Spring 的理解。 首先看下生命周期图: 再谈生命周期之前有一点需要先明确: Spring 只帮我们管理单例模...

素雷 ⋅ 今天 ⋅ 0

zblog2.3版本的asp系统是否可以超越卢松松博客的流量[图]

最近访问zblog官网,发现zlbog-asp2.3版本已经进入测试阶段了,虽然正式版还没有发布,想必也不久了。那么作为aps纵横江湖十多年的今天,blog2.2版本应该已经成熟了,为什么还要发布这个2.3...

原创小博客 ⋅ 今天 ⋅ 0

聊聊spring cloud的HystrixCircuitBreakerConfiguration

序 本文主要研究一下spring cloud的HystrixCircuitBreakerConfiguration HystrixCircuitBreakerConfiguration spring-cloud-netflix-core-2.0.0.RELEASE-sources.jar!/org/springframework/......

go4it ⋅ 今天 ⋅ 0

二分查找

二分查找,也称折半查找、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于...

人觉非常君 ⋅ 今天 ⋅ 0

VS中使用X64汇编

需要注意的是,在X86项目中,可以使用__asm{}来嵌入汇编代码,但是在X64项目中,再也不能使用__asm{}来编写嵌入式汇编程序了,必须使用专门的.asm汇编文件来编写相应的汇编代码,然后在其它地...

simpower ⋅ 今天 ⋅ 0

ThreadPoolExecutor

ThreadPoolExecutor public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, ......

4rnold ⋅ 昨天 ⋅ 0

Java正无穷大、负无穷大以及NaN

问题来源:用Java代码写了一个计算公式,包含除法和对数和取反,在页面上出现了-infinity,不知道这是什么问题,网上找答案才明白意思是负的无穷大。 思考:为什么会出现这种情况呢?这是哪里...

young_chen ⋅ 昨天 ⋅ 0

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 昨天 ⋅ 0

实验楼—MySQL基础课程-挑战3实验报告

按照文档要求创建数据库 sudo sercice mysql startwget http://labfile.oss.aliyuncs.com/courses/9/createdb2.sqlvim /home/shiyanlou/createdb2.sql#查看下数据库代码 代码创建了grade......

zhangjin7 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部