`

Oracle存储过程中提示“权限不足”的解决办法

阅读更多


我们知道,用户拥有的role权限在存储过程是不可用的。如:
SQL> select * from dba_role_privs where grantee='SUK';
GRANTEE GRANTED_ROLE ADMIN_OPTION DEFAULT_ROLE
------------ ------------ ------------ ------------
SUK DBA NO YES
SUK CONNECT NO YES
SUK RESOURCE NO YES
--用户SUK拥有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: 在"SUK.P_CREATE_TABLE", line 3
ORA-06512: 在line 1
--可以看到,即使拥有DBA role,也不能创建表。role在存储过程中不可用。
--遇到这种情况,我们一般需要显式进行系统权限,如grant create table to suk;
--但这种方法太麻烦,有时候可能需要进行非常多的授权才能执行存储过程
--实际上,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
--已经可以执行了。
  • 大小: 25 KB
分享到:
评论

相关推荐

    利用windows任务计划调用oracle存储过程

    结合Oracle数据库,我们可以利用任务计划程序调用Oracle存储过程,实现定时的数据处理、备份或其他业务逻辑。本文将深入探讨如何实现这一功能。 首先,理解Oracle存储过程是关键。存储过程是预编译的SQL和PL/SQL...

    Oracle 授权 ORA-00990: 权限缺失或无效

    在本篇文章中,我们将深入探讨这个问题的原因、解决方案以及如何正确地授权和管理Oracle数据库的权限。 1. **错误原因**: - 用户未被授予执行特定操作所需的系统权限,例如UPDATE、DELETE、SELECT或INSERT。 - ...

    Oracle Scott创建视图权限不足解决办法

    然而,在尝试创建视图时,如果用户没有相应的权限,就会遇到错误提示"ORA-01031:权限不足"。针对这个问题,我们可以采取以下步骤来解决。 首先,我们需要理解“grant”语句在Oracle中的作用。`GRANT`语句是用来授予...

    oracle linux7.2 安装oracle 11.2.0.4全过程图文附各种bug解决方案

    在本文中,我们将深入探讨如何在Oracle Linux 7.2环境下安装Oracle 11.2.0.4数据库,同时解决可能出现的各种问题。首先,确保你拥有足够的系统资源,包括至少6.5GB的空间用于Oracle Grid Infrastructure(Grid home...

    PLSQL中存储过程的建立,导出,导入,使用

    在Oracle数据库中,存储过程主要采用PL/SQL语言编写。相比传统的SQL命令,存储过程具有以下优势: - **性能优化**:存储过程被编译一次后,其执行计划将被缓存,后续调用时可以直接使用,从而提高执行效率。 - **...

    oracle权限管理

    本文将详细介绍Oracle中的权限管理概念、不同类型的权限及其授予与收回机制。 #### 基础概念 - **权限**:在Oracle数据库中,权限是指允许用户执行特定操作的权利。这些操作可以是创建对象(如表、视图等)、查询...

    Oracle安装过程中物理内存检查及临时temp空间不足问题解决

    内存和临时空间不足会导致Oracle安装过程中的先决条件检查无法通过,出现错误提示,例如PRVF-7531和PRVF-7563等。解决这些错误,需要对系统配置进行调整,确保有足够的物理内存和临时空间供Oracle使用。 首先,物理...

    oracle相关权限设置

    ### Oracle权限管理详解 ...以上就是关于Oracle权限设置的相关知识点,包括如何连接数据库、修改密码、授予表权限、存储过程权限以及SQL*Plus的不同登录方式。希望这些信息能帮助您更好地管理和维护Oracle数据库。

    如何解决Oracle杀死死锁进程

    解决 Oracle 杀死死锁进程 Oracle 杀死死锁进程是数据库管理员经常遇到的问题,本文将介绍解决 Oracle 杀死死锁进程的方法。 在 Oracle 中,死锁是指两个或多个会话在等待对方释放资源,从而导致互相阻塞的情况。...

    oracle安装过程的详细图解

    3. **设置权限**:分配权限给用户,允许他们访问特定的表、视图或存储过程。 4. **备份与恢复**:配置定期备份策略,确保数据安全;同时学习如何在出现问题时进行数据库恢复。 四、连接Oracle 9i 1. **客户端安装**...

    解决oracle安装完成后DBCA无法执行问题

    在Oracle数据库的安装过程中,有时会遇到DBCA(Database Configuration Assistant)无法正常执行的问题,这通常是由于系统环境或安装过程中的某些配置不正确导致的。本文将针对标题和描述中提到的问题,即在CentOS...

    Win7 x64系统Oracle win64_11gR2 安装及出现的问题解决办法

    在Windows 7 64位操作系统中安装Oracle Database 11g Release 2(win64_11gR2)可能会遇到一些挑战,但通过理解安装过程中的关键步骤和可能遇到的问题,我们可以确保顺利进行。以下是安装Oracle 11g R2的详细步骤...

    把mysql数据库中的数据导入到oracle数据库中

    - 在迁移过程中,定期检查Oracle的目标表空间是否足够,避免因空间不足而导致迁移失败。 - 测试迁移后的数据完整性是非常重要的,可以通过查询、统计等方式确保数据的一致性和正确性。 通过以上详细的步骤和注意...

    通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求

    此外,为了能够通过存储在Oracle钱包中的凭据验证自己,用户还需要具有`use-client-certificates`或`use-passwords`权限。 #### 常量与数据类型 `UTL_HTTP`定义了一系列常量和数据类型来支持HTTP操作,例如`METHOD...

    oracle定时任务

    Oracle定时任务,也被称为Oracle数据库的调度作业,是Oracle数据库管理系统提供的一种功能,允许用户预定义一系列操作,如运行SQL脚本、数据备份或数据清理等,并设定在特定时间自动执行。这种机制对于自动化数据库...

    RedHat 6 下Oracle 11g安装过程

    - 设置适当的文件系统权限,特别是对于Oracle安装目录和数据文件存储的位置。 9. **Oracle安装**: - 一旦所有的前期工作都完成后,就可以开始Oracle 11g的安装。通常,这会涉及到运行图形化的安装向导,按照提示...

    oracle安装失败处理方法

    在IT行业中,Oracle数据库是广泛应用于企业级存储和管理数据的重要工具。然而,安装过程有时可能会遇到各种问题,导致安装失败。这篇博文“oracle安装失败处理方法”将为我们揭示一些常见的错误及其解决策略。 首先...

    Veeam Rman Plugin for Oracle安装和使用手册.docx

    该插件可以将Oracle数据库备份到VEEAM存储库中,提供了一个可靠的数据保护解决方案。 系统兼容要求 VEEAM Rman Plugin for Oracle支持多种操作系统,包括Windows和Linux。同时,该插件也支持多种Oracle数据库版本...

    oracle在linux中安装

    这个过程涉及到了多个关键步骤和技术细节,包括但不限于系统配置、安装过程中的问题解决、数据库创建以及网络配置等。对于初次接触Oracle在Linux环境下安装的用户来说,理解并掌握这些知识点是非常重要的。

Global site tag (gtag.js) - Google Analytics