如何在Oracle SecureFiles中加密数据

Oracle SecureFiles是在Oracle 11g引入的,它有传统的大对象(已经更名为BasicFile LOB)所不具备的一些优势。Oracle SecureFile LOB支持智能数据压缩,它是一种消除多次存储相同数据副本的去重方法,还支持其他一些使用大对象提升性能的特性。这些新特性中最有用的一个是Oracle的透明数据加密功能,目前已经扩展并加入了Oracle SecureFiles。

当我们在一个或多个LOB字段上启用透明数据加密(TDE)时,Oracle会在数据文件、备份文件和重做日志文件的块层次上自动对字段执行加密和解密操作。在启用之后,LOB只能按照逐个字段的方式执行加密,这个字段的所有LOB(跨越所有可用分区)都会加密。应用程序和访问数据表的用户完全不知道所发生的透明数据加密操作。然而,由于传统的导入导出工具和基于可转移表空间的导出操作不支持TDE,所以在移动这些包含加密字段的数据时必须使用Data Pump导入和导出工具。

TDE支持下面的加密算法:

3DES16——使用168位密钥的三重数据加密标准。

AES128——使用128位密钥的高级加密标准。

AES192——使用192位密钥的高级加密标准。这是默认算法。

AES256——使用256位密钥的高级加密标准。

在开始使用透明数据加密之前,安全管理员必须先创建一个wallet和设定一个主密钥。我们可以使用与其他Oracle数据库组件共享的默认数据库wallet。此外,我们可以创建一个TDE专用的独立wallet。Oracle强烈建议使用一个独立wallet来存储主加密密钥。如果sqlnet.ora文件中没有设置ENCRYPTION_WALLET_LOCATION参数,那么它就会使用WALLET_LOCATION值。如果sqlnet.ora文件没有设置WALLET_LOCATION,那么它就会使用默认数据库wallet。默认数据库wallet的位置是ORACLE_BASE/admin/DB_UNIQUE_NAME/wallet。

如果使用TDE专用的wallet,那么必须使用ENCRYPTION_WALLET_LOCATION参数在sqlnet.ora文件中指定wallet位置。主密码将用于保护数据表密码和表空间加密密钥,并且存储在外部安全模块中。默认情况下,TDE会生成一个随机密钥。此外,它也可能是来自于专门用于加密的PKI证书的现有密钥对。

使用下面的命令,就可以设置主加密密钥:

ALTER SYSTEM SET ENCRYPTION KEY [“certificate_ID”] IDENTIFIED BY “password”;

certificate_ID ——这是一个可选字符串,它包含了Oracle wallet所存储证书的唯一标识符。如果想要使用PKI私有密钥作为主加密密钥,则可以使用这个参数。

password ——这是安全模块一定要使用的wallet密码。它区分大小写。

这个数据库必须将主加密密钥加载到内存中,然后它才能加密或解密字符/表空间。下面的ALTER SYSTEM命令将显式打开wallet:

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY “password”

其中的“password”值是指创建加密密钥时所使用的密码。这个密码串必须添加到双号中。在wallet打开之后,它会一直保持打开,直到数据库实例关闭或显式关闭wallet。下面的命令将显式关闭wallet:

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY “password”

关闭wallet将禁用所有加密和解密操作。每当我们重新启动一个数据库实例,我们都必须打开wallet,重新启用加密和解密操作。一旦创建和打开了wallet,我们就可以在ENCRYPT子句中使用CREATE TABLE和ALTER TABLE命令。

用于加密非LOB字段的透明数据加密语法与在Oracle SecureFiles中启用加密的语法完全相同。它们有一个重要的区别,非LOB字段可以使用NO SALT参数阻止TDE在加密数据之前先给数据添加一个随机字符串。Oracle SecureFile LOB字段不支持NO SALT选项。我们可以使用数据字典视图USER_ENCRYPTED_COLUMNS确定应该加密哪一些字段,以及这些字段的状态。下面是一些ENCRYPT子句的例子:

CREATE TABLE tab_3DES (col1 CLOB ENCRYPT USING ‘3DES168’)

LOB(col1) STORE AS SECUREFILE(

CACHE

NOLOGGING

);

使用默认加密算法(AES192)和一个密码创建一个Oracle SecureFile LOB字段:

CREATE TABLE tab_enc_pw (col1 CLOB ENCRYPT IDENTIFIED BY badpassword)

LOB(col1) STORE AS SECUREFILE(

CACHE

);

使用AES256启用LOB加密:

ALTER TABLE tab_nocrypt MODIFY

( col1 CLOB ENCRYPT USING ‘AES256’);

通过重新生成加密密钥修改一个Oracle SecureFiles字段:

ALTER TABLE tab_3DES REKEY USING ‘AES256’;

Disable LOB encryption:

禁用LOB加密:

ALTER TABLE tab_enc_pw MODIFY

( col1 CLOB DECRYPT);

Oracle数据库中存储的大对象数据容量会继续增长,但是存储费用在不断下降。其中有许多的敏感数据,如医疗记录、员工数据和知识产权。能够对这些信息进行加密,这是非常宝贵的,也可以避免在将来投入大量金钱和精力去实现安全性。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/130853.html<

(0)
运维的头像运维
上一篇2025-02-26 06:46
下一篇 2025-02-26 06:47

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注