存储过程调试及跨用户授权

作者: stone305585 | 来源:发表于2017-06-22 11:38 被阅读41次

调试

1:存储过程右键:add debug information

存储过程debug.jpg

2:存储过程右键:test

执行存储过程.jpg

3:点击小窗口左上角 start debugger

startdebug.jpg

4:开始右边的debug,正常程序调试,在存储过程的代码里点击左边行号还可以设置断点。

调试.jpg

跨库授权

如果存储过程中涉及多个库的表,有时会提示权限不足,oracle存储过程分为两种:DR(Definer's Rights) Procedure 和IR(Invoker's Rights) Procedure.以下两段话为转载:
1:定义者权限:定义者权限PL/SQL程序单元是以这个程序单元拥有者的特权来执行它的,也就是说,任何具有这个PL/SQL程序单元执行权的用户都可以访问程序中的对象。所有具有执行权的用户都有相同的访问权限,在定义者权限下,执行的用户操作的schema为定义者,所操作的对象是定义者在编译时指定的对象。在定义者(definer)权限下,当前用户的权限为角色无效情况下所拥有的权限。

2:调用者权限:调用者权限是指当前用户(而不是程序的创建者)执行PL/SQL程序体的权限。这意味着不同的用户对于某个对象具有的权限很可能是不同的,这个思想的提出,解决了不同用户更新不同表的方法。在调用者权限下,执行的用户操作的schema为当前用户,所操作的对象是当前模式下的对象。在调用者(invoker)权限下,当前用户的权限为当前所拥有的权限(含角色)。

** 所以 **
ORACLE默认为定义者权限,定义者权限在存储过程中ROLE无效,需要显式授权。
执行sql和pl/sql的默认情况下,都是以定义者权限执行的,这也是我们最常用的权限模式,例如在存储过程中调用其他用户的表,但是定义存储过程的当前用户没有显示访问该表的权限,即使当前用户具有dba角色,编译过程中也会出现权限不足的问题,因为role无效。显示授权需要更换用户给当前用户授权

--例子,其中ZI_BJ为需要授权的用户,授予ZH_TEMP3下的DIM_REPORT_XZQH权限
GRANT SELECT  ON ZH_TEMP3.DIM_REPORT_XZQH TO ZI_BJ;

相关文章

  • 存储过程调试及跨用户授权

    调试 1:存储过程右键:add debug information 2:存储过程右键:test 3:点击小窗口左上...

  • 存储过程用户授权及debug

    使用pl/sql创建存储过程,具体创建代码已经写过,这里不再赘述。 具体创建过程如下: 找到Procedures,...

  • Windows环境下--关于忘记oracle 11g的syste

    问题描述:在scott用户下,使用PL/SQL Developer调试存储过程,无法debug,窗口弹出错误:Or...

  • C# Web直接上传视频或者文件到OSS

    代码 解决本地调试跨域问题 设置跨域规则:找到OSS存储——Bucket列表——基础设置——跨域访问——设置 暴露...

  • 快速调试存储过程

    在应用开发当中是否该使用存储过程?这篇文章不争论这个问题。但你接手一个项目,已经使用了大量的存储过程,如果你需要修...

  • sql developer 调试存储过程

    为了在sql developer 中调试存储过程,需要有三个条件 1.用户(数据库User)需要有Debug权限 ...

  • 微信小程序:微信用户登录业务逻辑

    场景一:首次访问 检查本地是否存储用户信息(否) 页面显示微信用户授权按钮 用户点击按钮允许授权使用用户信息 页面...

  • 积累

    final修饰的变量会指向一块固定的内存, 这块内存中的值不能改变. 存储过程 禁止使用存储过程,存储过程难以调试...

  • 创建用户及授权

    创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'pas...

  • Linux下权限管理

    1.用户及用户组管理 /etc/passwd 存储用户账号 /etc/group 存储组账号 /etc/...

网友评论

    本文标题:存储过程调试及跨用户授权

    本文链接:https://www.haomeiwen.com/subject/yizxcxtx.html