数据库管理-第267期 23ai:Oracle Data Redaction演示(20241128)

数据库管理267期 2024-11-286

  • 数据库管理-第267期 23ai:Oracle Data Redaction演示(20241128)
    • 1 示例表及数据
    • 2 创建编校策略
      • 2.1 名字全编校
      • 2.2 电话部分编校
    • 3 DML演示
      • 3.1 场景1
      • 3.2 场景2
    • 总结

数据库管理-第267期 23ai:Oracle Data Redaction演示(20241128)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database(Oracle与MySQL)
PostgreSQL ACE Partner
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、年度墨力之星,ITPUB认证专家、专家百人团成员,数盟会长老会成员,OCM讲师,PolarDB开源社区技术顾问,HaloDB外聘技术顾问,OceanBase观察团成员,青学会MOP技术社区(青年数据库学习互助会)技术顾问
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭

在第256期对Oracle数据编校进行了介绍,本期对常见的数据脱敏展示场景进行演示。本次演示使用版本为23ai Free(RPM安装):
image.png

1 示例表及数据

针对姓名和电话号码进行脱敏展示。

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
sqlplus / as sysdba
alter session set container=pdbprod1;
create user odr identified by odr;
grant dba to odr;
alter user odr default tablespace users quota unlimited on users;
conn odr/odr@127.0.0.1:1521/pdbprod1drop table if exists customers;
create table customers (id number primary key,name varchar2(40),phonenumber number(13,0));
insert into customers values(1,'尹海文',13012345678);
insert into customers values(2,'胖头鱼',13023456789);
commit;

image.png
image.png

2 创建编校策略

2.1 名字全编校

conn / as sysdba
alter session set container=pdbprod1;
BEGINDBMS_REDACT.ADD_POLICY(object_schema       => 'odr', object_name         => 'customers', column_name         => 'name',policy_name         => 'odr_customers_name_pol', function_type       => DBMS_REDACT.FULL,expression          => '1=1');
END;
/select * from odr.customers;conn odr/odr@127.0.0.1:1521/pdbprod1
select * from customers;

image.png
这里可以看到在sys用户下,查询内容展示依然是未被编校的,而使用本用户则是内容展示已被编校,经测试拥有dba权限的用户不受编校策略影响。

2.2 电话部分编校

conn / as sysdba
alter session set container=pdbprod1;
BEGINDBMS_REDACT.ADD_POLICY(object_schema       => 'odr', object_name         => 'customers', column_name         => 'phonenumber',policy_name         => 'odr_customers_phonenumber_pol', function_type       => DBMS_REDACT.PARTIAL,expression          => '1=1',function_parameters => '0,4,8');
END;
/

image.png
在创建过程中发现该对象已经存在编校策略,因此需要删除原策略。

BEGINDBMS_REDACT.drop_policy(object_name         => 'customers', object_schema       => 'odr', policy_name         => 'odr_customers_name_pol');
END;
/BEGINDBMS_REDACT.ADD_POLICY(object_schema       => 'odr', object_name         => 'customers', column_name         => 'phonenumber',policy_name         => 'odr_customers_phonenumber_pol', function_type       => DBMS_REDACT.PARTIAL,expression          => '1=1',function_parameters => '0,4,8');
END;
/conn odr/odr@127.0.0.1:1521/pdbprod1
select * from customers;

image.png
image.png
由本测试也可以得出,Oracle数据编校策略的限制之一,就是一个对象只允许存在一个编校策略,目前我认为这限制了数据编校的使用场景。

3 DML演示

3.1 场景1

这里做一个数据使用数据编校后展示数据更新原数据的操作演示。

conn odr/odr@127.0.0.1:1521/pdbprod1
update customers set phonenumber=phonenumber where id=1;
commit;conn / as sysdba
alter session set container=pdbprod1;
select * from odr.customers;

image.png
这种情况下对原数据无影响。

3.2 场景2

这里尝试用编校后查询结果更新已有数据。

conn odr/odr@127.0.0.1:1521/pdbprod1
update customers set phonenumber=(select phonenumber from customers where id=2) where id=1;

image.png
这里因为使用编校后数据,会提示权限不足,无法操作。经过测试拥有dba权限的用户因为不受编校策略影响也不会使用编校后的展示数据来更新已有数据。

由此可以看到当前版本以及本次操作的权限控制下,在有数据编校后的对象进行DML操作时,是不会因为数据编校后展示结果的改变而错误修改数据的。

总结

本期对Oracle Data Redaction的实际使用效果进行了展示。
老规矩,知道写了些啥。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/888191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hue 4.11容器化部署,已结合Hive与Hadoop

配合《Hue 部署过程中的报错处理》食用更佳 官方配置说明页面: https://docs.gethue.com/administrator/configuration/connectors/ 官方配置hue.ini页面 https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini docker部署 注意: …

Spring Boot自定义启动banner

在启动 Springboot 应用时,默认情况下会在控制台打印出 Springboot 相关的banner信息。 自定义banner 如果你想自定义一个独特的启动banner,该怎么做呢?Springboot 允许我们通过自定义启动banner来替换默认的banner。只需要在 resources 目…

leaflet 的基础使用

目录 一、创建dom节点 二、创建地图 三、添加底图&#xff08;天地图&#xff09;&#xff0c;在地图创建完成后添加底图 本章主要讲述leaflet在vue中的使用&#xff1a; leaflet 详情总目录&#xff1a;传送 一、创建dom节点 <div class"map" id"map_…

ubuntu的用户使用

ubuntu系统中的常规用户登录方式 在系统root用户是无法直接登录的,因为root用户的权限过大所以其安全性比较差 在登录系统时一般使用在安装系统时建立的普通用户登录 如果需要超级用户权限: Ubuntu用户密码破解 在系统安装完成后默认grub启动等待时间为0&#xff0c;建议改…

浏览器拨测:将网站护航的阵地再前推一米

作者&#xff1a;泉思 “从你在地址栏里敲下回车开始到你在网页上看到内容中间经过了哪些步骤”&#xff0c; 这是一个非常常见的互联网公司的面试题。想必很多开发者对于这个问题可以给出一个非常完整的回答&#xff0c;但是对于用户来说&#xff0c;在网页上看到内容仅仅是服…

【RL Application】语义分割中的强化学习方法

&#x1f4e2;本篇文章是博主强化学习&#xff08;RL&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…

【C++】优先队列(Priority Queue)全知道

亲爱的读者朋友们&#x1f603;&#xff0c;此文开启知识盛宴与思想碰撞&#x1f389;。 快来参与讨论&#x1f4ac;&#xff0c;点赞&#x1f44d;、收藏⭐、分享&#x1f4e4;&#xff0c;共创活力社区。 目录 一、前言 二、优先队列&#xff08;Priority Queue&#xff09…

STL:相同Size大小的vector和list哪个占用空间多?

在C中&#xff0c;vector和list是两种不同的序列容器。vector底层是连续的内存&#xff0c;而list是非连续的&#xff0c;分散存储的。因此&#xff0c;vector占用的空间更多&#xff0c;因为它需要为存储的元素分配连续的内存空间。 具体占用多少空间&#xff0c;取决于它们分…

GPT vs Claude到底如何选?

美国当地时间6月20日&#xff0c;OpenAI的“劲敌”Anthropic公司发布了最新模型Claude 3.5 Sonnet。据Anthropic介绍&#xff0c;该模型是Claude 3.5系列模型中的首个版本&#xff0c;也是Anthropic迄今为止发布的“最强大、最智能”的模型。它不仅在性能上超越了竞争对手和自家…

OGRE 3D----5. OGRE和QML事件交互

在现代图形应用程序开发中,OGRE(Object-Oriented Graphics Rendering Engine)作为一个高性能的3D渲染引擎,广泛应用于游戏开发、虚拟现实和仿真等领域。而QML(Qt Modeling Language)则是Qt框架中的一种声明式语言,专注于设计用户界面。将OGRE与QML结合,可以充分利用OGR…

mysql系列2—InnoDB数据存储方式

背景 本文将深入探讨InnoDB的底层存储机制&#xff0c;包括行格式、页结构、页目录以及表空间等核心概念。通过全面了解这些基础概念&#xff0c;有助于把握MySQL的存储架构&#xff0c;也为后续深入讨论MySQL的索引原理和查询优化策略奠定了基础。 1.行格式 mysql中数据以行…

matlab2024a安装

1.开始安装 2.点击安装 3.选择安装密钥 4.接受条款 5.安装密钥 21471-07182-41807-00726-32378-34241-61866-60308-44209-03650-51035-48216-24734-36781-57695-35731-64525-44540-57877-31100-06573-50736-60034-42697-39512-63953 6 7.选择许可证文件 8.找许可证文件 9.选…

交换机四大镜像(端口镜像、流镜像、VLAN镜像、MAC镜像)应用场景、配置实例及区别对比

在网络管理中&#xff0c;端口镜像、流镜像、VLAN镜像和MAC镜像都是用于监控和分析网络流量的重要技术。 端口镜像&#xff08;Port Mirroring&#xff09; 定义&#xff1a;端口镜像是将一个或多个源端口的流量复制到一个目标端口&#xff0c;以便于网络管理员能够监控和分析…

JVM知识点学习-1

学习视频&#xff1a;狂神说Java 类加载器和双亲委派机制 类加载器 作用&#xff1a;加载Class文件 流程&#xff1a;这里的名字car1。。在栈里面&#xff0c;但是数据在堆里面 类加载器的几个类型&#xff1a; 虚拟机自带的类加载器&#xff1b;启动类&#xff08;根Boot…

Linux下的三种 IO 复用

目录 一、Select 1、函数 API 2、使用限制 3、使用 Demo 二、Poll 三、epoll 0、 实现原理 1、函数 API 2、简单代码模板 3、LT/ET 使用过程 &#xff08;1&#xff09;LT 水平触发 &#xff08;2&#xff09;ET边沿触发 4、使用 Demo 四、参考链接 一、Select 在…

python学习笔记 - python安装与环境变量配置

目录 前言1. 版本选择1.1 什么版本合适&#xff1f;1.2 版本越新越好吗&#xff1f;1.3 维护中的大版本里&#xff0c;选择最早的好吗&#xff1f;1.4 我的选择1.5 Python 发布周期1.6 Python维护中的版本及截止时间 2. 安装包下载2.1 官网地址2.2 下载安装包3. 环境安装3.1 新…

管理表空间和数据文件(二)

只读表空间 使用以下命令将表空间设置为只读模式&#xff1a; ALTER TABLESPACE userdata READ ONLY;必须等到TABLESPACE所有的过程都commit&#xff1b;才能可以执行成功。 导致检查点 Causes a checkpoint 意思是将内存中的数据&#xff08;如缓冲区中的更改&#xff09;写…

解决el-card上绑定@click事件,点击无效

解决&#xff1a; 在click后面加一个.native的修饰符即可 解释&#xff1a; .native 修饰符的作用&#xff1a;告诉 Vue&#xff0c;在绑定事件时&#xff0c;使用原生的 DOM 事件&#xff0c;而不是 Vue 自定义的事件。 因为 el-card 作为一个 Element UI 组件&#xff0c;默认…

AD7606使用方法

AD7606是一款8通道最高16位200ksps的AD采样芯片。5V单模拟电源供电&#xff0c;真双极性模拟输入可以选择10 V&#xff0c;5 V两种量程。支持串口与并口两种读取方式。 硬件连接方式&#xff1a; 配置引脚 引脚功能 详细说明 OS2 OS1 OS2 过采样率配置 000 1倍过采样率 …

蓝桥-希尔排序模板题

第一眼看到这个题还在想希尔排序模板不记得了&#xff0c;于是去网上了搜了一个&#xff0c;但是考虑到这种题只看测试点能不能通过&#xff0c;于是用Arrays方法试了一下&#xff0c;发现也可以。 1.希尔排序模板ac代码 package yunkePra;import java.util.Scanner;public cl…