关于oraclevpd

oracle vpd

一、基于行 的vpd

1、,创建 应用程序上下文,关联 设置上下文属性的程序包(可预先不存在),因为应用程序上下文为sys所有,所以要用sys用户创建。

2、创建设置应用程序上下文属性的程序包,在该程序包中调用dbms_session 程序包(该程序包只能在plsql中调用,而不能直接执行,否则会报错)。可以普通用户创建,但是要将程序包中设置应用程序上下文属性的过程的执行权限授予public,因为其他用户需要利用这个程序包中的这个过程来设置自己的应用程序上下文属性值。

3、创建用于fgac4策略的函数,可以放在设置应用程序上下文的程序包里,不需要授权,因为这个函数是给sys用户使用的。注意这种函数有固定的要求,就是必须要有两个传入的参数,但是调用的时候可以不写参数,因为在dbms_rls包中已经为它定义了参数了(个人认为)。

4、创建fgac规则,利用dbms_rls程序包,sys用户创建。

5、用sys用户写一个登录触发器,触发用户执行设置应用程序上下文属性的那个过程,当用户登录的时候,应用程序上下文就有值了,这个值可以被fgac策略所调用了。


二、基于列的vpd

和基于行的vpd一样,只不过在添加fgac策略的时候多了两个参数set_relevant_cols(屏蔽哪些列,以逗号隔开)和set_relevant_cols_opt (设置收到影响的记录范围,设置为all_rows表示对所有的数据行生效)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值