mysql 权限控制
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 权限控制的更多相关文章
- mysql 权限控制具体解释
概述 mysql权限控制在不同的上下文和不同的操作水平上都能够进行控制,他们包括例如以下几个 ** 管理权限能够同意用户管理mysql server的操作. 这些权限控制是全局的,不是针对某个特定的数 ...
- Mysql权限控制 - 允许用户远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- Mysql权限控制 - 允许用户远程连接(转载)
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- 170424、Mysql权限控制 - 允许用户远程连接
Mysql为了安全性,在默认情况下用户只允许在本地登录,可是在有此情况下,还是需要使用用户进行远程连接,因此为了使其可以远程需要进行如下操作: 一.允许root用户在任何地方进行远程登录,并具有所有库 ...
- mysq'l系列之10.mysql优化&权限控制
网站打开慢如何排查 1.打开网页, 用谷歌浏览器F12, 查看network: 哪个加载时间长就优化哪个 2.如果是数据库问题 2.1 查看大体情况 # top # uptime //load av ...
- 案例分享:Qt西门子机床人机界面以及数据看板定制(西门子通讯,mysql数据库,生产信息,参数信息,信息化看板,权限控制,播放器,二维图表,参数调试界面)
若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/118685521 长期持续带来更多项目与技术分享 ...
- Mysql用户权限控制(5.7以上版本)
1.1. 最简单的MySql权限 最简单也是最高效的,如果解决新手们删库跑路的问题其实也是很简单的,对于正式库只给一个增删改查的权限,或者只给一个查询权限(是不是就解决了删库的可能性?) 使用Ro ...
- mysql权限管理
经常遇到有网友在QQ群或者论坛上问关于mysql权限的问题,今天抽空总结一下关于这几年使用MYSQL的时候关于MYSQL数据库的权限管理的经验,也希望能对使用mysql的网友有所帮助! 一.MYSQL ...
- yii2搭建完美后台并实现rbac权限控制案例教程
作者:白狼 出处:www.manks.top/article/yii2_frame_rbac_template 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连 ...
随机推荐
- 多校赛3- Painter 分类: 比赛 2015-07-29 19:58 3人阅读 评论(0) 收藏
D - Painter Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status P ...
- 关于Animation动画事件的几项测试
测试版本unity5.3.4 1.当帧率不足时,Animation会跳帧,假如跳帧超过动画事件的帧,动画事件也会执行. 2.当Animation混合时,混合中的动画不管哪个当前有动画事件,都会执行. ...
- 1. WP8.1学习笔记
数据绑定 含义:将对象绑定到控件上 2.基本名词 控件:绑定目标 对象:绑定源(数据源) 控件与对象属性的联系:路径 如何绑定 创建对象,设置控件 在控件需要数据绑定的地方使用拓展语法 <But ...
- Less (一种动态样式语言)
Less (一种动态样式语言). LESS是一种由Alexis Sellier设计的动态层叠样式表语言,受Sass所影响,同时也影响了 Sass的新语法:SCSS. LESS是开源的,其第一个版本由R ...
- SQL生成规则数
--------------------------开始----------------------------开始值DECLARE @start INT = 1--结束值DECLARE @end I ...
- jquery easyui 弹出消息框
<html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...
- Linux下mysql主从配置
mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复需要两台机器,安装mysql,两台机器要在相通的局域网内主机A: 192.168.1.100从机B:192.168.1 ...
- WCF 自托管、无配置文件实现jsonp(跨域)的访问
以下内容基于WCF4.0,本文将对比讨论配置文件方案和无配置文件方案的实现方式. WCF4.0加入了对RESTFU和标准终结点的支持,这为实现跨域提供了简单的方式. 一.有配置文件的情况: 首先我们先 ...
- 批量修改文件夹及文件用户权限和用户组权限 centos
chown -R www * 批量修改目录下所有文件,用户为www chown -R :www * 批量修改目录下所有文件,用户组为www
- JavaScript编写简单的抽奖程序
1.需求说明 某公司年终抽奖,需要有如下功能 1)可以根据实际情况设置到场人数的最大值 2) 点击“开始”,大屏幕滚动,点击“停止”,获奖者的编号出现在大屏幕上 3)在界面里显示全部奖项获奖人编号 4 ...