`
Wen_JN_86
  • 浏览: 32726 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Oracle-VPD

VPD 
阅读更多

 

Oracle权限控制

采用oracle的dbms_rls包实现数据访问控制

在大部份系统中,权限控制主要定义为模块进入权限的控制和数据列访问权限的控制(如:某某人可以进入某个控制,仓库不充许查看有关部门的字段等等)。
  但在某些系统中,权限控制又必须定义到数据行访问权限的控制,此需求一般出现在同一系统,不同的相对独立机构使用的情况。(如:集团下属多个子公司,所有子公司使用同一套数据表,但不同子公司的数据相对隔离), 绝大多数人会选择在View加上Where子句来进行数据隔离。此方法编码工作量大、系统适应用户管理体系的弹性空间较小,一旦权限逻辑发生变动,就可能需要修改权限体系,导致所有的View都必须修改。
  本文探讨的使用Oracle提供的Policy管理方法来实现数据行的隔离
注意:这里的policy是在9i上测试,8i的policy是不同9i的,但是原理是一样的.

(1)建立测试数据表(t_policy):

CREATE TABLE T_POLICY
(
T1 VARCHAR2(10 BYTE),
T2 NUMBER(10)
);

insert into t_policy values('a',10);
insert into t_policy values('b',20);
insert into t_policy values('c',30);
commit;

 

(2)建立测试policy的函数:

CREATE OR REPLACE function Fn_GetPolicy(P_Schema In Varchar2,P_Object In Varchar2) return varchar2 is
Result varchar2(1000);
begin
Result:='t2 not in (10)';
return(Result);
end Fn_GetPolicy;
/


(3)加入policy:

declare
Begin
Dbms_Rls.Add_Policy(
Object_Schema =>'niegc', --数据表(或视图)所在的Schema名称
Object_Name =>'T_Policy', --数据表(或视图)的名称
Policy_Name =>'T_TestPolicy', --POLICY的名称,主要用于将来对Policy的管理
Function_Schema =>'NIEGC', --返回Where子句的函数所在Schema名称
Policy_Function =>'Fn_GetPolicy', --返回Where子句的函数名称
Statement_Types =>'Select,Insert,Update,Delete', --要使用该Policy的DML类型,如'Select,Insert,Update,Delete'
Update_Check =>True, --仅适用于Statement_Type为'Insert,Update',值为'True'或'False'
Enable =>True --是否启用,值为'True'或'False'
);
end;


注:如果Update_Check设为'True',则用户插入的值不符合Policy_Function返回条件时,该DML执行返回错误信息。

现在就可以工作了:
select * from t_policy;
看看结果怎样, 是不是少了t2=10这项了.

 

(4)删除policy

declare
begin
dbms_rls.drop_policy('niegc','T_POLICY','T_TESTPOLICY');
end;

 

(5)设置policy的状态
declare
begin
dbms_rls.enable_policy('niegc','t_policy','t_testpolicy',false);
end;

 

(6)查看policy可以通过user_policies这个表看到.

分享到:
评论

相关推荐

    oracle-vpd:启用Oracle VPD的翻译器

    Oracle-vpd 这是用于Oracle的代理JDBC驱动程序,它提供了一种从JBoss EAP环境中注入V $ Session OSUSER的方法。 应该注意的是,必须在“ CallerIdentity”登录模块中使用它来设置OSUSER,并在JEE引擎中将基于$ ...

    论文研究-Oracle VPD-细粒度的权限设计方案 .pdf

    Oracle VPD-细粒度的权限设计方案,翟慧鑫,邹仕洪,数据资源共享已经成为大家协同工作的基本要求,传统的数据库访问控制模式已经不能很好的保护数据安全,因此更细粒度的访问控制得

    Oracle数据库用VPD来确保信息的隐私

    其结果就是每个用户看到完全不同的数据集--只能看到那些该用户被授权可以查看的数据--所有这些功能有时被称为的 Oracle虚拟专有数据库(或称为VPD)特性。本文说明如何建立VPD安全性模型。描述了银行通过创建函数、...

    Oracle_VPD:在Oracle VPD中下载

    Oracle_VPD OracleVPDOracle。

    基于Oracle VPD技术实现系统可配置数据屏蔽.pdf

    基于Oracle VPD技术实现系统可配置数据屏蔽.pdf

    关于Oracle的虚拟专有数据库特性探讨

    Oracle8i中引入的Oracle行级安全性特性提供了细粒度的访问控制--细粒度意味着是在行一级上...使用Oracle的VPD功能不仅确保了企业能够构建安全的数据库来执行隐私政策,而且提供了应用程序开发的一个更加可管理的方法。

    ORACLE中一个基于角色访问控制的VPD设计方案.pdf

    ORACLE中一个基于角色访问控制的VPD设计方案.pdf

    Oracle11g从入门到精通2

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    vpd列级权限控制举例

    oracle数据安全介绍与简明使用之:vpd列级权限控制举例

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    14.1.2 VPD和OLS策略 14.2 Database Vault部署 14.2.1 Database Vault软件安装 14.2.2 Database Vault组件添加 14.2.3 Database Vault注册 14.2.4 Database Vault禁用和启用 14.2.5 Database Vault的配置和...

    Oracle数据库安全配置规范

    Oracle数据库安全配置规范 DBA Database Administrator 数据库管理员 VPD Virtual Private Database 虚拟专用数据库 OLS Oracle Label Security Oracle标签安全

    Oracle11g从入门到精通

    《Oracle11g从入门到精通》面向数据库管理人员和数据库开发人员,从实际角度出发,系统地介绍了数据库和Oracle的相关概念和原理、Oracle的数据库管理(如安装与启动,用户权限、备份与恢复等),以及Oracle的应用...

    Oracle中细粒度访问控制的工作方式

    它是在 Oracle8i 中推出的,已经受到广泛的欢迎,并且在从教育软件到金融服务等各种应用程序得到采用。VPD 的工作方法是,通过透明地更改对数据的请求,基于一系列定义的标准向用户提供表的局部视图。在运行时,所有...

    Oracle.11g.从入门到精通 (2/2)

    1.1 Oracle数据库产品结构及组成 1.1.1 企业版 1.1.2 标准版 1.1.3 标准版 1.1.4 个人版 1.2 数据库基本术语 1.2.1 数据库 1.2.2 数据库管理系统 1.2.3 数据库系统 1.2.4 数据库模式 1.2.5 数据模型 1.2.6 数据完整...

    Oracle.11g.从入门到精通 (1/2)

    1.1 Oracle数据库产品结构及组成 1.1.1 企业版 1.1.2 标准版 1.1.3 标准版 1.1.4 个人版 1.2 数据库基本术语 1.2.1 数据库 1.2.2 数据库管理系统 1.2.3 数据库系统 1.2.4 数据库模式 1.2.5 数据模型 1.2.6 数据完整...

    Oracle数据库安全策略分析(一)第1/2页

    正在看的ORACLE教程是:Oracle数据库安全策略分析(一)。 数据库安全性问题一直是围绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。围绕数据库的安全性问题...

    Packt Oracle Advanced PL SQL Developer Professional Guide 2012

    The recapitulation of PL/SQL programming and advanced features like collections, external procedures, server side result caching, implementing VPD to enforce row level security, handling large ...

    Oracle Advanced PL/SQL Developer Professional Guide

    本书包含了真实世界的例子,涵盖了PL / SQL的所有高级功能。反过来,每个主要的认证主题都在一个...他的技术重点集中在Oracle数据库架构,Oracle云平台,数据库内存,数据库整合,多租户,Exadata,大数据和Hadoop。

    有关Oracle中虚拟专用数据库的探讨

    它是在 Oracle8i 中推出的,已经受到广泛的欢迎,并且在从教育软件到金融服务等各种应用程序得到采用。 VPD 的工作方法是,通过透明地更改对数据的请求,基于一系列定义的标准向用户提供表的局部视图。在运行时,...

Global site tag (gtag.js) - Google Analytics