浅谈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数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
随机推荐
- linux shell 将多行文件转换为一行
说实话,虽然对shell编程包括awk有所了解,但是对sed的多行与一行的处理还是不甚理解,在网上搜罗了一篇文章觉得还不错,记录一下: 今天一个工程师问我,怎么将一个文件中的多行转换成一行. 我给出了 ...
- linux_api之进程控制
本篇索引: 1.引言 2.进程标识 3.多进程 4.fork函数 5.vfork函数 6.exit函数 7.wait和waitpid函数 8.竞态 9.exec函数族 10.进程状态 11.syste ...
- POJ 3020——Antenna Placement——————【 最小路径覆盖、奇偶性建图】
Antenna Placement Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u S ...
- 如何解读IL代码
如何解读IL代码 关于IL代码,我有将从三个方面去揭开它神秘的面纱.IL代码是什么?我们为什么要去读懂IL代码?我们如何去读懂IL代码?这三个问题的解答,将是我解读IL代码的整体思路. IL代码是什么 ...
- Java入门之JDK安装及环境变量配置
一.安装JDK 安装过程中会出现两次安装提示 .第一次是安装 jdk ,第二次是安装 jre .建议两个都安装在同一个java文件夹中的不同文件夹中. (注:若无安装目录要求,可全默认设置.无需做任何 ...
- Start activity with App Chooser or not ?
启动一个Activity,可以直接使用Intent,例如: Intent intent = new Intent(Intent.ACTION_SEND); ... startActivity(inte ...
- ASP.NET 4.5 尚未在 Web 服务器上注册。您需要手动将 Web 服务器配置为使用 ASP.NET 4.5,这样您的网站才能正确运行。
系统换成Windows10安装VS2012打开项目总提示:vs2012 aps.NET 4.5尚未在web服务器上注册,您需要手动将Web服务器配置为使用ASP.Net 4.5,这样您的网站才可能正确 ...
- 应该知道的一些Markdown语法
目录 快速输入标题 斜体和粗体,删除线 分隔线 外链接 无序列表 有序列表 定义型列表 插入图片 文字引用 标签分类 表格 行内代码块 代码段 注脚 待办事宜 Todo 列表 显示当前文章的目录 快速 ...
- Java学习笔记——集合
类集简介 从JDK1.2开始Java引入了类集开发框架,所谓的类集指的就是一套动态对象数组的实现方案,在实际开发之中没有有何一项开发可以离开数组,但是传统的数组实现起来非常的繁琐.而且长度是其致命伤, ...
- [c/c++]判断一个字符串是不是UTF-8字符串
#define CHECK_LENGTH 20 //检查是否为utf8编码时所检查的字符长度 int is_utf8_string(char *utf) { int length = s ...