浅谈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数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...
随机推荐
- vue中遇到的坑
如何解决在vue中替换图片.一个使用base64,而我们使用zepto之后,src找不到资源,因为已经打包了,难道强行写base64. 1. 引入文件时语法很重要! import "Foot ...
- 打开/关闭网卡无线WIFI模块
@echo off title ------(Please run as Administrators)Please select------ :begin echo ---------------- ...
- Cloudera Kudu是什么?
不多说,直接上干货! Cloudera Kudu是什么? kudu是cloudera在2012开始秘密研发的一款介于hdfs和hbase之间的高速分布式列式存储数据库.兼具了hbase的实时性.hdf ...
- Python札记1--基础
Python语言虽然简单,但相关的细节仍需要注意,本系列札记,旨在记录学习python过程中需要注意的相关知识点或相关难点的理解. 1. 列表 a. python的列表list中元素的类型可以不同 b ...
- Linux小工具:文件上传ftp服务器
工作期间,每次将文件上传至ftp服务器时,均需要手工输入ip.用户名.密码等,因此,考虑编写脚本完成文件的上传任务.具体的脚本sync.sh如下: #!/bin/bash source ~/.bash ...
- 学习JVM-GC原理
1. 前言 Java和C++之间显著的一个区别就是对内存的管理.和C++把内存管理的权利赋予给开发人员的方式不同,Java拥有一套自动的内存回收系统(Garbage Collection,GC)简称G ...
- Js中parseFloat()方法所产的精度不一致问题
<script language="javascript"> function checkForm(){ var Sum="0.11"; var S ...
- XHML教会我的一些东西-3
在寒假期间,隔几天就同学聚会,每天都是起床困难户.每天都想着要完成任务,要学习新的东西.但是总是被自己惰性占为上风.感觉自己很没用,但是又继续堕落.真的不能理解自己.呵呵.... 在放假一段时间之后, ...
- Stimulsoft Reports送2年免费升级与技术支持
慧都十年大促,与著名报表控件商Stimulsoft联合推出独家活动,即日起12月31日前,购买指定授权的Stimulsoft Reports除了获得本身1年的免费升级外,还加送2年免费升级与技术支持, ...
- python_opencv应用系列1:图片读写
opencv的读写非常简单,主要用到的就是imread和imwrite两个函数 读取图片示例 import cv2 #imread(filename[, flags]) -> retval im ...