一、      背景:

“去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张测试表:

  1. 每张测试表都具有Host和User 两个字段
  2. 每个测试表中均含有1条具有将赋权用户的Host和User信息
  3. 每个用户只能具有相应的表权限,详细下表

Host

test1

test2

test3

test4

test5

%

√

 

 

 

 

127.0.0.1

 

√

 

 

 

192.168.56.%

 

 

√

 

 

192.168.56.12

 

 

 

√

 

localhost

 

 

 

 

√

  • 测试步骤:
  1. 使用端口登录数据库

mysql用户使用进行登录

$ mysql –uchenzx –P3306 –h&IP

  1. 查询用户信息

mysql> select user();

  1. 查询表信息

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权限的更多相关文章

  1. 浅谈mysql主从复制的高可用解决方案

    1.熟悉几个组件(部分摘自网络)1.1.drbd     —— DRBD(Distributed Replicated Block Device),DRBD号称是 "网络 RAID" ...

  2. 浅谈mysql innodb缓存策略

    浅谈mysql innodb缓存策略: The InnoDB Buffer Pool Innodb 持有一个存储区域叫做buffer pool是为了在内存中缓存数据和索引,知道innodb buffe ...

  3. 浅谈mysql配置优化和sql语句优化【转】

    做优化,我在这里引用淘宝系统分析师蒋江伟的一句话:只有勇于承担,才能让人有勇气,有承担自己的错误的勇气.有承担错误的勇气,就有去做事得勇气.无论做什么事,只要是对的,就要去做,勇敢去做.出了错误,承担 ...

  4. 浅谈MySQL中优化sql语句查询常用的30种方法 - 转载

    浅谈MySQL中优化sql语句查询常用的30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使 ...

  5. 浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景

    浅谈Mysql共享锁.排他锁.悲观锁.乐观锁及其使用场景   Mysql共享锁.排他锁.悲观锁.乐观锁及其使用场景 一.相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁 ...

  6. 浅谈MySQL存储引擎-InnoDB&MyISAM

    存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式是不同的.每一种存储引擎都有它的优势和劣势,本文只讨论最常见 ...

  7. 重新学习MySQL数据库6:浅谈MySQL的中事务与锁

    『浅入深出』MySQL 中事务的实现 在关系型数据库中,事务的重要性不言而喻,只要对数据库稍有了解的人都知道事务具有 ACID 四个基本属性,而我们不知道的可能就是数据库是如何实现这四个属性的:在这篇 ...

  8. (转)运维角度浅谈MySQL数据库优化

    转自:http://lizhenliang.blog.51cto.com/7876557/1657465 一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架 ...

  9. 运维角度浅谈MySQL数据库优化(转)

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

随机推荐

  1. zepto.js常用操作

    zepto.js是移动端的jquery,但是并没有提供所有与jquery类似的api.Zepto设计的目的是有一个5-10k的通用库.下载并快速执行.有一个熟悉通用的API,所以你能把你主要的精力放到 ...

  2. C#中StreamReader读取中文文本出现乱码的解决方法

    在编写文本文件读写程序的过程中,有如下代码 StreamReader sr = new StreamReader(FileName); 结果发现打开中文文本文件出现乱码. 究其原因,原来自从Windo ...

  3. ASP.NET操作DataTable各种方法

    转:http://www.cnblogs.com/isking/p/6178268.html http://www.cnblogs.com/sntetwt/p/3496477.html public ...

  4. 利用jquery给指定的table动态添加一行、删除一行,复制,值不重复等操作

    $("#mytable tr").find("td:nth-child(1)") 1表示获取每行的第一列$("#mytable tr").f ...

  5. iOS重用宏定义

    iOS 多快好省的宏(转) 原文地址:http://my.oschina.net/yongbin45/blog/150149 // 字符串: #ifndef nilToEmpty #define ni ...

  6. Bootstrap知识点梳理

  7. vue 修饰符 整理

    事件修饰符 .stop <!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> .preven ...

  8. Python高级数据类型

    除了python中默认提供的几种基本数据类型 collections模块还提供了几种特别好用的类型! 1.Conters //计数器 2.Orderdict // 有序字典 3.defalutdict ...

  9. android libs库中的armeabi-v7a,armeabi和x86

    以下内容转载于:http://blog.csdn.net/liumou111/article/details/52949156 1.区别: 这三者都表示的是CPU类型,早期的Android系统几乎只支 ...

  10. PHP switch分支语句中省略break后还会执行其他case的原因分析

    请分析以下PHP代码的输出结果: $a= 'dog'; switch($a) { case 'cat': echo "\$a is cat"; case 'dog': echo & ...