Oracle策略相关

Oracle策略可以限制查询、修改、删除、新增等操作,刚接触,对查询做一个测试:

参照 http://blog.csdn.net/diyyong/article/details/19552637

用法如下:

begin
-- Call the procedure
sys.dbms_rls.add_policy(object_schema => :数据表(或视图)所在的Schema名称/用户,
object_name => :数据表(或视图)的名称,
policy_name => :policy的名称
function_schema => :返回Where子句的函数所在Schema名称/用户,
policy_function => :返回Where子句的函数名称,
statement_types => :要使用该Policy的DML类型,如‘Select,Insert,Update,Delete‘,
update_check => 仅适用于Statement_Type为‘Insert,Update‘,值为‘True‘或‘False‘,
enable => 是否启用,值为‘True‘或‘False‘,
static_policy => 默认值为FALSE。如果它被设置为TRUE则所有用户启用该策略,sys或特权用户例外。
policy_type => :默认值是null,意味着static_policy的值决定,在这里指定任何策略将覆盖static_policy的值。
long_predicate => long_predicate,
sec_relevant_cols => :敏感的字段名称,
sec_relevant_cols_opt => :设置为dbms_rls.ALL_ROWS来显示所有的行,敏感的列的值为null);
end;

创建函数:

create or replace function f_policy
(
  p_owner  in varchar2,--两个参数必须要有,名字可以不一样
  p_object in varchar2
) return varchar2 as
  v_sql varchar2(2000);
begin
  v_sql := lower(sys_context(‘USERENV‘, ‘CURRENT_SQL‘, 4000));
  if instr(v_sql, ‘ where ‘) = 0 then
    return ‘deptno=10‘;
    --raise_application_error(-20001, ‘未包含where条件‘);
  end if;
  return ‘‘;
end;

  

添加策略(需在sys下添加):

begin
dbms_rls.add_policy(object_schema => ‘scott‘, object_name => ‘emp‘,
policy_name => ‘sal‘, function_schema => ‘scott‘,
policy_function => ‘f_policy‘, sec_relevant_cols => ‘sal‘);
end;

该策略和函数搭配,限制了如果关于emp表的dml语句中未包含where下自动添加where dept=10的条件,示例如下:

select * from emp;

删除策略:

begin
  sys.dbms_rls.drop_policy(object_schema => ‘scott‘,
                           object_name => ‘emp‘,
                           policy_name => ‘sal‘);
end;

  

时间: 2024-08-29 06:35:19

Oracle策略相关的相关文章

oracle的环境配置-oracle的相关介绍

Oracle的相关介绍: 1.Oracle数据库软件--安装OS上的2.软件的获取路径,商务销售策略.3.数据库版本:9i--10%                      10g--65%                      11g--25%--新建的系统常见               12c--最新版本 8i--Internet   9i   10g--gird compute--10gR2-oracle 10g relaease 10.2.0.x   11g           

Oracle 性能相关常用脚本(SQL)

在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考.以下脚本均在Oracle 10g测试通过,Oracle 11g可能要做相应调整. 1.寻找最多BUFFER_GETS开销的SQL 语句 [sql] view plain copy print? --filename: top_sql_by_buffer_gets.sql --Identify heavy SQL (Get the SQL with heavy BUFFER_G

oracle 常用相关sql 语句

一.oracle 常用相关sql 语句 1. 连接数据库       su - oracle -c " sqlsplus 用户/密码     注:首次登陆用  sqlplus / as sysdba            注: 关闭数据库:注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown.shutdown transactional.shutdown immediate.shutdown abort)                 shutdown:关闭,等待每

.Net项目中通过ODAC方式链接Oracle数据库相关配置

.Net项目中通过ODAC方式链接Oracle数据库相关配置 一.开发环境 1.关于ODAC的链接方式 ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口. 2.使用ODAC方式的优点 使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的.最小的数据库应

ORACLE ERP相关整理汇总

摘自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763104687270e54f7633f8883492c81c40884642c101a39feed7c63525483846b6777ac4f5aeefb3765377523a09bbfd20c82e5866d72c8713b2d5cd5104c840eafba11658337902bb6e947f0bb802594dac5d2af0b008c044521d3ae9c5b700

Oracle权限相关查询

Oracle权限相关查询着实视图有点多,记录下常用的语句,方便查询:1.查看所有用户:  select * from dba_users;  select * from all_users;  select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):  select * from dba_sys_privs;  select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限  selec

oracle表相关

堆表 数据以堆的形式管理,增加数据时会使用段中找到的第一个能放下数据的自由空间,我们见到的绝大部分的表都是堆表.堆表是数据库的默认表类型. 最简单的情况是 create table test (c1 varchar2(10),c2 varchar2(24),c3 number(9,3)) ; 然后使用tom kyte的方法,尽可能简单的创建表,调用dbms_metadata.get_ddl函数,查看详细定义,然后再根据这个详细版本,定制自己想要的版本. set long 5000 select

oracle性能相关

SQL执行过程 1.应用层-应用向数据库发生SQL请求 2.数据库代码层-oracle软件解析并优化SQL,管理锁.安全.并发等 3.内存层-SGA(数据缓存).PGA(排序和散列 ) 4.磁盘层-读写表.索引的数据,读写临时工作区,重做以及其他日志IO 优化过程 1.最小化请求 优化应用代码,如缓存技术 数据结构化以免数据库过载 保证网络质量 优化数据库物理设计,如索引.分区 优化查询器 优化单条SQL语句性能 2.降低挣用 3.降低物理IO 确保给oracle足够的内存 开启AMM 适当调整

Oracle用户相关命令

Oracle用户是一个数据库对象,用户所有的操作默认在自己的模式下进行,模式是一个用户所拥有的数据库对象的集合,每个用户都有自己的模式,用户和模式之间是一一对应的,模式的名字与用户名相同.例如,SCOTT用户的模式为SCOTT,在这个模式中包含了用户SCOTT拥有的所有数据库对象,包括表,视图,索引,存储程序等.用户的数据库对象和数据分布在表空间中,每个用户都有默认的表空间,如果建立用户时不指定表空间,系统默认将SYSTEM表空间为用户默认表空间. Oracle数据库有三类用户,一类是sysdb