知识大全 了解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存储过程分页代码是怎么实现的我们来看下实验小编为您整理的方法吧! /*******存储过程分页代码**********/ 包头 createorreplacepackagepck
PL/SQL中为我们提供了调试存储过程的功能可以帮助你完成存储过程的预编译与测试 点击要调试的存储过程右键选择TEST 如果需要查看变量当然调试都需要在右键菜单中选择Adddebuginfor
一无返回值的存储过程 存储过程为 CREATEORREPLACEPROCEDURETESTA(PARAINVARCHARPARAIN VARCHAR)
在看了众多的分页存储过程以后发现都是针对sqlserver的而没有oracle的因此想写一个关于oracle的存储过程因为我用到的数据库是oracleoracle分页存储过程的思路于sqlserv
用存储过程创建数据表:创建时注意必须添加authidcurrent_user如果创建的表已存在存储过程继续执行但如不不加此关键语句存储过程将出现异常这个语句相当于赋权限例创建语句如下 复制代码代
Oracle存储过程返回数组的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! oracle存
执行oracle存储过程如下: OracleConnectioncon=newOracleConnection(strcon); &
Ibatis调用Oracle存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近开始接触
在Oracle中使用Java存储过程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java存储
createtablestuInfo ( stuIDintprimarykey stuNamevarchar() ) createorreplaceprocedureproc is