简单vpd控制

注意,该例子实现的是最简单的访问控制,没有用上下文来进行控制,那么受控制的表格对于所有的用户都将适用,即是限制了所有的表数据访问。这是存在问题的。除非用户被明确授权 GRANT EXEMPT ACCESS POLICY TO LSL031的权限。


例如:test用户下创建策略函数和创建策略。

CREATE OR REPLACE FUNCTION f_limited_query_t (s_schema IN VARCHAR2,
                                              s_object IN VARCHAR2)
   RETURN VARCHAR2
AS
BEGIN
   RETURN 'policyno in (select policyno from matest0423.gupolicymain where companycode=''0201001109'')';
END;
/

BEGIN
   DBMS_RLS.add_policy (object_schema   => 'MATEST0423',
                        object_name     => 'GUPOLICYITEMMAIN',
                        policy_name     => 'POLICY_LIMITED_QUERY_T',
                        function_schema => 'TEST',
                        policy_function => 'F_LIMITED_QUERY_T');
END;
/


当lsl031用户访问select * from matest0423.gupolicyitemmain表格数据时策略开始生效。
当执行GRANT EXEMPT ACCESS POLICY TO LSL031时,策略不起作用。


所以策略的授予应该分两类,已是通过上下文确定登陆用户的是否受策略所控,另外一种方式直接在表上加上策略,除非明确授予GRANT EXEMPT ACCESS POLICY ,否则是都受策略控制的。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/288166/viewspace-705232/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/288166/viewspace-705232/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值