MariaDB存储加密

  1. 概述

       MariaDB在10.1.3以后支持本地数据加密,如果密钥存储在另外一个系统上,那么别人几乎是不可能盗取数据库的本地数据。但是使用加密会下降5%左右的性能。

  2. 引擎支持

       目前支持XtraDB、InnoDB两种存储引擎。支持表级加密以及表空间加密两种模式。

  3. 配置密钥

[root@localhost my.cnf.d]# openssl enc –aes-256-cbc –k 123456 –P –md sha1
[root@localhost my.cnf.d]# openssl enc -aes-256-cbc -md sha1 -k 123456 -in keys.txt -out keys.enc

    4. 配置文件

        修改my.cnf文件    

plugin_dir=/usr/local/mysql/lib/plugin
plugin-load-add=file_key_management.so
file-key-management
file_key_management_encryption_algorithm=aes_cbc
file_key_management_filename = /etc/my.cnf.d/keys.enc
file_key_management_filekey = 123456
innodb-encrypt-log=ON
innodb-encryption-threads=4
innodb-encrypt-tables=FORCE
innodb-default-encryption-key-id=1

    5. 创建加密表

[root@localhost my.cnf.d]# service mysql start
[root@localhost my.cnf.d]# mysql
MariaDB [(none)]> create database encrypted;
MariaDB [(none)]> use encrypted;
MariaDB [encrypted]> CREATE TABLE test (id INTEGER NOT NULL PRIMARY KEY, col1 VARCHAR(100)) ENGINE=Innodb ENCRYPTED=YES ENCRYPTION_KEY_ID=1;
MariaDB [encrypted]> insert into test values(1,'abc');

    6. 验证

MariaDB [encrypted]> SHOW PLUGINS SONAME 'file_key_management.so';

        101746_zrbm_2604075.png

MariaDB [encrypted]> show variables like '%encrypt%';

        101818_43B2_2604075.png

MariaDB [encrypted]> select * from test;

        101913_pesP_2604075.png

[root@localhost my.cnf.d]# mysql encrypted
MariaDB [encrypted]> show tables;

        删除key.enc

        102114_AGal_2604075.png

MariaDB [encrypted]> select * from test;

        102154_aPSD_2604075.png

        删除了密钥,无法查询到数据

7.

转载于:https://my.oschina.net/u/2604075/blog/615919

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值