浅谈mysql权限
一、 背景:
“去IOE”的本质是“分布式+开源”架构替代“集中式+封闭”架构,变成彻底的云计算服务模式。去“IE”易,并且应该去,关键确实能省钱,而且运维难度不大,替代技术产品成熟。而去O应该谨慎理性,去的不好可能就是一个大坑,不仅不会省钱还会更费钱,而且替代产品技术都并不成熟。MYSQL目前市场上较为成熟且较多企业用来替代Oracle的产品。
棱镜门事件引发了“去IOE”的广泛讨论,电信、金融等核心领域对于信息系统的安全与可靠性给予高度重视,受该事件影响,2014年9月,中国银监会发布了39号文即《关于应用安全可控信息技术加强银行业网络安全和信息化建设的指导意见》, 39号文里要求的两个量化指标纳入各行2015年年度考核,这两个量化指标一是从2015年起,各银行业金融机构对安全可控信息技术的应用以不低于15%的比例逐年增加,直至2019年达到不低于75%的总体占比,二是从2015年起,银行业金融机构应安排不低于5%的年度信息化预算,专门用于支持本机构围绕安全可控信息系统开展前瞻性、创新性和规划性研究,支持本机构掌握信息化核心知识和技能。
基于以上情况,研究Mysql的信息安全就尤为重要!
二、 系统环境:
- OS:CentOS Linux release 7.3_64
- IP:192.168.56.12
- MYSQL:5.7.19
- MYSQL数据库:chenzx
- 远程端口:3306
三、 测试案例:
权限管控在我看来都是成果最显著的方式。MYSQL用户创建的方式与ORACLE的有所不一样,ORACLE是以SCHEMA作为单位进行创建用户,而MYSQL是以用户名+IP地址确认用户名。对ORACLE安全基线熟悉的人就会觉得MYSQL就像是在用户名上加了白名单似的。当了解到这里的时候,我提出了这样一个疑问,至少有下表中的五类IP地址,那权限管控是怎么样的一个情况呢?为此,特意建立5张测试表:
- 每张测试表都具有Host和User 两个字段
- 每个测试表中均含有1条具有将赋权用户的Host和User信息
- 每个用户只能具有相应的表权限,详细下表
|
Host |
test1 |
test2 |
test3 |
test4 |
test5 |
|
% |
√ |
|
|
|
|
|
127.0.0.1 |
|
√ |
|
|
|
|
192.168.56.% |
|
|
√ |
|
|
|
192.168.56.12 |
|
|
|
√ |
|
|
localhost |
|
|
|
|
√ |
- 测试步骤:
- 使用端口登录数据库
mysql用户使用进行登录
$ mysql –uchenzx –P3306 –h&IP
- 查询用户信息
mysql> select user();
- 查询表信息
mysql> select * from chenzx.test1;
mysql> select * from chenzx.test2;
mysql> select * from chenzx.test3;
mysql> select * from chenzx.test4;
mysql> select * from chenzx.test5;
- 测试结果:(能访问标识”√”)
|
Host |
test1 |
test2 |
test3 |
test4 |
test5 |
|
% |
√ |
|
|
|
|
|
127.0.0.1 |
√ |
√ |
|
|
|
|
192.168.56.% |
√ |
√ |
|||
|
192.168.56.12 |
√ |
|
√ |
√ |
|
|
localhost |
√ |
|
|
|
√ |
从测试结果看,mysql的权限具有包含的关系。可以通过命令查询相关的赋权定义,如:
mysql> show grants for 'chenzx'@'192.168.56.12';
mysql> show grants for 'chenzx'@'192.168.56.%';
四、 小结:
估计mysql进一步推广后,mysql的运维时,了解权限赋权的原理,出现任何问题可以处之泰然。
浅谈mysql权限的更多相关文章
- 浅谈mysql主从复制的高可用解决方案
1.熟悉几个组件(部分摘自网络)1.1.drbd —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID" ...
- 浅谈mysql innodb缓存策略
浅谈mysql innodb缓存策略: The InnoDB Buffer Pool Innodb 持有一个存储区域叫做buffer pool是为了在内存中缓存数据和索引,知道innodb buffe ...
- 浅谈mysql配置优化和sql语句优化【转】
做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...
- 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载
浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...
- 浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景
浅谈Mysql共享锁.排他锁.悲观锁.乐观锁及其使用场景 Mysql共享锁.排他锁.悲观锁.乐观锁及其使用场景 一.相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁 ...
- 浅谈MySQL存储引擎-InnoDB&MyISAM
存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见 ...
- 重新学习MySQL数据库6:浅谈MySQL的中事务与锁
『浅入深出』MySQL 中事务的实现 在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇 ...
- (转)运维角度浅谈MySQL数据库优化
转自:http://lizhenliang.blog.51cto.com/7876557/1657465 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架 ...
- 运维角度浅谈MySQL数据库优化(转)
一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
随机推荐
- entity framework discriminator error
前几天使用code first碰到错误:列名 'Discriminator' 无效.这是一个很少见的错误,搜索了很久才发现是code first的poco实体对象的继承问题. 比如,我定义了一个实体类 ...
- ASP.NET中多语言的实现
一个网站可能具备多个语言,要实现这个功能在ASP.NET中是非常简单的.我们需要为项目添加资源文件文件夹,并且添加针对网站的特定的资源文件等即可.在ASP.NET中资源文件分成两类:全局和页面级(即“ ...
- HDU 4357——String change——————【规律题】
String change Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- checkbox判断选中的三种方法
方法一: if ($("#checkbox-id")get(0).checked) { // do something } 方法二: if($('#checkbox-id' ...
- Python常用模块二
一.time & datetime #_*_coding:utf-8_*_ import time # print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了t ...
- Mysql远程连接授权IP
新增法 我们现在增加一个'username'用户,密码为'password',让其能够从外部访问MYSQL. grant all on * to 'username' identified by ...
- mysql存储过程中最后有commit和没有commit 是有所不同的。(为测试但是碰到过这个问题)
如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚.如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管 ...
- pymongo模块
import pymongo # 创建与MongoDB服务器的连接 mongoclient = pymongo.MongoClient(host='127.0.0.1', port=27017) # ...
- 在CentOS上配置tomcat服务
# hapday start 2016-02-04 #!/bin/bash # description: Tomcat Start Stop Restart # processname: tomcat ...
- JQuery中Checkbox选择
判断是否选中 $(this).is(":checked") 取消选中 $(this).prop("checked", false) 选中 $(this).pro ...