ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 简单vpd控制

简单vpd控制

原创 Linux操作系统 作者:lsl031 时间:2011-08-18 11:00:57 0 删除 编辑

注意,该例子实现的是最简单的访问控制,没有用上下文来进行控制,那么受控制的表格对于所有的用户都将适用,即是限制了所有的表数据访问。这是存在问题的。除非用户被明确授权 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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-03-24

  • 博文量
    56
  • 访问量
    799134