Oracle表空间加密全过程极简实验

server/2024/10/11 8:18:43/

加密前

准备加密HR Schema中的表。

SQL> col table_name for a20
SQL> select table_name, tablespace_name from all_tables where owner='HR';TABLE_NAME           TABLESPACE_NAME               
-------------------- ------------------------------
DEPARTMENTS          USERS                         
EMPLOYEES            USERS                         
JOBS                 USERS                         
JOB_HISTORY          USERS                         
LOCATIONS            USERS                         
REGIONS              USERS                         
COUNTRIES                                          7 rows selected. 

除COUNTRIES表的显示为null外,其余都是USERS表空间。

查文档:

NULL for partitioned, temporary, and index-organized tables

果然,他是IOT表:

SQL> select table_name from dba_tables where owner='HR' and iot_type = 'IOT';TABLE_NAME          
--------------------
COUNTRIES

其表空间也是USERS:

SQL> select tablespace_name from dba_segments where segment_name = 'COUNTRIES';TABLESPACE_NAME               
------------------------------
USERS

USERS表空间还没有加密:

SQL> select tablespace_name, encrypted from user_tablespaces;TABLESPACE_NAME                ENC
------------------------------ ---
SYSTEM                         NO 
SYSAUX                         NO 
UNDOTBS1                       NO 
TEMP                           NO 
USERS                          NO 

表空间对应的数据文件:

SQL> select file_name, bytes from dba_data_files where tablespace_name = 'USERS';FILE_NAME                                                         BYTES
------------------------------------------------------------ ----------
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf             2313420800

没加密时,电话号码可以查到:

$ strings /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf |more
}|{z
ORCLCDB
USERS
AAAAAAAA
DEF,
555,
Middle East and Africa,
Asia,
Americas,
Europe
AAAAAAAA
AAAAAAAA
BelgiumArgentina
Nigeria
Malaysia
Denmark
Israel
Kuwait
Mexico
Netherlands
Switzerland
Brazil
Egypt
Zambia
Germany
France
United KingdomSingapore
ZimbabweAustralia
India
China
Canada
United States of America
Japan
Italy
AAAAAAAA
Mariano Escobedo 9991
11932
Mexico City
Distrito Federal,
Pieter Breughelstraat 837
3029SK
...$ strings /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf |grep -i 6666
603.123.6666
205-167-6666
243-589-6666
697-394-6666
355-689-6666
489-117-6666
489-117-6666

加密中

秘钥配置

还没配:

SQL> show parameter wallet_rootNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
wallet_root                          string
SQL> show parameter tde_configurationNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
tde_configuration                    string

为简化,key store我们选用software keystore,即wallet。复杂生产环境(多数据库配置,ADG环境)还是建议用Key Vault。

具体配的过程参见Oracle 透明数据加密(TDE)的常见任务中的配置Key Store创建Key Store部分。

加密表空间

也可以参见Oracle 透明数据加密(TDE)的常见任务中的加解密PDB中的表空间部分。

在线加密:

SQL> alter tablespace users encryption online encrypt;Tablespace altered.Elapsed: 00:00:40.91

在线解密:

SQL> alter tablespace users encryption online decrypt;Tablespace altered.Elapsed: 00:00:18.61

离线加密:

ALTER TABLESPACE users OFFLINE NORMAL;
SQL> alter tablespace users encryption offline encrypt;Tablespace altered.Elapsed: 00:00:09.46

离线解密:

SQL> alter tablespace users encryption offline decrypt;Tablespace altered.Elapsed: 00:00:05.77

再离线加密一次,然后表空间在线:

SQL> alter tablespace users encryption offline encrypt;Tablespace altered.Elapsed: 00:00:08.94ALTER TABLESPACE users ONLINE;

加密后

加密完成了,查看状态:

SQL> select TS#, ENCRYPTIONALG, ENCRYPTEDTS, STATUS, CON_ID from V$ENCRYPTED_TABLESPACES;TS# ENCRYPT ENC STATUS         CON_ID
---------- ------- --- ---------- ----------5 AES128  YES NORMAL              3SQL> select name from v$tablespace where ts# = 5;NAME
------------------------------
USERSSQL> show con_idCON_ID
------------------------------
3SQL> select ENCRYPTED from user_tablespaces where TABLESPACE_NAME = 'USERS';ENC
---
YES

数据文件的大小不变:

SQL> select file_name, bytes from dba_data_files where tablespace_name = 'USERS';FILE_NAME                                                         BYTES
------------------------------------------------------------ ----------
/opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf             2313420800

验证

电话号码看不到了:

$ strings /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf |grep -i 6666
$ echo $?
1$ strings /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf |more
}|{z
ORCLCDB
USERS
?4fc
u]DRZ
>o"%
/ g~198
afkY}
@)5;
=M}'
,k2<R
Jjt
>+|}/
XE[{
6Kh!
{+4?
4d&6o9
p0kM
Tody
N{ _M
^l_'
P,Dsc
A?L&
J`"W
$<ej
6.`'
BB2X
NuX`j
\7rR
JkPI
P0=h4
ym#}d
.Ov];}B
...

http://www.ppmy.cn/server/43150.html

相关文章

一文搞懂 Transformer(总体架构 三种注意力层)

本文将从Transformer的本质、Transformer_的原理_、_Transformer的应用__三个方面&#xff0c;带您一文搞懂Transformer&#xff08;总体架构 & 三种注意力层&#xff09;。 节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友…

pytorch笔记:torch.nn.Flatten()

1 介绍 torch.nn.Flatten(start_dim1, end_dim-1) 将一个连续的维度范围扁平化为一个张量 start_dim (int)要开始扁平化的第一个维度&#xff08;默认值 1&#xff09;end_dim (int)要结束扁平化的最后一个维度&#xff08;默认值 -1&#xff09; 2 举例 input torch.ra…

Django模板层——模板引擎配置

作为Web 框架&#xff0c;Django 需要一种很便利的方法以动态地生成HTML。最常见的做法是使用模板。 模板包含所需HTML 输出的静态部分&#xff0c;以及一些特殊的语法&#xff0c;描述如何将动态内容插入。 模板引擎配置 模板引擎使用该TEMPLATES设置进行配置。这是一个配置列…

Python异步编程之基础概念

Python异步编程之基础概念 在现代编程中&#xff0c;异步编程是一种重要的技术&#xff0c;尤其是在处理I/O密集型任务时&#xff0c;异步编程可以大大提高程序的性能和响应速度。本文将介绍Python异步编程的基础概念&#xff0c;帮助你理解其原理和应用。 什么是异步编程&am…

摄像头应用测试

作者简介&#xff1a; 一个平凡而乐于分享的小比特&#xff0c;中南民族大学通信工程专业研究生在读&#xff0c;研究方向无线联邦学习 擅长领域&#xff1a;驱动开发&#xff0c;嵌入式软件开发&#xff0c;BSP开发 作者主页&#xff1a;一个平凡而乐于分享的小比特的个人主页…

【ARFoundation自学03】AR Point Cloud 点云(参考点标记)功能详解

和平面识别框架一样 1为XR Origin添加AR Point Cloud Manager组件 然后你的ar应用就具备了点云识别功能&#xff0c;就这么简单 2.可视化这些云点 创建一个美术效果的预制体&#xff0c;人家提供了预设模板 然后拖到仓库&#xff08;ASSETS&#xff09;创建预制体&#xff…

第八届“英拿科技杯”上海高校金马程序设计联赛暨东华大学邀请赛——源石虫(基础DP)

题源 源石虫 &#xff08;小声哔哔&#xff1a;这题当时脑子抽了死活没想到是DP&#xff0c;一直用贪心试&#xff0c;拿来凑个DP专题的数&#xff09; 代码 #include <bits/stdc.h> using namespace std; using ll long long; #define For for (ll i 1; i < n; …