知识大全 了解Oracle存储过程中的角色

Posted 权限

篇首语:枕上从妨一夜睡,灯前读尽十年诗。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 了解Oracle存储过程中的角色相关的知识,希望对你有一定的参考价值。

了解Oracle存储过程中的角色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  角色(数据库权限集)与存储过程 函数和数据包之间的交互方式是Oracle安全模型中最难以处理的一个部分 Oracle中的对象权限可以直接或通过角色间接授予用户

  假设一个HR用户向用户ABEL授予EMPLOYEES表的一些许可

  GRANT select insert update delete

  这个语句直接把上述四个权限授予给用户ABEL 另一方面 假设一名HR用户这样做

  GRANT select insert update delete ON employees TO hr_role;

  如果ABEL已被授予HR_ROLE角色 那么他现在通过这个角色就直接拥有了以上权限

  不管使用哪种方法 现在ABEL都拥有了HR EMPLOYEES表的SELECT权限 如果ABEL通过SELECT语句直接从表中选择数据 那么他如何获得许可并不重要

  但是 如果ABEL试图建立从这个表中选择的存储过程 函数或数据包 那么他是直接获得许可 还是通过角色取得许可就存在很大差异

  Oracle要求直接向用户授予一个存储过程中的非拥有对象许可 在编辑过程中角色被临时关闭 用户不能访问授予给他们的任何内容 这样做是出于性能和安全考虑

  角色可以通过SET ROLE命令动态激活和禁用 如果Oracle需要不断检查哪个角色和许可当前处于激活状态 则会带来巨大的管理负担

  下面的代码是一个更新HR雇员文件的简短存储过程(这段代码用一个同义字EMPLOYEES来代表HR EMPLOYEES) 当ABEL在第一种情况下试图用直接权限编辑这个文件时 编辑取得成功 当他在第二种情况下仅用间接权限编辑时 编辑失败

  CREATE OR REPLACE PROCEDURE update_emp (

  p_employee_id IN NUMBER

   p_salary IN NUMBER

  )

  AS

  v_department_idemployees department_id%TYPE;

  BEGIN

  SELECT department_id INTO v_department_id

  FROM employees

  WHERE employee_id = p_employee_id;

  UPDATE employees

  SET salary = p_salary

  WHERE employee_id = p_employee_id;

  IF v_department_id = THEN

  UPDATE local_employees

  SET salary = p_salary

  WHERE employee_id = p_employee_id;

  END IF;

  END;

  /

cha138/Article/program/Oracle/201311/17438

相关参考

知识大全 oracle存储过程分页代码

  oracle存储过程分页代码是怎么实现的我们来看下实验小编为您整理的方法吧!  /*******存储过程分页代码**********/  包头  createorreplacepackagepck

知识大全 如何调试oracle存储过程

  PL/SQL中为我们提供了调试存储过程的功能可以帮助你完成存储过程的预编译与测试  点击要调试的存储过程右键选择TEST  如果需要查看变量当然调试都需要在右键菜单中选择Adddebuginfor

知识大全 java调用oracle存储过程

  一无返回值的存储过程  存储过程为  CREATEORREPLACEPROCEDURETESTA(PARAINVARCHARPARAIN VARCHAR) 

知识大全 一个简单的oracle分页存储过程的实现和调用

  在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv

知识大全 oracle存储过程创建表分区实例

  用存储过程创建数据表:创建时注意必须添加authidcurrent_user如果创建的表已存在存储过程继续执行但如不不加此关键语句存储过程将出现异常这个语句相当于赋权限例创建语句如下  复制代码代

知识大全 Oracle存储过程返回数组的方法

Oracle存储过程返回数组的方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  oracle存

知识大全 ado.net执行oracle 存储过程

 执行oracle存储过程如下:   OracleConnectioncon=newOracleConnection(strcon);  &

知识大全 Ibatis调用Oracle存储过程

Ibatis调用Oracle存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最近开始接触

知识大全 在Oracle中使用Java存储过程

在Oracle中使用Java存储过程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java存储

知识大全 oracle存储过程的用法

  createtablestuInfo  (  stuIDintprimarykey  stuNamevarchar()  )  createorreplaceprocedureproc  is