- 浏览: 86929 次
- 性别:
- 来自: 北京
-
文章分类
56.精细访问控制使用户可以使用函数、策略实现更加细微的安全访问控制。如果使用精细访问控制,那么当在客户端发出SQL语句(SELECT、INSERT、UPDATE、DELETE)时,Oracle会自动在这些SQL语句后追加谓词(where子句),并执行新的SQL语句。通过使用精细访问控制,可以使不同数据库用户在访问相同表时返回不同数据。
应用上下文(Application Context)用于存放用户会话的相关属性信息,使用应用上下文可以定义、设置和访问应用属性。使用精细访问控制时,必须建立应用上下文。DBA可以使用CREATE CONTEXT命令手工建立专门的应用上下文。
USERENV是Oracle为其应用程序提供的默认应用上下文。常用属性如下:
TERMINAL
LANGUAGE
NLS_DATE_FORMAT
SESSION_USER
CURRENT_SCHEMA
DB_NAME
HOST
OS_USER
自定义应用上下文
CREATE CONTEXT contextname USING username.packagename
取得上下文属性值
Select sys_context(‘userenv’,’language’) from dual;
设置上下文属性
自定义上下文没有任何默认属性,其属性需要使用包DBMA_SESSION中的过程SET_CONTEXT进行设置。
EXEC DBMS_SESSION.SET_CONTEXT(‘empenv’,’deptno’,20);
实现精细访问控制
建立应用上下文
create or replace context empenv using scott.ctx;
建立包过程设置应用上下文属性
create or replace package scott.ctx as
procedure set_deptno;
end;
create or replace package body scott.ctx as
procedure set_deptno is
id number;
begin
if sys_context('userenv','session_user')='JONES' then
dbms_session.set_context('empenv','deptno',20);
elsif sys_context('userenv','session_user')='BLAKE' then
dbms_session.set_context('empenv','deptno',30);
else
dbms_session.set_context('empenv','deptno',10);
end;
end;
建立登录触发器,必须以sys用户身份建立登录触发器
create or replace trigger login_tring
after logon on database call scott.ctx.set_deptno
建立策略函数
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
d_predicate varchar2(2000);
begin
if user not in ('SYS','SYSTEM','SCOTT') then
d_predicate := 'deptno = sys_context("empenv","deptno")';
return d_predicate;
end if;
return '1=1';
end;
end;
增加策略,定义对象、策略、策略函数以及SQL语句之间的对应关系
execute dbms_rls.add_policy('scott','emp','emp_policy','scott','emp_security.emp_sec','select');
发表评论
-
undo与事务剖析
2015-03-09 22:13 01、首先修改几条记录 ... -
Oracle限制IP访问功能-黑白名单
2015-03-09 21:03 1911由于业务需要,需要使用白名单限制用户登录数据库的地址,决定使 ... -
Oracle10g系统管理20
2011-10-09 08:50 66785.DBVERIFY用于验证数据文件、表段或索引段是否存在损 ... -
Oracle10g系统管理19
2011-10-09 08:49 76381.LogMiner工具分析DML和DDL操作确定数据库的逻 ... -
Oracle10g系统管理18
2011-10-09 08:49 90976.EXP和IMP是客户端工具程序,既可以在客户端使用,也可 ... -
Oracle10g系统管理17
2011-10-09 08:49 65172.簇是存储表数据的一种可选方法,它由共享相同数据块的一组表 ... -
Oracle10g系统管理16
2011-10-08 14:20 72968.分区表:范围分区、散列分区、列表分区、组合分区范围分区c ... -
Oracle10g系统管理15
2011-10-08 14:20 84464.索引分类:存储方式 ... -
Oracle10g系统管理14
2011-10-08 14:18 73161.设计表规划表的类型 ... -
Oracle10g系统管理13
2011-10-08 14:18 77059.审计分类特权用户审计:审计特权用户所执行的数据库操作,设 ... -
Oracle10g系统管理12
2011-10-07 08:38 89957.PROFILE是口令限制、资源限制的命名集合。在客户端将 ... -
Oracle10g系统管理10
2011-10-06 08:54 68453.create user devep identified ... -
Oracle10g系统管理9
2011-10-06 08:53 62451.UNDO数据的作用回退事务读一致性事务恢复闪回查询 ... -
Oracle10g系统管理8
2011-10-06 08:53 70749.建立表空间create tablespace user0 ... -
Oracle10g系统管理7
2011-10-06 08:52 72945.重做日志用于记载事务操作所引起的数据库变化。 重做入口 ... -
Oracle10g系统管理6
2011-10-05 08:20 72039.控制文件用于记录和维护数据库的物理结构。当启动例程并打开 ... -
Oracle10g系统管理5
2011-10-05 08:20 71234.数据字典是Oracle数据库最重要的组成部分,它提供了数 ... -
Oracle10g系统管理4
2011-10-04 11:45 56030.建立数据库步骤:建 ... -
Oracle10g系统管理3
2011-10-04 11:44 68622.管理初始化参数startup spfile=$ORACL ... -
Oracle10g系统管理2
2011-10-02 13:43 84813.数据库物理结构数据 ...
相关推荐
在深入探讨Oracle 10g系统管理之前,我们首先要理解Oracle数据库的基本架构。Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 10g是Oracle公司推出的一个重要版本,...
Oracle 10g 系统管理员简明教程目录 本教程目录涵盖了 Oracle 10g 系统管理员需要掌握的知识点,包括 Oracle 10g 的安装、配置、数据库结构、SQL 语句、PL/SQL 编程等方面。 安装和配置 * Oracle 10g 的安装类型...
Oracle 10G是Oracle公司在2003年发布的关系型数据库管理系统,而Oracle 11G则是在2007年推出的升级版。这两个版本之间的主要差异体现在性能、可扩展性、安全性以及管理功能等方面。 1. OCI接口:OCI提供了丰富的API...
精通oracle 10g系统管理 Oracle本书是专门为Oracle数据库管理员提供的系统管理手册,通过学习本书,读者不仅可以掌握Oracle数据库的基本管理方法,还可了解并掌握Oracle Database 10g所提供的新特征,包括 Web页面的OEM...
如何更好地管理ORACLE 10G数据库,通过这本精通oracle 10g系统管理你可以了解到怎么成为ORACLE 10G高手。
在IT行业中,数据库管理系统是核心组件之一,Oracle 11g是Oracle公司的一款旗舰级数据库产品,被广泛应用于企业级应用。在这个“龙蜥anolis系统oracle11g安装包”中,我们聚焦于在龙蜥Anolis操作系统上安装Oracle 11...
Oracle 10g数据库管理系统是Oracle公司发布的一款重要的企业级数据库产品,其在数据库领域具有广泛的应用和深远的影响。本书“Oracle 10g数据库管理艺术”无疑是对这一技术的深度解析,旨在帮助读者掌握Oracle 10g的...
《Oracle10g系统管理员使用手册》是一本深入解析Oracle10g数据库管理系统运维的权威指南,主要面向那些需要管理、监控和优化Oracle10g环境的系统管理员。Oracle10g是Oracle公司推出的数据库产品,它在性能、可扩展性...
Oracle 11g 官方中文文档 包括一下部分文档: Oracle 11g:ORACLE ACTIVE DATA GUARD.pdf Oracle Database 11g 高可用性.pdf Oracle 数据库 11g :真正应用测试与可...适用于Oracle数据库11g的Oracle变更管理包.pdf
### Oracle 11g系统结构详解 #### 一、Oracle 11g系统概述 Oracle 11g作为Oracle公司推出的第11代数据库产品,不仅继承了Oracle 10g的强大特性,还在此基础上增加了许多新功能和改进,使得其在数据管理和处理方面...
精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf
Oracle 10g(10g代表10th Generation,即第十代)是Oracle公司发布的一个重要版本,发布于2004年。这一版本在之前的版本基础上进行了大量的改进和优化,引入了许多新特性,特别是在网格计算方面有着显著的进步。以下...
ArcSDE 10.2 for Oracle 10g 和 11g 是Esri公司推出的用于管理和分发地理空间数据的中间件产品,它在Windows平台上提供了与Oracle数据库系统的集成。ArcSDE使得GIS(地理信息系统)软件,如ArcGIS,能够高效地访问和...
Oracle 10g系统管理是数据库管理员(DBA)在企业数据管理中不可或缺的技能。这本书籍"精通Oracle10g系统管理"旨在帮助初学者快速掌握Oracle 10g的相关知识,通过清华大学计算中心的培训资料PPT,你可以深入理解Oracle...
这个“Oracle10g系统管理”资料可能是为了帮助用户深入理解和掌握Oracle10g的系统管理和维护技巧。下面将对Oracle10g的主要特点、系统管理的核心内容以及可能在教材中涉及的关键知识点进行详细阐述。 一、Oracle10g...
Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...
Oracle是全球领先的数据库管理系统,11g和10g是其两个不同版本。11g引入了更多高级特性,如自动存储管理(ASM)、实时应用集群(RAC)、数据加密等,提高了性能和可用性。10g则以其稳定性著称,适合中小规模的应用...
Oracle 11g是甲骨文公司发布的一款重要的数据库管理系统版本,拥有强大的数据处理能力和安全性。client是指Oracle 11g的客户端软件,它是安装在用户计算机上用于访问和操作远程Oracle数据库的工具。客户端软件通过...
Oracle数据库是全球广泛使用的数据库管理系统,本文将详细介绍如何安装Oracle10g和Oracle11g的客户端。安装过程分为几个步骤,包括配置、测试和用户管理。 首先,我们来看Oracle10g的安装。在开始之前,确保你的...