阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Oracle Database 12c Data Redaction介绍

209次阅读
没有评论

共计 1962 个字符,预计需要花费 5 分钟才能阅读完成。

什么是 Data Redaction

Data Redaction 是 Oracle Database 12c 的高级安全选项之中的一个新功能,Oracle 中国在介绍这个功能的时候,翻译为“数据编纂”,在 EM12c R3 的中文界面中,这个功能被翻译成“数据编写”,我认为后一个翻译更贴切。

在 12c 发布前,某次以“数据库安全”为题目的技术交流中,有一个客户问我们,Oracle 数据库里面能不能实现这么一个功能:符合条件的用户可以看到表里面的所有数据,而另外一些人(业务权限低的用户)虽然能查询表,但是某些敏感数据全部用星号替换。我当时的想法是在 11g 中没有能够完全满足这个客户需求的功能。

现在 12c 的 Data Redaction 就可以完全满足上面提到的客户的需求了。所以如果用一句话概括:Data Redaction 就是根据策略(条件)原地(Oracle 用了 on-the-fly 这个词)改写数据,以保护敏感数据。

Data Redaction 和 Database Vault 都能保护敏感数据,他们的不同就是,在配置了 Database Vault 的环境中,如果访问不符合策略,会报错,提示没有足够的权限。而在 Data Redaction 环境中,符合策略的访问,会看到被改写的(星号遮蔽,随机转换)数据。另外,Database Vault 还能限制特权用户,而 Data Redaction 对 DBA 用户无效。

Data Redaction 配置

Data Redaction 的配置是通过系统系统的 PL/SQL 包来实现的,简单的说,就是使用这些 PL/SQL 包定义“数据改写”策略,策略中要定义的内容有:

l 敏感数据所对应的 SCHEMA,表,列

l 数据编写生效的条件

l 数据编写所使用的方式以及对应的参数

这些工作都可以使用 PL/SQL 包来完成,也可以使用 EM12c 通过 web 页面来配置。下面我们就以 EM12c 举例说明。

如果使用图形界面配置“数据改写”,需要使用 EM12c R3(Oracle Enterprise Manager Cloud Control 12c Release 3),EM Express 中没有对应的功能(11g 的 DBControl 在 12c 名字变为 EM Express,界面用 ADF 从新实现的,但是功能似乎更少了)。

1. 登录 EM12c,进入数据库实例的主页。我这里使用的是一个 PDB(Pluggable Database),因为这个里面有示例数据,在 CDB(Container Database)中配置的方法是一样的,需要进入 CDB 的主页进行操作。

2. 点击“管理”-〉“安全性”-〉“Oracle Data Redaction”,如果没有配置数据库的身份证明,系统会提示输入身份证明,我这里用的是 SYS 用户。

Oracle Database 12c Data Redaction 介绍

3. 进入“数据改写”页面,创建策略

Oracle Database 12c Data Redaction 介绍

选择方案(SCHEMA),希望改写的表,策略名:

Oracle Database 12c Data Redaction 介绍

修改策略表达式,也就是策略的生效条件,我在这里选择的是数据库会话用户为 SCOTT。

Oracle Database 12c Data Redaction 介绍

在进行下一步之前,我们先要确认敏感数据的格式。在本例中,我们希望将 HR 用户下的 EMPLOYEES 表中的 PHONE_NUMBER 列进行改写。这个列的数据形式如下图所示:

Oracle Database 12c Data Redaction 介绍

假设我们希望将电话号码全部用 * 号代替,只保留前 3 位。

点击页面下方的“对象列”区域的“添加”,在弹出窗口中添加敏感数据列及编写方式,在界面上也有简单的示例,如图所示:

Oracle Database 12c Data Redaction 介绍

因为要保留前 3 个电话号码,所以从第 4 个字符开始改写,全部需改写的字符是 10 个,中间的“.”不算,所以“直到”第 10 个字符。

Oracle Database 12c Data Redaction 介绍

Oracle Database 12c Data Redaction 介绍

4. 测试策略:

使用 SQL*PLUS 登录 HR 用户,可以查看所有数据。

Oracle Database 12c Data Redaction 介绍

使用 SCOTT 用户登录,查看到的是这个样子:

Oracle Database 12c Data Redaction 介绍

如果我们把策略生效的条件改为“会话用户为 HR”,那么即使 HR 是这个表的 OWNER,也只能看到改写后的数据:

Oracle Database 12c Data Redaction 介绍

其他类型的策略表达式

现实环境中,许多应用都是使用一个数据库用户登录的,所以数据改写的生效条件也可以是根据 Client 端信息或应用程序信息进行判断。当然,在应用程序中,必须要设置相关的 CONTEXT。注意,如果应用的用户拥有 DBA 权限,数据改写就无效了。

Oracle Database 12c Data Redaction 介绍

我们使用 SQL*PLUS 模拟应用使用同一个数据库用户,利用 CONTEXT 实现数据改写。(实际上是不同应用用户,使用不同的 CONTEXT。)

我们使用 HR 登录,将 MODULE 手工设置成“HRMS”。

Oracle Database 12c Data Redaction 介绍

当我们 MODULE 设置为其他值时(模拟切换不同类型的应用用户),则数据改写策略不生效。

Oracle Database 12c Data Redaction 介绍

APEX 环境下的例子

在安装了 APEX 环境的数据库中,配合 APEX 使用数据改写也非常简单,利用 APEX 的 PL/SQL 表达式写法,引用应用用户名,以下是例子:

Oracle Database 12c Data Redaction 介绍

其他用户登录应用效果:

Oracle Database 12c Data Redaction 介绍

Test_user1 登录应用的效果:

Oracle Database 12c Data Redaction 介绍

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-12/138551.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1962字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中