编程开发 购物 网址 游戏 小说 歌词 快照 开发 股票 美女 新闻 笑话 | 汉字 软件 日历 阅读 下载 图书馆 编程 China
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
移动开发 架构设计 编程语言 互联网 开发经验 Web前端 开发总结
开发杂谈 系统运维 研发管理 数据库 云 计 算 Java开发
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
  编程开发知识库 -> 数据库 -> dbms_rls -> 正文阅读
 

[数据库]dbms_rls[第1页]


包dbms_rls只适用oracle enterprise edition,他实现精细的访问控制;
  并且精细的访问控制是通过sql语句中动态增加谓词(where 子句)实现的;
可以使不同的数据库用户执行相同的sql语句,操作同一张表上的不同数据;
– 1,add_policy
/*
该过程用于给表,视图,或同义词增加一个安全策略;
当执行该操作结束后,会自动提交事务;
*/
dbms_rls.add_policy(object_schema => ,object_name => ,policy_name => ,
function_schema => ,policy_function => ,statement_types =>,
update_check => ,enable => ,static_policy =>
);
– 2,drop_policy
/*
该过程用于给表,视图,或同义词删除安全策略;
当执行该操作结束后,会自动提交事务;
*/
dbms_rls.drop_policy(object_schema => ,object_name => ,policy_name => );
– 3,refrsh_policy
/*
该过程用于刷新与安全策略修改相关的所有sql语句,并是oracle重新解析相关sql语句
当执行该操作结束后,会自动提交事务;
*/
dbms_rls.refresh_policy(object_schema => ,object_name => ,policy_name => );

– 4,enable_policy
/*
该过程用于激活或禁止特定的安全策略
当执行该操作结束后,会自动提交事务;
*/
dbms_rls.enable_policy(object_schema => ,object_name => ,policy_name => ,enable => );

– 5,create_policy_group
/*
该过程用于建立安全策略组
*/
dbms_rls.create_policy_group(
object_schema =>,object_name => ,policy_group =>
);
– 6,add_grouped_policy
/*
该过程用于增加与特定策略组相关的安全策略;
*/
dbms_rls.add_grouped_policy(
   object_schema => ,object_name => ,
   policy_group => ,policy_name => 
);

– 7,add_policy_context
/*
该过程用于为应用安全策略增加上下文;
*/
dbms_rls.add_policy_context(
object_schema =>,
object_name => ,
namespace => ,
attribute =>
);
– 8,delete_policy_group
/*
该过程用于删除安全策略分组
*/
dbms_rls.delete_policy_group(
object_schema => ,
object_name => ,
policy_group =>
);
– 9,drop_grouped_policy
/*
该过程删除特定策略组的安全策略
*/
dbms_rls.drop_grouped_policy(
object_schema => ,
object_name => ,
policy_group => ,
policy_name =>
);
– 10,drop_policy_context
/*
该过程删除上下文
*/
dbms_rls.drop_policy_context(
object_schema => ,
object_name => ,
namespace => ,
attribute =>
);
– 11,enable_grouped_policy
/*
该过程激活或禁止特定策略组的安全策略;
*/
  dbms_rls.enable_grouped_policy(
        object_schema => ,
        object_name => ,
        group_name => ,
        policy_name => ,
        enable =>
   );

– 12,refrsh_grouped_policy
/*
该过程刷新特定策略组的安全策略的相关sql语句,并重新解析sql语句;
*/
 dbms_rls.refresh_grouped_policy(
   object_schema => ,
   object_name => ,
   group_name => ,
   policy_name => 
);


/*
使用dbms_rls实现精细访问控制;
不同用户只能访问不同部门的员工;
*/
–1,建立应用上下文
create or replace context cz_emp using scott.ctx;
–2,建立包过程设置的应用上下文
create or replace package scott.ctx
as
procedure set_depno;
end;
create or replace package body scott.ctx as
   procedure set_depno 
   is
     no number(6);
   begin
     if sys_context('cz_emp','session_user')='test' then
       dbms_session.set_context('cz_emp','deptno',10);
     else if sys_context('cz_emp','session_user')='system' then
       dbms_session.set_context('cz_emp','deptno',20);
     else
       dbms_session.set_context('cz_emp','deptno',30); 
     end if;   
  end;  
end scott.ctx;

--3,建立登陆触发器
create or replace trigger tri_login
  after logon on database
  call scott.ctx.set_depno

–4,建立策略函数
create or replace package scott.emp_security as
function emp_sec(p1 varchar2,p2 varchar2 ) return varchar2;
end;
create or replace package body scott.emp_security as
function emp_sec(p1 varchar2,p2 varchar2 ) return varchar2
is
v_date varchar2(2000);
begin
if user not in (‘SYS’,’SCOTT’) then
v_date := ’ depno = sys_context(”cz_emp”,”deptno”)’;
return v_date;
end if;
return ‘1=1’;
end;
end ;
–5,增加策略
begin
dbms_rls.add_policy(‘SCOTT’,’EMP’,’emp_policy’,’SCOTT’,’scott.emp_security.emp_sec’,’select’);
end;
select deptno,ename from scott.emp [where ….];
  数据库 最新文章
Oracle之复杂查询
数据仓库学习笔记一
SQL语句
17.Oracle杂记——数据字典dba_ts_quotas
18.Oracle杂记——数据字典dba_users
19.Oracle杂记——数据字典dba_views
MySQL分区表
实现一个Android锁屏App的难点总结
mysql用root登录,执行revoke all privileg
innodb 引擎相关模块
上一篇文章      下一篇文章      查看所有文章
加:2016-11-27 01:11:59  更:2016-11-27 01:12:22 
VC(MFC) Delphi VB C++(C语言) C++ Builder 其它开发语言 云计算 Java开发 .Net开发 IOS开发 Android开发 PHP语言 JavaScript
ASP语言 HTML(CSS) HTML5 Apache MSSQL数据库 Oracle数据库 PowerBuilder Informatica 其它数据库 硬件及嵌入式开发 Linux开发资料
360图书馆 软件开发资料 文字转语音 购物精选 软件下载 新闻资讯 小游戏 Chinese Culture 股票 三丰软件 开发 中国文化 网文精选 阅读网 看图 日历 万年历 2018年10日历
2018-10-18 23:24:55
多播视频美女直播
↓电视,电影,美女直播,迅雷资源↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  编程开发知识库