MySQL 8.4 企业版启用TDE功能和表加密

一、系统环境

操作系统:Ubuntu 24.04
数据库:8.4.4-commercial for Linux on x86_64 (MySQL Enterprise Server - Commercial)

二、安装TDE组件

前提:检查组件文件是否存在

ls /usr/lib/mysql/plugin/component_keyring_encrypted_file.so
1.配置全局清单文件

在basedir目录中创建全局清单文件,设置为只读权限,目的是告诉服务器要加载哪个密钥环组件

vim /usr/sbin/mysqld.my# 内容如下 {"read_local_manifest": false,"components": "file://component_keyring_encrypted_file"
}
2.配置全局配置文件

在plugin_dir目录创建一个全局配置文件,设置为只读权限

vim /usr/lib/mysql/plugin/component_keyring_encrypted_file.cnf# 内容如下{"read_local_config": false,"path": "/var/lib/mysql-keyring/component_keyring_encrypted_file","password": "AFJQvNQo8GM1!","read_only": false
}
3.创建密钥环文件
# 创建密钥环文件 确保密钥文件目录权限严格touch /var/lib/mysql-keyring/component_keyring_encrypted_file
chown mysql:mysql /var/lib/mysql-keyring/component_keyring_encrypted_file
chmod 700 /var/lib/mysql-keyring/component_keyring_encrypted_file
4.修改apparmor配置

修改apparmor  用于将配置文件加载到内核中  否则系统不会自动加载清单文件,查询会返回"Empty set"

vim /etc/apparmor.d/usr.sbin.mysqld# 添加下面内容到最后面# Allow keyring manifest read file/usr/sbin/mysqld.my r,

完成后重启apparmor

systemctl reload apparmor.service
5.修改配置文件

修改my,cnf添加默认表加密的配置参数

vim /etc/mysql/mysql.conf.d/mysqld.cnf# 添加下面的内容# table_encryption
default_table_encryption = ON
6.重启数据库

重启数据库后TDE组件和参数会马上生效

7.检查TDE状态

验证组件Component_status,查询keyring_component_status

# 查看组件安装情况 Component_statusSELECT * FROM performance_schema.keyring_component_status;
+---------------------+---------------------------------------------------------+
| STATUS_KEY          | STATUS_VALUE                                            |
+---------------------+---------------------------------------------------------+
| Component_name      | component_keyring_encrypted_file                        |
| Author              | Oracle Corporation                                      |
| License             | PROPRIETARY                                             |
| Implementation_name | component_keyring_encrypted_file                        |
| Version             | 1.0                                                     |
| Component_status    | Active                                                  |
| Data_file           | /var/lib/mysql-keyring/component_keyring_encrypted_file |
| Read_only           | No                                                      |
+---------------------+---------------------------------------------------------+
8 rows in set (0.00 sec)
三、表加密和解密
1.表加密和解密

1.对于已经创建好的表,通过执行SQL可以进行表进行加密和解密

-- 表加密ALTER TABLE database.tablename ENCRYPTION='Y';-- 表解密ALTER TABLE database.tablename ENCRYPTION='N';

2.批量生成未加密表执行加密的SQL语句

-- 生成非业务的表的加密脚本SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS, CONCAT("ALTER TABLE `",TABLE_SCHEMA,"`.`",table_name,"` ENCRYPTION='Y';") AS enable_tde FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys') AND CREATE_OPTIONS NOT LIKE '%ENCRYPTION%' ORDER BY TABLE_SCHEMA;

3.查看已经加密的表

-- 查看加密的表SELECT TABLE_SCHEMA, TABLE_NAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE CREATE_OPTIONS LIKE '%ENCRYPTION%';

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93685.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Altium designer】导出的原理图PDF乱码异常的解决方法

一、有些电源名字无法显示或器件丢失 解决办法 (1)首先AD18以及以上的新版本AD不存在该问题。 (2)其次AD17以及更旧版本的AD很可能遇到该问题,参考如下博客笔记进行操作即可: 大致的操作如下:DXP → Preferences → Schematic → Options里面“Render Text with GDI+”…

4.Ansible自动化之-部署文件到主机

4 - 部署文件到受管主机 实验环境 先通过以下命令搭建基础环境(创建工作目录、配置 Ansible 环境和主机清单): # 在控制节点(controller)上创建web目录并进入,作为工作目录 [bqcontroller ~]$ mkdir web &a…

Vuex的使用

Vuex 超详细使用教程(从入门到精通)一、Vuex 是什么?Vuex 是专门为 Vue.js 设计的状态管理库,它采用集中式存储管理应用的所有组件的状态。简单来说,Vuex 就是一个"全局变量仓库",所有组件都可以…

pytorch 数据预处理,加载,训练,可视化流程

流程定义自定义数据集类定义训练和验证的数据增强定义模型、损失函数和优化器训练循环,包括验证训练可视化整个流程模型评估高级功能扩展混合精度训练​分布式训练​{:width“50%” height“50%”} 定义自定义数据集类 # #1. 自定义数据集类 # class CustomImageD…

Prompt工程:OCR+LLM文档处理的精准制导系统

在PDF OCR与大模型结合的实际应用中,很多团队会发现一个现象:同样的OCR文本,不同的Prompt设计会产生截然不同的提取效果。有时候准确率能达到95%,有时候却只有60%。这背后的关键就在于Prompt工程的精细化程度。 🎯 为什…

RecSys:粗排模型和精排特征体系

粗排 在推荐系统链路中,排序阶段至关重要,通常分为召回、粗排和精排三个环节。粗排作为精排前的预处理阶段,需要在效果和性能之间取得平衡。 双塔模型 后期融合:把用户、物品特征分别输入不同的神经网络,不对用户、…

spring声明式事务,finally 中return对事务回滚的影响

finally 块中使用 return 是一个常见的编程错误,它会: 跳过正常的事务提交流程。吞掉异常,使错误处理失效 导致不可预测的事务行为Java 中 finally 和 return 的执行机制:1. finally 块的基本特性 在 Java 中,finally …

WPF 打印报告图片大小的自适应(含完整示例与详解)

目标:在 FlowDocument 报告里,根据 1~6 张图片的数量, 自动选择 2 行 3 列 的最佳布局;在只有 1、2、4 张时保持“占满感”,打印清晰且不变形。规则一览:1 张 → 占满 23(大图居中)…

【AI大模型前沿】百度飞桨PaddleOCR 3.0开源发布,支持多语言、手写体识别,赋能智能文档处理

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模…

迅为RK3588开发板Android12 制作使用系统签名

在 Android 源码 build/make/target/product/security/下存放着签名文件,如下所示:将北京迅为提供的 keytool 工具拷贝到 ubuntu 中,然后将 Android11 或 Android12 源码build/make/target/product/security/下的 platform.pk8 platform.x509…

Day08 Go语言学习

1.安装Go和Goland 2.新建demo项目实践语法并使用git实践版本控制操作 2.1 Goland配置 路径**:** GOPATH workspace GOROOT golang 文件夹: bin 编译后的可执行文件 pkg 编译后的包文件 src 源文件 遇到问题1:运行 ‘go build awesomeProject…

Linux-文件创建拷贝删除剪切

文章目录Linux文件相关命令ls通配符含义touch 创建文件命令示例cp 拷贝文件rm 删除文件mv剪切文件Linux文件相关命令 ls ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。 Linux文件或者目…

RabbitMQ:交换机(Exchange)

目录一、概述二、Direct Exchange (直连型交换机)三、Fanout Exchange(扇型交换机)四、Topic Exchange(主题交换机)五、Header Exchange(头交换机)六、Default Exchange(…

【实时Linux实战系列】基于实时Linux的物联网系统设计

随着物联网(IoT)技术的飞速发展,越来越多的设备被连接到互联网,形成了一个庞大而复杂的网络。这些设备从简单的传感器到复杂的工业控制系统,都在实时地产生和交换数据。实时Linux作为一种强大的操作系统,为…

第五天~提取Arxml中描述信息New_CanCluster--Expert

🔍 ARXML描述信息提取:挖掘汽车电子设计的"知识宝藏" 在AUTOSAR工程中,描述信息如同埋藏在ARXML文件中的金矿,而New_CanCluster--Expert正是打开这座宝藏的密钥。本文将带您深度探索ARXML描述信息的提取艺术,解锁汽车电子设计的核心知识资产! 💎 为什么描述…

开源 C++ QT Widget 开发(一)工程文件结构

文章的目的为了记录使用C 进行QT Widget 开发学习的经历。临时学习,完成app的开发。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。 相关链接: 开源 C QT Widget 开发(一)工程文件结构-CSDN博客 开源 C…

手写C++ string类实现详解

类定义cppnamespace ym {class string {private:char* _str; // 字符串数据size_t _size; // 当前字符串长度size_t _capacity; // 当前分配的内存容量static const size_t npos -1; // 特殊值,表示最大可能位置public:// 构造函数和析构函数string(…

C++信息学奥赛一本通-第一部分-基础一-第3章-第2节

C信息学奥赛一本通-第一部分-基础一-第3章-第2节 2057 星期几 #include <iostream>using namespace std;int main() {int day; cin >> day;switch (day) {case 1:cout << "Monday";break;case 2:cout << "Tuesday";break;case 3:c…

【leetcode 3】最长连续序列 (Longest Consecutive Sequence) - 解题思路 + Golang实现

最长连续序列 (Longest Consecutive Sequence) - LeetCode 题解 题目描述 给定一个未排序的整数数组 nums&#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。要求设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#x…

矿物分类系统开发笔记(一):数据预处理

目录 一、数据基础与预处理目标 二、具体预处理步骤及代码解析 2.1 数据加载与初步清洗 2.2 标签编码 2.3 缺失值处理 &#xff08;1&#xff09;删除含缺失值的样本 &#xff08;2&#xff09;按类别均值填充 &#xff08;3&#xff09;按类别中位数填充 &#xff08;…