当前位置: 首页 > news >正文

在存储过程中拥有role的权限(Authid Current_User)

在存储过程中拥有role的权限(Authid Current_User)

大家在创建存储过程当中,往往遇到没有权限的错误,实际上其实已经被授予dba角色,原因是什么呢?一定要明确的 是,用户拥有的role权限在存储过程是不可用的。如:

SQL> select * from dba_role_privs where grantee='TEST';

GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------ ------------ ------------ ------------
TEST DBA NO YES
TEST CONNECT NO YES
TEST RESOURCE NO YES

--用户TEST拥有DBA这个role

--再创建一个测试存储过程:
create or replace procedure p_create_table
is
begin
Execute Immediate 'create table create_table(id int)';
end p_create_table;

--然后测试
SQL> exec p_create_table;

begin p_create_table; end;

ORA-01031: 权限不足
ORA-06512: 在"TEST.P_CREATE_TABLE", line 3
ORA-06512: 在line 1

--可以看到,即使拥有DBA role,也不能创建表。role在存储过程中不可用。
--遇到这种情况,我们 一般需要显式进行系统权限,如grant create table to test;
--但这种方法太麻烦,有时候可能需要进行非常多的授权才 能执行存储过程
--实际上,oracle给我们提供了在存储过程中使用role权限的方法:
--修改存储过程,加入Authid Current_User时存储过程可以使用role权限。
create or replace procedure p_create_table
Authid Current_User is
begin
Execute Immediate 'create table create_table(id int)';
end p_create_table;

--再尝试执行:
SQL> exec p_create_table;

PL/SQL procedure successfully completed

--已经可以执行了。

相关文章:

  • 渐变维度(Slowly Changing Dimension)及其处理方法
  • 获取url值
  • 1.Angular框架-angular介绍与基本使用,MVC模式介绍
  • Oracle性能调优-优化排序操作
  • 鲜为人知的软件项目管理原则
  • 业界经典语录
  • 数据仓库设计的思考
  • ubuntu下安装Java并设置环境变量
  • arguments、this指针、call和apply、bind语法
  • ubuntu修改主机名
  • SSH设置不输入密码登陆方式
  • vb编程代码大全
  • ubuntu安装配置hadoop和hive
  • 励志
  • C#时间操作类
  • [LeetCode] Wiggle Sort
  • Android单元测试 - 几个重要问题
  • Angular6错误 Service: No provider for Renderer2
  • docker-consul
  • Effective Java 笔记(一)
  • magento 货币换算
  • react 代码优化(一) ——事件处理
  • React 快速上手 - 07 前端路由 react-router
  • React-redux的原理以及使用
  • scrapy学习之路4(itemloder的使用)
  • SpriteKit 技巧之添加背景图片
  • tab.js分享及浏览器兼容性问题汇总
  • webpack+react项目初体验——记录我的webpack环境配置
  • 阿里云前端周刊 - 第 26 期
  • 分布式事物理论与实践
  • 机器学习 vs. 深度学习
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 巧用 TypeScript (一)
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 听说你叫Java(二)–Servlet请求
  • 我这样减少了26.5M Java内存!
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 携程小程序初体验
  • 转载:[译] 内容加速黑科技趣谈
  • 2017年360最后一道编程题
  • MyCAT水平分库
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​你们这样子,耽误我的工作进度怎么办?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #QT(TCP网络编程-服务端)
  • $.ajax()
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (10)ATF MMU转换表
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (分布式缓存)Redis持久化
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)