用Oracle 10g列值掩码技术隐藏敏感数据

繁花似锦的罂粟

繁花似锦的罂粟

2016-02-19 21:11

下面图老师小编要向大家介绍下用Oracle 10g列值掩码技术隐藏敏感数据,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

  Oracle的虚拟私有数据库特性(也称作细颗粒度存取控制)对诸如SELECT等数据管理语言DML语句提供行级安全性检查。

  PL/SQL策略函数和某个数据表相关联,这个函数可以检查当前用户的上下文背景并添加查询中WHERE语句的条件(断言),一个用户或者应用可以这样来写:

SELECT * FROM employees; 

  但是实际上oracle将会执行这样的语句:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

SELECT * FROM employees
WHERE department_id = 60; 

  因此,只有在查寻范围之内的行(在department数据表中的前60行)才会被查询语句返回。利用oracle 10g中的新选项可以让oracle返回所有行,而不仅仅是被授权的行。然而,未被授权行中包含的某些列(称为安全相关列)将显示NULL来代替实际数据,而其它的列值将会正常显示。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  要想使用列值掩码必须在虚拟私有数据库策略中做两件事。

  首先必须创建一个列级策略来设计某些列为安全相关列.其次必须在查询中包含ALL_ROWS选项以用来返回所有行。这两个参数的结合就可以实现列值掩码。

CREATE OR REPLACE
FUNCTION rls_dept
(obj_owner IN VARCHAR2, obj_name IN VARCHAR2)
RETURN VARCHAR2
AS
predicate
VARCHAR2 (200);
BEGIN
predicate := ''department_id = 60'';
RETURN (predicate);
END rls_dept;
/

  列表A

  列表A显示了一个称为rls_dept的策略函数。它返回断言“department_id=60”,用来设定对于EMPLOYEES表中60行之内的department字段。(实际上,这个函数并不返回一个静态表,它可以确定当前用户是谁,并据此返回给该用户正确的部门值。)

BEGIN
DBMS_RLS.ADD_POLICY(object_schema=''HR'',
object_name=>''EMPLOYEES'',
policy_name=>''restrict_dept_policy'',
function_schema=>''HR'',
policy_function=>''rls_dept'',
sec_relevant_cols=>''salary,commission_pct'',
sec_relevant_cols_opt=>dbms_rls.ALL_ROWS);
END;
/

  列表B

  列表B显示了如何应用列表A中的函数创建列值掩码。在DBMS_RLS包中的过程ADD_POLICY创建一个称为restrict_dept_policy的新策略。参数sec_relevant_cols表明字段salary和commission_pct是安全相关列。一个包含上述两个字段的查询将会应用到该策略函数,不包含的查询就不会应用该策略。最后,参数sec_relevant_cols_opts设定为常量ALL_ROWS。

  列值掩码应用于SELECT语句,无论哪个客户访问数据库都可以实施列值掩码,诸如SQL *Plus、.NET应用或者其它工具。

展开更多 50%)
分享

猜你喜欢

用Oracle 10g列值掩码技术隐藏敏感数据

编程语言 网络编程
用Oracle 10g列值掩码技术隐藏敏感数据

用Oracle10g列值掩码技术隐藏敏感数据

电脑网络
用Oracle10g列值掩码技术隐藏敏感数据

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

如何利用oracle 10g的列值掩码技术隐藏敏感数据

编程语言 网络编程
如何利用oracle 10g的列值掩码技术隐藏敏感数据

Oracle 10g列掩码与关系视图比较

编程语言 网络编程
Oracle 10g列掩码与关系视图比较

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Oracle 10g学习之数据库恢复

编程语言 网络编程
Oracle 10g学习之数据库恢复

在Oracle数据库10g中跟踪SQL

编程语言 网络编程
在Oracle数据库10g中跟踪SQL

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

浅谈Oracle数据库的建模与设计

浅谈Oracle数据库的建模与设计

若不离,此生不弃

若不离,此生不弃
下拉加载更多内容 ↓