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
英文地址,請注明出處:http://en.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;…