浅谈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的运维时,了解权限赋权的原理,出现任何问题可以处之泰然。