Transparent Data Encryption (TDE)
TDE能够加密存储在表和表空间中的敏感数据,对于可以访问数据的数据库用户或应用程序,加密的数据被透明地解密。TDE有助于在存储媒体或数据文件被盗的情况下保护存储在媒体上的数据。

DE对存储在数据文件中的敏感数据进行加密
TDE将加密密钥存储在数据库外部的安全模块中
TDE不需要额外的维护,对用户透明
应用程序不参与加密和解密,加密和解密由数据库完成
加密密钥自动产生,不需要用户管理。只需要做好备份,不要丢失即可。
如果是dg环境,备库也要相关操作,请谨慎操作,否则会导致同步停止。
TDE 不支持对外键约束中使用的列进行加密。这是因为各个表有自己独有的加密密钥。以下查询可以列出数据库中存在的所有 RI(引用完整性)约束:

SQL> select A.owner, A.table_name, A.column_name, A.constraint_name
from dba_cons_columns A, dba_constraints B
where A.table_name = B.table_name and B.constraint_type = 'R';

TDE 表空间加密透明地支持所有索引。而对于 TDE 列加密,索引必须是用于等式搜索的普通 B 树索引。如果是基于函数的复合索引,则不能对相应函数使用的列进行加密。当对已有索引的列进行加密时,建议首先利用 dbms_metadata.get_ddl 获取索引定义,然后丢弃该索引,使用“no salt”选项对该列进行加密,最后重建索引。
使用 TDE 加密后的数据在从数据库文件中读回时会被解密。因此,如果在网络上传输该数据,它将处于明文状态。
对于 TDE 列加密,加密数据在 SGA 中仍保持加密状态,但是对于 TDE 表空间加密,数据在 SGA 中已被解密,从而提供 100% 的透明性。
TDE 是 Oracle Advanced Security 选件的一部分,该选件还包含网络加密和强身份验证。Oracle 企业版客户可以使用该选件。

查看数据库组件:
SET lines 90 NUMWIDTH 12 PAGES 10000 LONG 2000000000
ALTER SESSION SET nls_date_format='YYYY-MM-DD HH24:MI:SS';
COL version FORMAT a12
COL comp_id FORMAT a8
COL schema LIKE version
COL comp_name FORMAT a35
COL status FORMAT a12
SELECT comp_id,schema,status,version,comp_name FROM dba_registry;

透明数据加密(TDE)具有以下优点:
作为安全管理员,您可以确保敏感数据是安全的,以防存储媒体或数据文件被盗。
1,实现TDE可以帮助您解决与安全性相关的法规遵从性问题。
2,您不需要为授权用户或应用程序创建触发器或视图来解密数据。对于数据库用户和应用程序,表中的数据被透明地解密。
3,数据库用户和应用程序不需要知道他们访问的数据是以加密的形式存储的。对于数据库用户和应用程序,数据被透明地解密。
4,不需要修改应用程序来处理加密的数据。数据加密和解密由数据库管理。
5,密钥管理操作是自动化的。用户或应用程序不需要管理加密密钥。

TDE可以对表的列或表空间做加密

TDE表空间加密使您能够加密整个表空间。在加密的表空间中创建的所有对象都会自动加密。

TDE表空间加密利用了批量加密和缓存来提供增强的性能。虽然对应用程序的实际性能影响可能有所不同,但性能开销大致估计在5%到8%之间。

TDE表空间加密对存储在加密表空间中的所有数据进行加密。这包括内部大型对象(lob),如blob和clob。

TDE表空间加密不加密存储在表空间之外的数据。例如,BFILE数据没有加密,因为它存储在数据库之外。如果在加密的表空间中创建具有BFILE列的表,则不会加密此特定列。但

加密表空间中的所有数据都以加密格式存储在磁盘上。对于具有查看或修改数据的必要特权的授权用户,数据被透明地解密。数据库用户或应用程序不需要知道特定表中的数据是否在磁盘上加密。如果磁盘或备份媒体上的数据文件被盗,数据不会受到影响。
TDE表空间加密使用两层的、基于密钥的体系结构来透明地加密(和解密)表空间。TDE主密钥存储在外部安全模块(Oracle Wallet或HSM)中。TDE主密钥用于加密TDE表空间加密密钥,而TDE表空间加密密钥又用于加密和解密表空间中的数据。


Oracle Database 11g Release 2(11.2)允许Oracle Real Application Clusters (Oracle RAC)节点共享钱包。这消除了在所有节点之间手动复制和同步钱包的需要。Oracle建议在共享文件系统上创建钱包。这允许所有实例访问同一个共享钱包。
在任何一个Oracle RAC实例上执行的任何钱包操作(比如打开或关闭钱包)都适用于所有其他Oracle RAC实例。这意味着,当您为一个实例打开和关闭钱包时,它将为所有Oracle RAC实例打开和关闭。
在使用共享文件系统时,需要确保所有Oracle RAC实例的ENCRYPTION_WALLET_LOCATION或WALLET_LOCATION参数指向相同的共享钱包位置。安全管理员还需要通过分配适当的目录权限来确保共享钱包的安全性。
在一个实例上执行的主键rekey适用于所有实例。当一个新的Oracle RAC节点出现时,它知道当前钱包的打开或关闭状态。

如果您没有使用共享文件系统来存储钱包,那么您需要在主密钥rekey之后将钱包复制到所有节点。如果您需要重置数据库的主加密密钥,请使用以下步骤:

1,在第一个Oracle RAC节点上重置主加密密钥。
2,将新的主加密密钥钱包从第一个节点复制到所有其他节点。
3,关闭并重新打开任何一个节点上的钱包。使用以下命令:

SQL> ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "password";
SQL> ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "password";

Oracle RMAN 如何处理加密数据?

Oracle 透明数据加密和 Oracle RMAN

应用数据 RMAN 压缩备份 RMAN 加密备份 RMAN 压缩和加密备份
未加密 压缩数据 加密数据 数据先压缩再加密
使用 TDE 列进行加密 压缩数据;将加密列视为未加密 加密数据;对加密列双重加密 数据先压缩再加密;将加密数据视为未加密;对加密列双重加密
使用 TDE 表空间加密进行加密 对加密的表空间进行解密、压缩和重新加密 加密的表空间原样传送给备份 对加密的表空间进行解密、压缩和重新加密

当存在本地 TDE 主加密密钥时“透明”加密[和压缩]的示例:

   RMAN> connect target <ORACLE_SID>/<SYS pwd>RMAN> set encryption on;RMAN> backup [as compressed backupset] database;

无论使用 TDE 主加密密钥还是密码短语对文件进行加密,对发送到磁盘的 RMAN 备份进行加密都需要 Advanced Security 选件的许可。

TDE 可否与 Data Guard、Streams 和 Oracle Golden Gate 协同工作?

可以。当 TDE 用于 Data Guard 物理备用数据库(10gR2 及更高版本)时,在向辅助数据库传输数据的过程中加密数据在日志文件中仍保持加密状态,此时可以选择使用 ASO 网络加密在传输过程中对磁盘上未加密的数据进行加密。请参阅 Metalink 说明 749947.1 了解如何配置 ASO 自带的网络加密,并参阅 Metalink 说明 1143443.1 了解如何配置基于 SSL 的加密。对此,必须将包含主密钥的钱夹复制到全部物理备用数据库站点并打开该钱夹,不管是仅应用重做日志、以只读方式打开、在 Active Data Guard 中打开(只读和应用重做日志),还是进行角色转换(切换或故障切换)都是如此。

当 TDE 用于 Data Guard 逻辑备用数据库 (11gR1) 时,必须将包含主密钥的钱夹复制到辅助站点并打开该钱夹,以便 SQL Apply 可以对从日志文件中读取的数据进行解密。在将传入数据写入逻辑备用数据库时,可以使用同样的主加密密钥对数据进行加密。加密数据在日志文件中保持加密状态,并且在日志文件被传送到辅助数据库的传输过程中仍保持加密状态;Oracle 网络加密是可选的。请参阅 Metalink 说明 749947.1 了解如何配置 ASO 自带的网络加密,并参阅 Metalink 说明 1143443.1 了解如何配置基于 SSL 的加密。

当 TDE 与 11gR1 中的 Streams 一起使用时,在活动数据库之间以明文传输数据,以允许数据转换(字符集、数据库版本、平台等)。当无法到达接收端且需要临时存储数据时,加密列以加密形式存储在磁盘上。在 11gR1 之前的数据库版本中,Streams 将加密列视为“不受支持的数据类型”,因此跳过这些表。

可否使用带有直接路径的 SQL*Loader 将数据加载到包含加密列的表中?

可以。如果目标表包含加密列,数据将在加载时进行加密。以下简单示例说明了如何使用带有直接路径的 SQL*Loader。只需将 ulcase6.sql 中的一行从

sal number(7,2),
更改为

sal number(7,2) encrypt,
并使用 SQL*Loader 的正确语法:

$ sqlldr USERID=scott/tiger CONTROL=ulcase6.ctl LOG=ulcase6.log DIRECT=TRUE

TDE的一些问题链接:
https://www.cnblogs.com/buffercache/p/10797670.html
https://www.oracle.com/technetwork/cn/topics/security/tde-faq-099527-zhs.html
《Step by step method to implement Transparent Data Encryption (TDE) in 11g Data Guard and 11g RAC environments (文档 ID 1627807.1)》

笔记:TDE数据库透明加密(官档翻译摘选)相关推荐

  1. 深入解析数据库透明加密技术

    关注公众号"数安烂笔头"并回复 "标准",可获取数据安全相关标准.报告.白皮书 集合链接 目录 前置加密方式 中置加密方式 数据列加密方式 表空间加密 后置加密 ...

  2. Elasticsearch官档翻译——2 2 在Linux上启动服务

    #在Linux上启动服务 为了在Linux上启动ES服务,官方提供的包尽可能让你在升级或重启集群的时候轻松地启停集群. 目前我们有构建debian和rpm两种安装包,都可以在下载页获取.包本身没有依赖 ...

  3. 官档翻译-启用High Precision Event Timer (HPET) Functionality

    原文地址:http://doc.dpdk.org/guides/linux_gsg/enable_func.html#enabling-additional-functionality BIOS准备 ...

  4. tde数据库加密_启用了基于透明数据加密(TDE)的地理复制的Azure SQL数据库

    tde数据库加密 In this article, we will review how to set up Geo-Replication on a Transparent Data Encrypt ...

  5. tde数据库加密_在其他服务器上还原启用了透明数据加密(TDE)的数据库

    tde数据库加密 In this article, we will review how to enable Transparent Data Encryption (TDE) on a databa ...

  6. 透明加密tde_如何在SQL Server中配置透明数据加密(TDE)

    透明加密tde 简介与概述 (Introduction and Overview) Transparent Data Encryption (TDE) was introduced in SQL Se ...

  7. tde数据库加密_如何在TDE加密的数据库上配置SQL Server镜像

    tde数据库加密 Securing and encrypting sensitive data stored in your production databases is a big concern ...

  8. 透明加密tde_如何在SQL Server中监视和管理透明数据加密(TDE)

    透明加密tde Transparent Data Encryption (TDE) was originally introduced in SQL Server 2008 (Enterprise E ...

  9. tde数据库加密_如何将TDE加密的用户数据库添加到Always On可用性组

    tde数据库加密 SQL Server Transparent Data Encryption, also known as TDE, is a "data at rest" en ...

最新文章

  1. SpringBoot02_构建rest工程完成第一个controller类
  2. C语言单链表求环,并返回环的起始节点
  3. 无忧技术带您预览DFS(分布式文件系统)管理控制台
  4. 基于深度学习的CT图像肺结节自动检测(系列放在一起)
  5. 谁都可能是凶手:《八面埋伏》观看手记
  6. shell脚本 猜数字游戏并计数比较次数
  7. oc-10-对象做参数
  8. Web前端 ---入门教学
  9. android原生滑块验证
  10. [精简]托福核心词汇106
  11. 优秀的程序员都热爱写作
  12. LeetCode1175. 质数排列Prime Arrangements
  13. 解决git push报错:The requested URL returned error: 403
  14. 让笔记本触摸板默认关闭
  15. xinxin- 新鑫牌计算器
  16. (¥1011)-(一千零一拾一元整)输出
  17. 字符串匹配的三种算法
  18. 用电脑怎么制作GIF
  19. 数字旅游——智慧景区三维可视化综合运营平台
  20. 如何用curl做PUT请求?

热门文章

  1. 吉林大学本科毕业论文答辩和论文选题PPT模板
  2. 雷丁CAN通讯信号上位机,比德文,宝路达,看通讯报文,查故障 ,非常方便实用。
  3. 批量查询网站降权工具
  4. 四平方和 附代码优化流程
  5. ATAC-seq 数据分析实战
  6. PyDev+Eclipse使用点滴
  7. openjdk和jdk的区别与联系
  8. JavaScript的onkeypress键盘事件
  9. 短视频矩阵营销怎么做?来了解小魔推拓客新模式
  10. uniapp将input输入框中的内容自动小写转大写