VPD (虚拟专用数据库的简称),主要作用是根据运行环境的上下文,隐式的添加条

件。 好处是在数据库层解决细粒度的角色权限访问,避免在中间层写大量代码;坏处

是数据屏蔽的逻辑太隐蔽了,对于分析查找问题带来一定的困扰

一个简单的例子带你体验VPD策略

--1、在APPS 中创建表,赋权给PO, ONT用户
create table hand_vpd_test_tb1
(column1 varchar2(30),
db_user varchar2(30)
) grant select ,insert, update on hand_vpd_test_tb1 to po,ont; --2、创建策略函数 package
--使用 hand_vpd_tst_security.pck 创建策略函数包
--赋权
grant execute on apps.hand_vpd_tst_security to public;
CREATE PUBLIC SYNONYM hand_vpd_tst_security FOR apps.hand_vpd_tst_security; --3、添加VPD策略
begin DBMS_Rls.Add_Policy('APPS', 'HAND_VPD_TEST_TB1', 'INSERT_POLICY','APPS', 'HAND_VPD_TST_SECURITY.INSERT_SECURITY','INSERT', TRUE); DBMS_Rls.Add_Policy('APPS', 'HAND_VPD_TEST_TB1', 'SELECT_POLICY','APPS', 'HAND_VPD_TST_SECURITY.SELECT_SECURITY','SELECT'); end; select * from DBA_POLICIES a where a.object_name = 'HAND_VPD_TEST_TB1'; -- 删除VPD策略(备用)
begin
dbms_rls.drop_policy('APPS','HAND_VPD_TEST_TB1','USER_DATA_INSERT_POLICY');
dbms_rls.drop_policy('APPS','HAND_VPD_TEST_TB1','USER_DATA_SELECT_POLICY');
end; --4、Select , Insert 测试
begin
insert into hand_vpd_test_tb1 values ('test1-po','PO');
insert into hand_vpd_test_tb1 values ('test1-ont','ONT');
end; --5、切换到 PO 用户登录
select * from apps.hand_vpd_test_tb1
--结果:
--策略函数执行出错: --trace 发现是ora-06550错误,
select value from v$parameter where name = 'user_dump_dest';
alter session set tracefile_identifier = 'Hand_vpd_test2';
alter session set sql_trace=true;
select * from apps.hand_vpd_test_tb1
alter session set sql_trace=false; --表面是SELECT_SECURITY未声明,实际是XX用户执行策略函数时需要访问被施加策略的对象:hand_vpd_test_tb1,因为对该对象无权限,而导致报此错误;
--解决方案
grant select ,insert, update on hand_vpd_test_tb1 to public; --6 再次测试:
-- 切换到 PO 用户登录
select * from apps.hand_vpd_test_tb1
--结果只出现 DB_USER=PO的记录; --7 做insert 测试 insert into apps.hand_vpd_test_tb1 values ('test1-po','PO');
--结果:顺利插入
insert into apps.hand_vpd_test_tb1 values ('test1-ont','ONT');
--结果:报 ORA-28115: policy with check option violation 错误

EBS技术开发之VPD策略的更多相关文章

  1. 具体解释EBS接口开发之WIP模块接口

    整体说明 文档目的 本文档针对WIP模块业务功能和接口进行分析和研究,对採用并发请求方式和调用API方式分别进行介绍 内容 WIP模块经常使用标准表简单介绍 WIP事物处理组成 WIP相关业务流程 W ...

  2. 详解EBS接口开发之WIP模块接口

    总体说明 文档目的 本文档针对WIP模块业务功能和接口进行分析和研究,对采用并发请求方式和调用API方式分别进行介绍 内容 WIP模块常用标准表简介 WIP事物处理组成 WIP相关业务流程 WIP相关 ...

  3. JavaEE开发之SpringMVC中的静态资源映射及服务器推送技术

    在上篇博客中,我们聊了<JavaEE开发之SpringMVC中的自定义拦截器及异常处理>.本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js.css这些静态文件的加载配置 ...

  4. 李洪强iOS开发之iOS技术博客

    李洪强iOS开发之iOS技术博客 注意:访问博客请直接点击博客,不要点击后面的RSS地址 博客地址 RSS地址 南峰子的技术博客   剑尖博客   图拉鼎   Henry Lee   Dev Talk ...

  5. Android安全开发之WebView中的地雷

    Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...

  6. Android混合开发之WebViewJavascriptBridge实现JS与java安全交互

    前言: 为了加快开发效率,目前公司一些功能使用H5开发,这里难免会用到Js与Java函数互相调用的问题,这个Android是提供了原生支持的,不过存在安全隐患,今天我们来学习一种安全方式来满足Js与j ...

  7. UWP开发之Template10实践:本地文件与照相机文件操作的MVVM实例(图文付原代码)

    前面[UWP开发之Mvvmlight实践五:SuspensionManager中断挂起以及复原处理]章节已经提到过Template10,为了认识MvvmLight的区别特做了此实例. 原代码地址:ht ...

  8. Android Studio快速开发之道

    概述 现如今开发越来越追求效率和节奏,节省出时间做更多的事情,除了开发技术上的封装等,开发工具的使用技巧也是很重要的,今天就根据自己的经验来给大家介绍一下Android Studio快速开发之道. P ...

  9. Android安全开发之ZIP文件目录遍历

    1.ZIP文件目录遍历简介 因为ZIP压缩包文件中允许存在“../”的字符串,攻击者可以利用多个“../”在解压时改变ZIP包中某个文件的存放位置,覆盖掉应用原有的文件.如果被覆盖掉的文件是动态链接s ...

随机推荐

  1. [LeetCode] Add One Row to Tree 二叉树中增加一行

    Given the root of a binary tree, then value v and depth d, you need to add a row of nodes with value ...

  2. 使用springcloud zuul构建接口网关

    一  微服务网关背景及简介 不同的微服务一般有不同的网络地址,而外部的客户端可能需要调用多个服务的接口才能完成一个业务需求.比如一个电影购票的收集APP,可能回调用电影分类微服务,用户微服务,支付微服 ...

  3. python文件结构与import用法

    首先上一张总结图: 在pycharm中,一般不会将当前文件目录自动加入自己的sourse_path.如果遇到无法import同级目录下的其他模块, 右键make_directory as-->S ...

  4. 再深刻理解下web3.js中estimateGas如何计算智能合约消耗的gas量

    我们可使用web3.js框架的estimateGas函数获得一个以太坊智能合约的Gas估计值 ,通过执行一个消息调用或交易,该消息调用或交易直接在节点的VM中执行,并未在区块链中确认,函数会返回估算使 ...

  5. [Codeforces 940E]Cashback

    Description 题库链接 给你两个整数 \(n,c\) ,以及一个数列 \(A\) ,让你将序列分为许多段.对于每一段,他的价值为序列内除了最小的 \(\left\lfloor\frac{le ...

  6. 搭积木(block)

    [问题描述]小 OY 是一个喜欢搭积木的孩子,他有一天决定向小 C 展示他特别的搭积木技巧.现在一条直线上从左到右有 n 个位置,标号 1..n,第 i 个位置坐标为 x_i.每个位置上都预先叠好了一 ...

  7. PKUWC2018划水记

    PKUWC2018划水记 Day -1 ​ 从福州出发去长沙,原本是预定Day0当天的航班,后来怕来不及提前到了今天. ​ 由于最近长沙下雪,所以听说飞机取消了很多班次,所以早上起来的时候还特地看了一 ...

  8. 【BZOJ4003】【JLOI2015】城池攻占

    Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池.这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖,其 ...

  9. [BZOJ]2458: [BeiJing2011]最小三角形

    题目大意:给出平面上n个点,求最小的由这些点组成的三角形的周长.(N<=200,000) 思路:点按x坐标排序后分治,每次取出与排在中间的点的横坐标相差不超当前答案一半的点,按y坐标排序后再暴力 ...

  10. 例10-11 uva11181

    题意:n个人去逛超市,第i个人买东西的概率是pi,,计算每个人实际买了东西的概率 思路: 搜索标处理所以的情况,得出所有概率和all(开始天真的以为是1 - -,就说怎么案例看着怪怪的),用tt[i] ...