1、mysql的权限是,从某处来的用户对某对象的权限。

2、mysql的权限采用白名单策略,指定用户能做什么,没有指定的都不能做。

3、权限校验分成两个步骤:

  a、能不能连接,检查从哪里来,用户名和密码,常见错误 ERROR 1045 (28000): Access denied for user ...

  b、能不能执行操作,粒度从粗到细,分别为:mysql.user,  mysql.db,  msql.tables_priv,  mysql.columns_priv,  mysql.proc_priv。需要注意的是,这些表各有分工,但是在权限分配上有一定的重合。可以这样理解,mysql 先检查对大范围是否有权限,如果没有再到小范围里去检查。比如:先检查对这个数据库是否有select权限,如果有,就允许执行。如果没有,再检查对表是否有select权限,一直到最细粒度,也没有权限,就拒绝执行。举例来说:要检查张三能否控制一个团,我只要先检查张三能否控制一个军,如果可以,就是有权限,如果不行,再检查张三能否控制一个师。。。。因此,粒度控制越细,权限校验的步骤越多,性能越差,需要考虑。

4、mysql服务启动之后,就会把权限有关的表的数据读到内存中,对权限做的修改,是否会即时生效?要看情况,手动修改表数据,需要 flush privileges

5、创建用户 create user,修改密码 set password,注意 alter user只是设置密码过期,可以登录,但是不能执行任何操作,必须从新设置密码,删除用户 drop user

6、host+user 标示唯一的一个用户,也就是说都叫张三,从不同地方来的张三是两个用户,他们有不同的权限。

7、那么问题来了,表中有两条记录:'root'@'192.168.1.101' 和 'root'@'%', 现在root来登录,mysql 怎么匹配呢?认为是哪个root呢?

  mysql 对用户进行了排序,先对host排序,再对user排序,小范围在前面,大范围在后面,从上往下匹配。

8、权限授予,grant 权限 on 对象 to 用户@哪里来 identified by 密码

9、收回权限,revoke 权限 on 对象 from 用户@哪里来,注意revoke 必须要与grant 对应,也就是说,只能收回授予的权限。

10、那么问题来了,我授予张三 select的权限,现在revoke all privileges 也不能收回张三select的权限,因为没有对张三 grant all privileges,怎么解决这个问题?

  使用 revoke all privileges,grant option from user

11、权限级别:从某台主机来的某个用户,对某个数据库中某个表的某些列的某部分记录,是否有权限。

12、全局:对象是mysql服务的所有数据库,包含服务级的管理权限,比如showdown

13、数据库:对象是某一个数据库

14、表:对象是数据库中某个表

15、列:对象是表中的某个列,比如:grant select (name) on xxx to xxx

16、程序:对象是存储过程和方法。

17、information_scheme,数据库和表是存放数据的,那么谁来存放 数据库和表这些信息呢? information_scheme 就是记录数据库和表的,需要注意的是,infromation_scheme没有对应的物理文件,它是mysql在内存中维护的。

18、权限设定原则:

  a、尽量缩小权限

  b、按业务,分离用户,不同的业务对应不同的用户

  c、避免权限粒度太细,因为mysql权限检查,会影响性能。

19、文件泄密,linux下mysql客户端执行的操作记录在文件 ~/.mysql_history中,输出重定向/dev/null

20、密码丢失怎么办?

  a、mysql启动,增加选项重置密码

  b、mysql启动,增加选项不检查权限,登陆后修改密码,退出重启启动。

mysql 权限控制的更多相关文章

  1. mysql 权限控制具体解释

    概述 mysql权限控制在不同的上下文和不同的操作水平上都能够进行控制,他们包括例如以下几个 ** 管理权限能够同意用户管理mysql server的操作. 这些权限控制是全局的,不是针对某个特定的数 ...

  2. Mysql权限控制 - 允许用户远程连接

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  3. Mysql权限控制 - 允许用户远程连接(转载)

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  4. 170424、Mysql权限控制 - 允许用户远程连接

    Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...

  5. mysq'l系列之10.mysql优化&权限控制

    网站打开慢如何排查 1.打开网页, 用谷歌浏览器F12, 查看network: 哪个加载时间长就优化哪个 2.如果是数据库问题 2.1 查看大体情况 # top # uptime  //load av ...

  6. 案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/118685521 长期持续带来更多项目与技术分享 ...

  7. Mysql用户权限控制(5.7以上版本)

    1.1. 最简单的MySql权限   最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 使用Ro ...

  8. mysql权限管理

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

  9. yii2搭建完美后台并实现rbac权限控制案例教程

    作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...

随机推荐

  1. Resolving failed: Temporary failure in name resolution 错误解决方法

    首先,检查自己的服务器是否配置了DNS:   其次,在确认了自己已经配置了DNS后,并且域名解析已经正常的情况下,还有上面的问题,接下来就是重启自己的web服务器.比如,apache,nginx等. ...

  2. poj2482 Stars in Your Window

    此题可用线段树或静态二叉树来做. 考虑用线段树: 很容易想到先限定矩形横轴范围再考虑在此纵轴上矩形内物品总价值的最大值. 那么枚举矩形横轴的复杂度是O(n)的,考虑如何快速获取纵轴上的最大值. 我们不 ...

  3. Poj(1273),最大流,EK

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 69355   Accepted: 2687 ...

  4. 利用Velocity结合Spring发email

    在spring中发mail是一件容易的事,如果利用Velocity做mail的模板来发送就更得心应手了. 首先,还是简单描述sping中的配置,发mail需要一个mail的engin: <bea ...

  5. linux下报错处理经验

    这是训练中文vocab做的句子相似度的程序: /home/xbwang/torch/install/bin/luajit: /home/xbwang/newtextsimilarity/util/Vo ...

  6. JavaScript的构造器与对象(二)

    constructor 的用法:对象的构造函数  每一个函数的Prototype属性指向的对象都包含唯一一个不可枚举属性constructor,该属性的值是这么一个对象:它指向了它所在的构造函数. 语 ...

  7. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  8. (4)Redis 资料

    Redis是一种面向“键/值”对类型数据的分布式NoSQL数据库系统,特点是高性能,持久存储,适应高并发的应用场景. Redis Home http://redis.io/ MSOpenTech/re ...

  9. 25-React事件处理及条件渲染

    Handling Events React元素的事件处理非常类似于对DOM元素添加事件处理,但有一部分的语法不同: 1.React事件使用camelCase(驼峰命名法)来进行命名,而不是小写字母 2 ...

  10. Spring 框架 详解 (三)-----IOC装配Bean

    IOC装配Bean: 1.1.1 Spring框架Bean实例化的方式: 提供了三种方式实例化Bean. * 构造方法实例化:(默认无参数) * 静态工厂实例化: * 实例工厂实例化: 无参数构造方法 ...