ITPub博客

首页 > 应用开发 > IT综合 > VPD

VPD

原创 IT综合 作者:itlibrary 时间:2007-09-18 15:48:42 0 删除 编辑

VPD(virtual private database)是Oracle database增加安全性的工具,能够在用户访问table,view,synonyms对象动态应用安全性策略,实际上是在用户发出SQL statement之后,修改where 子句。VPD可以应用在select,insert,update,index,delete 语句。还可以在column-level 应用安全性策略,如果将sql查询到涉及VPD column level的字段,则会返回null值。

有两种方式:

1.使用DBMS_RLS

2.使用Oracle policy GUI

LAB:

Use DBMS_RLS.add_policy,DBMS_RLS.enable_policy创建安全性策略.

1. create test table: create table T as select * from dba_objects;

2. create policy_function

[@more@]create or replace function policy_fun(object_schema IN VARCHAR2, object_name VARCHAR2) RETURN VARCHAR2 is where_clause varchar2(2400); begin if object_schema = 'SYSTEM' and object_name = 'T' then where_clause := object_name||'.owner='||'''SYSTEM'''; return where_clause; end if; end; 3. execute dbms_rls.add_policy(object_schema => 'SYSTEM',object_name => 'T',policy_name => 'test_policy',policy_function => 'policy_fun',statement_types => 'SELECT'); 4. select * from t 5. select * from user_policies

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

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    1
  • 访问量
    467