藍(lán)色腳手架織夢(mèng)企業(yè)網(wǎng)站模板網(wǎng)站新站整站排名
官方文檔:數(shù)據(jù)庫(kù)透明加密概述-V4.3.2-OceanBase 數(shù)據(jù)庫(kù)文檔-分布式數(shù)據(jù)庫(kù)使用文檔
OceanBase 數(shù)據(jù)庫(kù)社區(qū)版暫不支持?jǐn)?shù)據(jù)透明加密。
數(shù)據(jù)存儲(chǔ)加密是指對(duì)數(shù)據(jù)和 Clog 等保存在磁盤中的數(shù)據(jù)進(jìn)行無(wú)感知的加密,即透明加密(簡(jiǎn)稱 TDE)。數(shù)據(jù)在寫入存儲(chǔ)設(shè)備前自動(dòng)進(jìn)行加密,讀取時(shí)自動(dòng)解密,該過(guò)程對(duì)用戶是透明的,黑客和惡意用戶無(wú)法從數(shù)據(jù)文件、數(shù)據(jù)庫(kù)備份或磁盤中讀取到敏感數(shù)據(jù)。
一.Mysql模式下的數(shù)據(jù)透明加密:
使用限制
系統(tǒng)租戶不能開(kāi)啟加密。
租戶配置透明加密后,除非租戶重建,否則無(wú)法再切換為其他加密模式。為新創(chuàng)建的表設(shè)置透明加密
為新創(chuàng)建的表設(shè)置透明加密
業(yè)務(wù)租戶登錄到集群的 MySQL 租戶
1..執(zhí)行以下語(yǔ)句,開(kāi)啟 internal 方式的透明加密。
ALTER SYSTEM SET tde_method='internal';
2.執(zhí)行以下語(yǔ)句,確認(rèn)該租戶上所有 OBServer 節(jié)點(diǎn)上的配置項(xiàng)?tde_method
?的值均為?internal
。
SHOW PARAMETERS LIKE 'tde_method';
3.確認(rèn)后,執(zhí)行以下語(yǔ)句,生成主密鑰。
ALTER INSTANCE ROTATE INNODB MASTER KEY;
4.創(chuàng)建表空間并指定加密算法
CREATE TABLESPACE sectest_ts1 encryption = 'y';
5.在加密的表空間中創(chuàng)建新表
CREATE TABLE t1 (id1 int, id2 int) TABLESPACE sectest_ts1;
6.確認(rèn)表空間內(nèi)的表是否標(biāo)記為加密。
SELECT table_name,encryptionalg,encrypted FROM oceanbase.V$OB_ENCRYPTED_TABLES;
我這里測(cè)試版本是企業(yè)版V3 所以和 V4視圖名稱不一樣。
為已有表設(shè)置透明加密
業(yè)務(wù)租戶登錄到集群的MySQL租戶
1.執(zhí)行以下語(yǔ)句,開(kāi)啟 internal 方式的透明加密。
ALTER SYSTEM SET tde_method='internal';
2.執(zhí)行以下語(yǔ)句,確認(rèn)該租戶上所有 OBServer 節(jié)點(diǎn)上的配置項(xiàng)?tde_method
?的值均為?internal
。
SHOW PARAMETERS LIKE 'tde_method';
3.確認(rèn)后,執(zhí)行以下語(yǔ)句,生成主密鑰。
ALTER INSTANCE ROTATE INNODB MASTER KEY;
4.創(chuàng)建表空間并指定加密算法。
CREATE TABLESPACE sectest_ts1 encryption = 'y';
5.創(chuàng)建t1表
CREATE TABLE t1 (id1 int, id2 int);
6.將已有表移入加密表空間
ALTER TABLE t1 TABLESPACE sectest_ts1;
解除加密:
假設(shè)表?
t1
?的加密狀態(tài)如下,且表? t1
?在加密的表空間? sectest_ts1
?中。


對(duì)表執(zhí)行漸進(jìn)合并。
將?
progressive_merge_num
?的值設(shè)置為大于? 1
?的數(shù),并執(zhí)行? OPTIMIZE
?命令,準(zhǔn)備做漸進(jìn)合并。
ALTER TABLE t1 SET progressive_merge_num = 3;
OPTIMIZE TABLE t1;
CREATE TABLESPACE ts2;
將表?t1
?從加密的表空間?sectest_ts1
?中移到未加密的表空間?ts2
?中。
ALTER TABLE t1 TABLESPACE ts2;
SHOW CREATE TABLE t1 \G
查詢?oceanbase.V$OB_ENCRYPTED_TABLES
?視圖,確認(rèn)表的加密狀態(tài)。
二.Oracle模式下的數(shù)據(jù)透明加密
為新創(chuàng)建的表設(shè)置存儲(chǔ)加密
1.管理員用戶登錄到數(shù)據(jù)庫(kù)的 Oracle 租戶。
執(zhí)行以下語(yǔ)句,開(kāi)啟 internal 方式的存儲(chǔ)加密。
ALTER SYSTEM SET tde_method='internal';
2.執(zhí)行以下語(yǔ)句,確認(rèn)該租戶上所有 OBServer 節(jié)點(diǎn)上的配置項(xiàng)?tde_method
?的值均為?internal
。
SHOW PARAMETERS LIKE 'tde_method';
3.創(chuàng)建 Keystore。
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE keystore_name IDENTIFIED BY password;
4.開(kāi)啟 Keystore。
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
5.執(zhí)行以下語(yǔ)句,生成主密鑰。
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password;
6.創(chuàng)建表空間并指定加密算法。
CREATE TABLESPACE sectest_ts1 ENCRYPTION USING 'aes-256';
7.驗(yàn)證加密是否配置成功
創(chuàng)建表并指定表空間。
CREATE TABLE t1 (id1 int, id2 int) TABLESPACE sectest_ts1;
確認(rèn)表空間內(nèi)的表是否標(biāo)記為加密。
SELECT TABLE_NAME,ENCRYPTIONALG FROM v$encrypted_tables;
為已有表設(shè)置透明加密
1.管理員用戶登錄到數(shù)據(jù)庫(kù)的 Oracle 租戶
2.執(zhí)行以下語(yǔ)句,開(kāi)啟 internal 方式的存儲(chǔ)加密
ALTER SYSTEM SET tde_method='internal';

3.執(zhí)行以下語(yǔ)句,確認(rèn)該租戶上所有 OBServer 節(jié)點(diǎn)上的配置項(xiàng)?tde_method
?的值均為?internal
。
SHOW PARAMETERS LIKE 'tde_method';
4.創(chuàng)建 Keystore
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE keystore_name IDENTIFIED BY password;
5.開(kāi)啟 Keystore
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY password;
6.執(zhí)行以下語(yǔ)句,生成主密鑰
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY password;
7.創(chuàng)建表空間并指定加密算法
CREATE TABLESPACE sectest_ts1 ENCRYPTION USING 'aes-256';
8.將已有表移入加密表空間
ALTER TABLE t1 TABLESPACE sectest_ts1;
對(duì)表執(zhí)行全量合并
ALTER TABLE t1 set progressive_merge_num = 1;
ALTER SYSTEM MAJOR FREEZE;
SELECT * FROM v$encrypted_tables;
確認(rèn)所有宏塊是否已完成加密。
解除加密:
假設(shè)表?t1
?的加密狀態(tài)如下,且表?t1
?在加密的表空間?sectest_ts1
?中。
SELECT * FROM v$encrypted_tables;
SHOW CREATE TABLE t1;
將表從加密表空間中移出,創(chuàng)建未加密的表空間?ts2
。
CREATE TABLESPACE ts2;
ALTER TABLE t1 TABLESPACE ts2;
操作成功后,執(zhí)行?SHOW CREATE TABLE
?語(yǔ)句,可以看到表?t1
?已經(jīng)移到了表空間?ts2
?中
SHOW CREATE TABLE t1;
SELECT * FROM sys.v$encrypted_tables;