10bet网址
MySQL 8.0参考手册
相关文件10bet官方网站 本手册下载 从本手册中摘录

MySQL 8.0参考手册/.../ 加密二进制日志文件和中继日志文件

17.3.2加密二进制日志和中继日志

来自MySQL 8.0.14,可以加密二进制日志文件和中继日志文件,帮助保护这些文件以及其中包含的潜在敏感数据由外部攻击者滥用,以及由操作系统的用户用户的未经授权查看存储。用于文件的加密算法,AES(高级加密标准)密码算法内置于MySQL Server,无法配置。

在MySQL服务器上设置binlog_encryption.系统变量离开是默认的。系统变量设置二进制日志文件和中继日志文件的加密。要启用加密,不需要在服务器上启用二进制日志,因此可以在没有二进制日志的副本上加密中继日志文件。要使用加密,必须安装和配置keyring组件或插件来提供MySQL服务器的keyring服务。有关操作说明,请参阅第6.4.4节“MySQL键入”.任何支持的keyring组件或插件都可以用来存储二进制日志加密密钥。

当首次启动启用加密的服务器时,在初始化二进制日志和中继日志之前,会生成一个新的二进制日志加密密钥。该密钥用于为每个二进制日志文件(如果服务器启用了二进制日志记录)和中继日志文件(如果服务器有复制通道)加密文件密码,并且从文件密码生成的其他密钥用于加密文件中的数据。服务器上当前使用的二进制日志加密密钥称为二进制日志主密钥。两层加密密钥体系结构意味着二进制日志主密钥可以根据需要旋转(用新的主密钥替换),并且只需要用新的主密钥重新加密每个文件的文件密码,而不是整个文件。所有通道的中继日志文件都被加密,包括激活加密后创建的新通道。二进制日志索引文件和中继日志索引文件从不加密。

如果在运行服务器时激活加密,则此时生成新的二进制日志加密密钥。除了先前在服务器上是否已激活加密,然后被禁用,在这种情况下,在这种情况下,再次使用使用的二进制日志加密密钥。二进制日志文件和中继日志文件立即旋转,以及使用此二进制日志加密密钥加密新文件和所有后续二进制日志文件和中继日志文件的文件密码。服务器上仍然存在的现有二进制日志文件和中继日志文件不会加密,但如果不再需要它们,则可以清除它们。

如果您通过更改binlog_encryption.系统变量离开,二进制日志文件和中继日志文件立即旋转,所有后续日志记录都是未加密的。先前加密的文件不会自动解密,但服务器仍然可以读取它们。的binlog_encryption_admin.在服务器运行时激活或停用加密需要特权。

加密和未加密的二进制日志文件可以通过在加密日志文件的文件头(0xFD62696E.),与未加密日志文件的不同之处不同(0xFE62696E.).的显示二进制日志声明显示每个二进制日志文件是否被加密或未加密。

当二进制日志文件已加密时,mysqlbinlog不能直接读取它们,但可以使用- Read-From-Remote-Server选项。来自MySQL 8.0.14,mysqlbinlog如果您尝试直接读取加密二进制日志文件,但旧版本的返回适当的错误mysqlbinlog根本不能将该文件识别为二进制日志文件。如果备份加密的二进制日志文件使用mysqlbinlog,请注意使用mysqlbinlog以未加密格式存储。

二进制日志加密可以与二进制日志事务压缩结合在一起(从MySQL 8.0.20起可用)。有关二进制日志事务压缩的更多信息,请参见第5.4.4.5节,“二进制日志事务压缩”