【大数据开发运维解决方案】Oracle Data Redaction数据加密测试

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
密钥管理服务KMS,1000个密钥,100个凭据,1个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 最近有个做Java开发的网友问我,怎么在Oracle进行数据加密呢?我给他推荐了Data Redaction。Oracle Database 12c中加入了Data Redaction这个新的安全特性。当然在11g的Database Advanced Security Administrator’s Guide官方文档中就介绍了。

前言

最近有个做Java开发的网友问我,怎么在Oracle进行数据加密呢?
我给他推荐了Data Redaction。
Oracle Database 12c中加入了Data Redaction这个新的安全特性。当然在11g的Database Advanced Security Administrator's Guide官方文档中就介绍了。如果你想要隐藏一个字段所有值或部分值的话,而且还要为用户提供他们需要的信息的时候,或则换句话说,你想仅某些用户看到的一些数据是隐藏的,但是另一些用户看到的是正常的数据,就可以用Data Redaction~


一、介绍

官方链接:
对于列中的数据有以下几种redaction方式:

1、Full redaction

对列中的数据全部redact,number类型的列将全部返回为0,character类型的列将全部返回为空格,日期类型返回为2001-01-01。

2、Partial redaction

对列中的一部分数据进行redact,比如,可以对社会保险号的前几位设置返回为*,剩下的几位保持不变。只有列中的数据为固定宽度时才能使用这种方式,如果列中存储的是email地址,每个email地址的宽度不尽相同,此时要使用Regular expressions。

3、Regular expressions

可以使用正则表达式查找要编校的数据模式。例如,您可以使用正则表达式编校电子邮件地址,电子邮件地址可以具有不同的字符长度。它仅设计用于字符数据。

4、Random redaction

提供给查询用户的编校数据每次显示时都显示为随机生成的值,这取决于列的数据类型。

5、No redaction

此选项使您能够测试编校策略的内部操作,而不影响对定义了策略的表的查询结果。在将编校策略定义应用到生产环境之前,可以使用此选项测试它们。

`重点关注:
不能对sys和system用户进行数据的redact。因为他们都有EXP_FULL_DATABASE这个角色, 而这个角色又包含了EXEMPT REDACTION POLICY系统权限。同理,也不能直接赋予用户dba权限,dba自动包含EXP_FULL_DATABASE角色。`


二、部分功能测试

创建测试用户

create user zhaoyd identified by zhaoyd;
create user zhaojh identified by zhaojh;
grant connect,resource to zhaoyd;
grant select on sys.redaction_policies to zhaoyd;
grant select on sys.redaction_columns to zhaoyd;
grant execute on dbms_redact to zhaoyd;
AI 代码解读

给zhaoyd用户建一张表名为emp:
编辑策略:

1、将phone字段中间4位数值用*号替代

begin
  dbms_redact.add_policy(object_schema       => 'ZHAOYD',
                         object_name         => 'EMP',
                         policy_name         => 'test_zhaoyd_emp',
                         column_name         => 'PHONE',
                         function_type       => Dbms_Redact.PARTIAL,
                         expression          => '1=1',
                         function_parameters => 'vvvvvvvvvvv,vvvvvvvvvvv,*,4,7');
end;
AI 代码解读

2、将地址LOC字段给完全隐藏

begin
  dbms_redact.alter_policy(object_schema       => 'ZHAOYD',
                         object_name         => 'EMP',
                         policy_name         => 'test_zhaoyd_emp',
                         action => dbms_redact.ADD_COLUMN,                         
                         column_name         => 'LOC',
                         function_type       => Dbms_Redact.RANDOM);
end;
AI 代码解读

3、分别查询看效果

zhaoyd,zhaojh,sys用户分别查询这个表:
可以看到sys用户查询是不会受策略限制的。

创建角色,用角色来控制,只让被赋予这个角色的用户看到的数据是加密的:

create role redac_role;
grant redac_role to zhaojh;
AI 代码解读

接下来修改之前的策略:

begin 
    dbms_redact.alter_policy(object_schema       => 'ZHAOYD',
                         object_name         => 'EMP',
                         policy_name         => 'test_zhaoyd_emp',
                         action => dbms_redact.MODIFY_EXPRESSION,                       
                         column_name         => 'LOC',
                         expression => 'SYS_CONTEXT(''SYS_SESSION_ROLES'',''REDAC_ROLE'') = ''TRUE''');
end;
AI 代码解读

这时候再分别用zhaoyd,zhaojh,sys用户分别查询zhaoyd.emp:
给zhaoyd用户赋予角色redac_role:
zhaoyd用户看到的也是加密后的了。

总结

经过实际测试的出来的一些结果

  1. 对加密的列不能同时使用distinct和order by,如果使用,必须加一层select,无论对于使用的用户是否是加密可见;
  2. 加密的结果优先级高于函数,比如distinct;
  3. 对于group by不影响结果的准确性,与未加密结果一致;
  4. 加密后的表无法进行CTAS(create table as select)操作;
相关文章
【硬件测试】基于FPGA的1024QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的1024QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同SNR条件下的性能测试。1024QAM调制将10比特映射到复平面上的1024个星座点之一,实现高效数据传输。硬件测试结果表明,在SNR=32dB和40dB时,系统表现出良好的性能。Verilog核心程序展示了各模块的连接与功能实现。
57 7
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
指挥学校大数据系统解决方案
本系统集成九大核心平台,包括中心化指挥、数据处理、学生信息、反校园欺凌大数据、智慧课堂、学生行为综合、数据交换及其他外部系统云平台。通过这些平台,系统实现对学生行为、课堂表现、校园安全等多维度的实时监控与数据分析,为教育管理、执法机关、心理辅导等提供强有力的数据支持。特别地,反校园欺凌平台利用多种传感器和智能设备,确保及时发现并处理校园霸凌事件,保障学生权益。同时,系统还涵盖超市、食堂、图书馆、消防安全等辅助云平台,全面提升校园智能化管理水平。
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
83 10
【03】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-测试hello word效果-虚拟华为手机真机环境调试-为DevEco Studio编译器安装中文插件-测试写一个滑动块效果-介绍诸如ohos.ui等依赖库-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【硬件测试】基于FPGA的4ASK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的4ASK调制解调系统的硬件测试版本,该系统包括testbench、高斯信道模块和误码率统计模块,并新增了ILA在线数据采集和VIO在线SNR设置功能。通过VIO设置不同SNR(如15dB和25dB),实现了对系统性能的实时监测与调整。4ASK是一种通过改变载波幅度表示数据的数字调制方式,适用于多种通信场景。FPGA平台的高效性和灵活性使其成为构建高性能通信系统的理想选择。
81 17
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
湖仓一体架构融合了数据湖的低成本、高扩展性,以及数据仓库的高性能、强数据治理能力,高效应对大数据时代的挑战。为助力企业实现湖仓一体的建设,Apache Doris 提出了数据无界和湖仓无界核心理念,并结合自身特性,助力企业加速从 0 到 1 构建湖仓体系,降低转型过程中的风险和成本。本文将对湖仓一体演进及 Apache Doris 湖仓一体方案进行介绍。
数据无界、湖仓无界, Apache Doris 湖仓一体解决方案全面解读(上篇)
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
【硬件测试】基于FPGA的4FSK调制解调通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文基于之前的文章《基于FPGA的4FSK调制解调系统》,增加了ILA在线数据采集模块和VIO在线SNR设置模块,实现了硬件测试版本。通过VIO设置不同SNR(如10dB和20dB),并展示了ILA采集的数据结果。四频移键控(4FSK)是一种数字调制方法,利用四个不同频率传输二进制数据,具有较高的频带利用率和抗干扰性能。输入的二进制数据分为两组,每组两个比特,对应四个频率f1、f2、f3、f4,分别代表二进制组合00、01、10、11。调制过程中选择相应频率输出,并进行幅度调制以增强抗干扰能力。接收端通过带通滤波器提取信号并还原为原始二进制数据。
56 7
【硬件测试】基于FPGA的256QAM基带通信系统开发与硬件片内测试,包含信道模块,误码统计模块,可设置SNR
本文介绍了基于FPGA的256QAM基带通信系统的硬件测试版本,包含testbench、高斯信道模块和误码率统计模块。系统新增ila在线数据采集和vio在线SNR设置模块,支持不同信噪比(如30dB和40dB)的仿真测试,并提供配套操作视频。256QAM调制方案每个符号携带8比特信息,通过复数值星座图映射实现高效传输。Verilog代码展示了核心模块设计,包括SNR设置、数据处理和ILA测试分析,确保系统在实际硬件环境中的稳定性和性能。
30 2

热门文章

最新文章

推荐镜像

更多