VPD

虚拟专用数据库 (VPD) 提供了角色和视图无法提供的行级访问控制。

将一个或多个安全策略与表或视图关联后,就可以实现虚拟专用数据库。

对带安全策略的表进行直接或间接访问时,数据库将调用一个实施该策略的函数。策略函数返回一个访问条件(WHERE
子句),即谓词。应用程序将它附加到用户的 SQL 语句,从而动态修改用户的数据访问权限。

eg1:

--管理员用户进行授权

grant execute on dbms_rls to scott;

--创建测试表

create table t (id number);
insert into t values (1);
insert into t
values (2);
insert into t values (3);
insert into t values (4);

commit;

--创建策略函数(返回值作为where条件 ,同下:select * from
t where id<=3 )

CREATE OR REPLACE FUNCTION  f_limited_query_t (s_schema IN
VARCHAR2, s_object IN VARCHAR2) RETURN VARCHAR2

AS
BEGIN
   RETURN ‘ID <= 3‘;
END;

--将策略函数与表相关联

BEGIN
   DBMS_RLS.add_policy (object_schema  
=> ‘SCOTT‘,                  
 
-- 数据表(或视图)所在的Schema名称
                       
object_name     => ‘T‘,        
                     
            --
数据表(或视图)的名称
                       
policy_name     => ‘POLICY_LIMITED_QUERY_T‘,  
    --
政策名称
                       
function_schema => ‘SCOTT‘,              
                 
 --返回Where子句的函数所在Schema名称
                       
policy_function => ‘F_LIMITED_QUERY_T‘);          
    --返回Where子句的函数名称
END;

--测试

分别用管理员和SCOTT账户登录查询:

select * from scott.t;

--查询策略

SELECT * FROM User_Policies

--删除策略

BEGIN
   DBMS_RLS.drop_policy (object_schema   =>
‘SCOTT‘,
                        
object_name     =>
‘T‘,
                        
policy_name     => ‘POLICY_LIMITED_QUERY_T‘);
END;

--再测试

分别用管理员和SCOTT账户登录查询:

select * from scott.t;

时间: 2024-11-06 14:38:32

VPD的相关文章

PLSQL_R12 MOAC多组织底层技术实现技术分析(Oracle VPD)

  2014-05-30 BaoXinjian In Capgemini  一. 介绍 之前一直存在对Oracle R12 多组织访问的一些疑惑,所以查询了一些相关资料,并介绍实现R12 MOAC的Oracle VPD技术 Oracle VPD全称Virtual Private Database, Oracle的一种控制数据访问的其中安全策略之一 Oracle数据安全策略访问实现方法 Role-based security create role cust_role; grant select

[精]Oracle VPD详解(虚拟专用数据库)

所谓虚拟专用数据库(VPD)指的是,通过在数据库里进行配置,从而让不同的用户只能查看某 个表里的部分数据.VPD分为以下两个级别. 行级别:在该级别下,可以控制某些用户只能查看到某些数据行.比如,对于销售数据表sales 来说,每个销售人员只能检索出他自己的销售数据,不能查询其他销售人员的销售数据. 列级别:在该级别下,可以控制某些用户不能检索某个表的某个列的值.比如用户HR 下的 employees 表中,含有工资(salary)列,由于该列比较敏感,因此不让其他用户查询该列的值. 其他用户检

各种波形文件VCD,VPD,SHM,FSDB生成的方法

转载---http://www.cnblogs.com/zeushuang/archive/2012/11/14/2769640.html 仿真是IC设计不可或缺的重要步骤,仿真后一般需要记录下波形文件,用于做详细分析和研究.说一下几种波形文件WLF(Wave Log File).VCD(Value Change Dump)文件,fsdb(Fast Signal DataBase)文件.shm.vpd: 1.对于WLF波形日志文件,只要我们使用过modelsim,应该都很熟.WLF(Wave L

[课]14.1 演示一个VPD进行数据访问控制的示例

1.确认数据库版本 2.环境准备 创建一张顾客表(customer),其中包括了顾客姓名,年龄,姓名,地址,收入等, 我们需要使用LIVAN用户只能查看收入为2000元以下的顾客信息. 3.实验控制策略 4. VPD策略前后对比

使用VPD解决EBS中信息屏蔽问题

本文描述的是2005年在一个项目中采用Oracle VPD技术解决同一个OU下按照不同办事处屏蔽销售订单的解决方案. VPD技术提供了数据库对象(表,同义词,视图)行级别访问的控制.关于VPD更多的信息不在此进行描述,有兴趣的同学可以查看Oracle Database Security Guide中的Using Virtual Private Database to Implement Application Security Policies章节. 一,业务需求 同一个OU下按照不同的办事处进

VCS仿真生成VPD文件

VCS仿真生成VPD文件 一.环境与文件 Linux平台 VCS 64bit 代码文件请参考<一个简单的Verilog计数器模型> 二.开始仿真 1.compiler vcs -full64 -f file.f -debug_pp +vcd+vcdpluson 参数解释 file.f 是你的设计文件索引 +vcd+vcdpluson产生Synopsys的波形文件之一vpd格式的波形文件 2.simulate ./simv 生成 名为vcdpluson.vpd的文件 可以使用使用dve查看波形

Ubuntu 16.04 RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller” 不能上网

来源:http://forum.ubuntu.org.cn/viewtopic.php?f=116&t=463646 1.执行如下命令 uname -a sudo lspci -knn sudo lshw -C network ifconfig ping 192.168.1.1 -c 4 tail /var/log/syslog -n 20 2.查看状态: [email protected]:~$ uname -aLinux gofox-To-be-filled-by-O-E-M 3.13.0-

cpio命令

cpio是用来建立.还原备份档的工具程序,它可以加入.解开cpio或tar备份档内.cpio 可以从 cpio 或 tar 格式的归档包中存入和读取文件, 归档包是一种包含其他文件和有关信息的文件. 有关信息包括:文件名, 属主, 时标(timestamp), 和访问权限. 归档包可以是磁盘上的 其他文件, 也可以是磁带或管道. 语法: cpio [主选项] [选项] [文件名] cpio包括3种运行模式. copy-ou: cpio把要备份的文件复制到归档包中. copy-in:cpio从归档

第十九章 IBM Linux管理

一.Linux与AIX Linux最初是为x86架构设计的,现在支持各种硬件平台.如:PowerPC.S/390.SPARC.Alpha以及其他嵌入式系统.其中PowerPC和S/390是IBM的,SAPRC是SUN的,Alpha是DEC的现在是HP的.但是在Inter芯片上运行的Linux版本不可以用在pSeries上,在pSeries上运行的Linux是专门为PowerPC内核设计的. 要在AIX上运行Linux应用,只需要在AIX下安装"AIX Toolbox for linux Appl