博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《高可用MySQL》节选 -- 安全和二进制日志
阅读量:7143 次
发布时间:2019-06-29

本文共 845 字,大约阅读时间需要 2 分钟。

《高可用MySQL》P59

安全和二进制日志

 

一般来说,一个有REPLICATION SLAVE权限的用户拥有读取Master上发生的所有事件的权限,因此为了确保安全应使该账户不被损害。这里介绍一些预防措施的例子:

1 尽可能使从防火墙外无法登录该账户;

2 记录所有试图登录到该账户的日志,并将日志放置在一个单独的安全服务器上;

3 加密Master和Salve间所用的连接,例如MySQL的built-in SSL(Secure Sockets Layer)支持。

即使这个账户已经安全了,还存在一些没必要放在二进制日志中的信息,因此首先不存储在那里也是有道理的。

较为常见的一个敏感信息就是密码。当执行改变服务器上的表的语句,并且它包含访问这个表所必须的密码的时候,包含密码的事件会被写入二进制日志。

一个典型的例子是:

UPDATE employee SET pass = PASSWORD('foobar') WHERE email = 'mats@example.com';

如果复制是正确的,最好重写这个没有密码的语句。可以通过以下方法实现:计算和存储哈希密码到用户定义变量,然后在表达式中使用它:

SET @password = PASSWORD('foobar');UPDATE employee SET pass = @password WHERE email = 'mats@example.com';

由于SET语句没有被复制,原来的密码将不会存储在二进制日志中,而仅在执行该语句的时候存储在服务器的内存中。

只要存储password hash到表中,而不需要纯文本密码,这种方法行之有效。如果原始密码是直接存储在表中的,就有没有办法阻止密码在二进制日志中结束。但存储哈希密码在任何情况下都是一个标准的好做法,可以防止有人通过学习密码将原始数据弄到手。

封装连接为加密Master和Salve之间的连接提供了一些保护,但如果二进制日志本身被攻破,加密连接也无能为力。

转载地址:http://ucgrl.baihongyu.com/

你可能感兴趣的文章
阿里:千亿交易背后的0故障发布
查看>>
Node+express+mongoose 基础笔记
查看>>
利用angular4和nodejs-express构建一个简单的网站(十)—好友模块
查看>>
极光大数据告诉你,程序员们都在"愁"些啥?
查看>>
从Hash到散列表到HashMap
查看>>
前端基础知识学习记录(三)
查看>>
原型链类原理
查看>>
我的订单
查看>>
2017文章总结
查看>>
C3踩坑2--css选择器
查看>>
分类算法之决策树(理论篇)
查看>>
LeanCloud + Ionic3 迅速重构应用
查看>>
vue-cli解析
查看>>
tweak
查看>>
SSM学习系列(三) Hello Spring MVC
查看>>
chrome扩展推荐:帮你留住每一次ctrl+c --- Clipboard History 2
查看>>
恶意软件盯上了加密货币,两家以色列公司受到攻击
查看>>
专访《Haskell函数式编程入门》作者张淞:浅谈Haskell的优点与启发
查看>>
VS2017 15.4提供预览版,面向Windows 10秋季更新(FCU)
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>