`
AllenHU0320
  • 浏览: 86929 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle10g系统管理11

 
阅读更多

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');

分享到:
评论

相关推荐

    精通oracle 10g系统管理学习笔记

    在深入探讨Oracle 10g系统管理之前,我们首先要理解Oracle数据库的基本架构。Oracle数据库是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导地位。Oracle 10g是Oracle公司推出的一个重要版本,...

    Oracle 10g 系统管理员简明教程目录

    Oracle 10g 系统管理员简明教程目录 本教程目录涵盖了 Oracle 10g 系统管理员需要掌握的知识点,包括 Oracle 10g 的安装、配置、数据库结构、SQL 语句、PL/SQL 编程等方面。 安装和配置 * Oracle 10g 的安装类型...

    oracle10G和oracle11G的OCI.dll

    Oracle 10G是Oracle公司在2003年发布的关系型数据库管理系统,而Oracle 11G则是在2007年推出的升级版。这两个版本之间的主要差异体现在性能、可扩展性、安全性以及管理功能等方面。 1. OCI接口:OCI提供了丰富的API...

    精通oracle 10g系统管理(高清PDF)

    精通oracle 10g系统管理 Oracle本书是专门为Oracle数据库管理员提供的系统管理手册,通过学习本书,读者不仅可以掌握Oracle数据库的基本管理方法,还可了解并掌握Oracle Database 10g所提供的新特征,包括 Web页面的OEM...

    oracle 10g系统管理

    如何更好地管理ORACLE 10G数据库,通过这本精通oracle 10g系统管理你可以了解到怎么成为ORACLE 10G高手。

    龙蜥anolis系统oracle11g安装包

    在IT行业中,数据库管理系统是核心组件之一,Oracle 11g是Oracle公司的一款旗舰级数据库产品,被广泛应用于企业级应用。在这个“龙蜥anolis系统oracle11g安装包”中,我们聚焦于在龙蜥Anolis操作系统上安装Oracle 11...

    Oracle 10g数据库管理艺术

    Oracle 10g数据库管理系统是Oracle公司发布的一款重要的企业级数据库产品,其在数据库领域具有广泛的应用和深远的影响。本书“Oracle 10g数据库管理艺术”无疑是对这一技术的深度解析,旨在帮助读者掌握Oracle 10g的...

    Oracle10g系统管理员使用手册pdf

    《Oracle10g系统管理员使用手册》是一本深入解析Oracle10g数据库管理系统运维的权威指南,主要面向那些需要管理、监控和优化Oracle10g环境的系统管理员。Oracle10g是Oracle公司推出的数据库产品,它在性能、可扩展性...

    oracle11g官方中文文档完整版

    Oracle 11g 官方中文文档 包括一下部分文档: Oracle 11g:ORACLE ACTIVE DATA GUARD.pdf Oracle Database 11g 高可用性.pdf Oracle 数据库 11g :真正应用测试与可...适用于Oracle数据库11g的Oracle变更管理包.pdf

    oracle11g系统结构说明

    ### Oracle 11g系统结构详解 #### 一、Oracle 11g系统概述 Oracle 11g作为Oracle公司推出的第11代数据库产品,不仅继承了Oracle 10g的强大特性,还在此基础上增加了许多新功能和改进,使得其在数据管理和处理方面...

    精通oracle10g系统管理.pdf

    精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf 精通oracle10g系统管理.pdf

    oracle 11g ,10g软件资源 百度云下载

    Oracle 10g(10g代表10th Generation,即第十代)是Oracle公司发布的一个重要版本,发布于2004年。这一版本在之前的版本基础上进行了大量的改进和优化,引入了许多新特性,特别是在网格计算方面有着显著的进步。以下...

    ArcSDE 10.2 FOR Oracle10g、11g安装包

    ArcSDE 10.2 for Oracle 10g 和 11g 是Esri公司推出的用于管理和分发地理空间数据的中间件产品,它在Windows平台上提供了与Oracle数据库系统的集成。ArcSDE使得GIS(地理信息系统)软件,如ArcGIS,能够高效地访问和...

    精通Oracle10g系统管理

    Oracle 10g系统管理是数据库管理员(DBA)在企业数据管理中不可或缺的技能。这本书籍"精通Oracle10g系统管理"旨在帮助初学者快速掌握Oracle 10g的相关知识,通过清华大学计算中心的培训资料PPT,你可以深入理解Oracle...

    Oracle10g系统管理

    这个“Oracle10g系统管理”资料可能是为了帮助用户深入理解和掌握Oracle10g的系统管理和维护技巧。下面将对Oracle10g的主要特点、系统管理的核心内容以及可能在教材中涉及的关键知识点进行详细阐述。 一、Oracle10g...

    oracle 10g _64x

    Oracle 10g是Oracle公司推出的数据库管理系统的一个版本,它主要针对64位操作系统环境设计。Oracle数据库系统在IT行业中有着广泛的应用,尤其在大型企业、金融机构和互联网公司的数据存储和管理方面扮演着核心角色。...

    学生管理系统(教务系统)(基于oracle11g 10g)

    Oracle是全球领先的数据库管理系统,11g和10g是其两个不同版本。11g引入了更多高级特性,如自动存储管理(ASM)、实时应用集群(RAC)、数据加密等,提高了性能和可用性。10g则以其稳定性著称,适合中小规模的应用...

    oracle 11g client 安装包 客户端

    Oracle 11g是甲骨文公司发布的一款重要的数据库管理系统版本,拥有强大的数据处理能力和安全性。client是指Oracle 11g的客户端软件,它是安装在用户计算机上用于访问和操作远程Oracle数据库的工具。客户端软件通过...

    安装oracle10g与oracle11g客户端

    Oracle数据库是全球广泛使用的数据库管理系统,本文将详细介绍如何安装Oracle10g和Oracle11g的客户端。安装过程分为几个步骤,包括配置、测试和用户管理。 首先,我们来看Oracle10g的安装。在开始之前,确保你的...

Global site tag (gtag.js) - Google Analytics