当前位置:首页 » 存储配置 » 存储过程权限不足

存储过程权限不足

发布时间: 2023-02-05 07:00:04

1. oracle 存储过程 权限问题 PL/sql: ORA-01031: 权限不足

权限不足就是说你还没有连接到服务器,或者你连接过了又断开了,再次连接上了就该不会出现权限问题。

2. PL/SQL建好存储过程,编译也成功了,但是用execute执行的的 提示权限不足(ora-01031)

用你有dba权限的用户执行这个试试。

;

如果还报错就要看代码了。

3. oracle 测试存储过程 是哪个权限

Oracle规定,在默认的情况下,在调用存储过程用户的角色不起作用,即在执行存储过程时只有Public权限。所以在调用Create table时,会有权限不足的提示。
只需要使用IR Procere就能很快解决问题啦,把代码修改为如下:

CREATE OR REPLACE PROCEDURE TestProc AUTHID current_user
IS
flag number;
BEGIN
select count(*) into flag from all_tables where table_name='TEMP3';
if (flag=0) then
execute immediate 'create global temporary table TEMP3 on commit preserve rows as select * from BUSI_ECONTRACT';
else
execute immediate 'insert into TEMP3 select * from BUSI_ECONTRACT';
end if;

END ;
执行存储过程,顺利通过。

4. 我的插入语句能够通过,但把它放在存储过程里就不行了,报错为ORA-01031: 权限不足

grant select any catalog to user;

在存储过程中的有些操作需要显式地赋予权限, 即便单独运行是可以的.

5. oracle 创建存储过程部分表编译错误是否表空间、权限不足

你先查看错误是什么啊,好像有个什么show error的吗?
有可能是权限问题,你当前用户需要获得该表的使用权限,你上面列出来的是系统权限,还有对象的权限,你针对哪个对象有什么样的权限,需要授权,同样使用grant 授权,列如:grant select on table to user;记得没错就是这样的。还有就是该用户也要用相应表空间的使用权,这个就是修改用户的定义,指定能使用该表空间吧,没有看参考,提供这些给你参考哈!

6. oracle 在存储过程中用动态sql创建序列为何会遇到权限不足的问题呢

create or replace procere
create sequence
都需要权限。。。
用sysdba给该用户grant一个吧。。
GRANT EXECUTE ANY PROCEDURE TO 普通用户 WITH ADMIN OPTION;
GRANT RESOURCE TO 普通用户; --这个已经包含了序列的权限

7. 创建存储过程 老师出现 ORA-01031: 权限不足

你这个表USER01在system用户下存在吗?

不存在的话是要报错的

用system用户给你的gong用户赋权

grantconnect,resource,dbatogong;

这样应该基本就差不多了

8. ORA-01031: 权限不足

汗~~
GRANT create any table TO scott;
sequence 是序列,你试着给它创建序列的权限有毛用啊,你的存储过程里是要创建表啊。

===============================================
哈,没研究过这么深,只不过这么用久了,就习惯这么用了。遗憾,你可以去查一些存储过程的教程,那上边一般会有这些基础知识。我只是会用而已。

9. 在存储过程中,建立临时表,提示权限不足,请问需要什么权限

创建表的权限赋给用户

oracle 赋权语句,用dba用户执行

grantcreatetabletotest;

10. 错误ora 00900 06512

可能是没有权限。虽然当前用户执行语句是有权限的,但是放到存储过程中就必须要显式的赋个权限给当前用户。以下参考
【IT168 技术文档】我们知道,用户拥有的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 procere 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 procere 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 procere successfully completed

--已经可以执行了。

热点内容
云服务器搭建游戏房间 发布:2025-07-15 22:22:26 浏览:9
网易如何取消自动续费安卓 发布:2025-07-15 22:22:25 浏览:35
php注入类 发布:2025-07-15 22:13:28 浏览:101
数据加密的使用 发布:2025-07-15 21:45:41 浏览:277
linux字符统计 发布:2025-07-15 21:43:17 浏览:462
pythonisnan 发布:2025-07-15 21:42:27 浏览:28
vs编译器版本 发布:2025-07-15 21:39:51 浏览:220
冰箱压缩机接水盒 发布:2025-07-15 21:27:00 浏览:610
xplinux双系统 发布:2025-07-15 21:26:54 浏览:616
优酷上传视频有限制吗 发布:2025-07-15 21:10:35 浏览:584