调用存储过程报ora-01031和ora-06512

想不想都在一念之间 2015-08-11 10:13:35
加精
如题,在程序执时。调用存储过程报了ora-01031和ora-06512
查了部分资料说是没有权限,但好像基本权限都已经给足了。各位有什么建议。
...全文
11083 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
Space1208 2017-12-08
  • 打赏
  • 举报
回复
调用存储过程的这个 oracle用户 没有执行存储过程的权限, 或者 这个用户的权限太低,给这个加上dba权限和执行存储过程的权限
sz_jack 2017-11-18
  • 打赏
  • 举报
回复
最直接的方法 用户登录plsql ,test 过程,看看没有测试的权限,没有赋格权就ok,如果可以,有可你就调试看看运行到哪行代码有问题!
xiaobabyz 2017-11-14
  • 打赏
  • 举报
回复
是权限的问题吗
  • 打赏
  • 举报
回复
建议用 select * from dba_sys_privs; select * from user_sys_privs; 查看一下权限是不是少了
  • 打赏
  • 举报
回复
解决方法: 用pl/sql登录DBA用户给相应的Web所使用的用户在"Users"中找到该用户并选择“System privileges”选项卡中增加“create any table”即可。
beyon2008 2015-10-28
  • 打赏
  • 举报
回复
你没有讲当前连接用户给的什么大权限,比如: grant connect,resource,dba,create table,create sequence,create type,create job,drop any table to user_name;
nettman 2015-10-28
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 9 楼 yupeigu 的回复:
[quote=引用 7 楼 AresZone 的回复:] [quote=引用 6 楼 xu176032 的回复:] 1、程序调用时候报错,是指用外部的,比如java,.net这种调用的?如果是的话检查一下连接数据库用的用户到底是否正确 2、用创建该存储过程的用户直接test测试会报错吗,试一下,换成这个用户行不行 3、创建public同义词,给你需要用的用户赋权限
连接数据的用户是没有问题的。 在应用程序里面调用了procedure里面的dbms_session.clear_context() 但执行的时候出现一个错误 : ORA-01031: 權限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 108 ORA-06512: 在 "GIS.PGGIS_SESSION", line 17 ORA-06512: 在 line 1 我用sys登入,然后grant execute on sys.dbms_session to TMIS3USER. 但是依然是没有效果。 [/quote] 用这个试试呢: grant execute on dbms_session to TMIS3USER [/quote] 谢谢,不过这个权限也已经赋予过去了。
  • 打赏
  • 举报
回复
我是在旧的DB用EXP整个数据库。 单用的是SYS用户来EXP。 导入的时候是用自己新建的用户。和这个有没有关系?
  • 打赏
  • 举报
回复
引用 10 楼 yupeigu 的回复:
[quote=引用 8 楼 AresZone 的回复:] UP
你可以参考一下这个: http://blog.itpub.net/4227/viewspace-630724/ 其实就是,如果一开始你在设置上下文的时候是指定了包,那么就一定要通过包来设置,而不能直接调用 clear_context函数了。 需要注意,在建立上下文的时候指定了PACKAGE,此后设置上下文或清除上下文设置都需要通过这个包的过程来完成,如果直接尝试调用SET_CONTEXT或CLEAR_CONTEXT则会报错权限不足: SQL> EXEC DBMS_SESSION.SET_CONTEXT('MY_CONTEXT', 'A', '50') BEGIN DBMS_SESSION.SET_CONTEXT('MY_CONTEXT', 'A', '50'); END; * 第 1 行出现错误: ORA-01031: 权限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 101 ORA-06512: 在 line 1 SQL> EXEC DBMS_SESSION.CLEAR_CONTEXT('MY_CONTEXT', NULL, 'ATTR2') BEGIN DBMS_SESSION.CLEAR_CONTEXT('MY_CONTEXT', NULL, 'ATTR2'); END; * 第 1 行出现错误: ORA-01031: 权限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 115 ORA-06512: 在 line 1[/quote] 抱歉,问题描述的不是够清晰。 这个不是新建一个DB来使用,而是因为要将旧的DB移植到新的服务器上去。 旧DB在使用上是没有问题的。所以存储过程和调用应该是没有问题。
LongRui888 2015-08-27
  • 打赏
  • 举报
回复
引用 8 楼 AresZone 的回复:
UP
你可以参考一下这个: http://blog.itpub.net/4227/viewspace-630724/ 其实就是,如果一开始你在设置上下文的时候是指定了包,那么就一定要通过包来设置,而不能直接调用 clear_context函数了。 需要注意,在建立上下文的时候指定了PACKAGE,此后设置上下文或清除上下文设置都需要通过这个包的过程来完成,如果直接尝试调用SET_CONTEXT或CLEAR_CONTEXT则会报错权限不足: SQL> EXEC DBMS_SESSION.SET_CONTEXT('MY_CONTEXT', 'A', '50') BEGIN DBMS_SESSION.SET_CONTEXT('MY_CONTEXT', 'A', '50'); END; * 第 1 行出现错误: ORA-01031: 权限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 101 ORA-06512: 在 line 1 SQL> EXEC DBMS_SESSION.CLEAR_CONTEXT('MY_CONTEXT', NULL, 'ATTR2') BEGIN DBMS_SESSION.CLEAR_CONTEXT('MY_CONTEXT', NULL, 'ATTR2'); END; * 第 1 行出现错误: ORA-01031: 权限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 115 ORA-06512: 在 line 1
LongRui888 2015-08-27
  • 打赏
  • 举报
回复
引用 7 楼 AresZone 的回复:
[quote=引用 6 楼 xu176032 的回复:] 1、程序调用时候报错,是指用外部的,比如java,.net这种调用的?如果是的话检查一下连接数据库用的用户到底是否正确 2、用创建该存储过程的用户直接test测试会报错吗,试一下,换成这个用户行不行 3、创建public同义词,给你需要用的用户赋权限
连接数据的用户是没有问题的。 在应用程序里面调用了procedure里面的dbms_session.clear_context() 但执行的时候出现一个错误 : ORA-01031: 權限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 108 ORA-06512: 在 "GIS.PGGIS_SESSION", line 17 ORA-06512: 在 line 1 我用sys登入,然后grant execute on sys.dbms_session to TMIS3USER. 但是依然是没有效果。 [/quote] 用这个试试呢: grant execute on dbms_session to TMIS3USER
  • 打赏
  • 举报
回复
UP
  • 打赏
  • 举报
回复
引用 6 楼 xu176032 的回复:
1、程序调用时候报错,是指用外部的,比如java,.net这种调用的?如果是的话检查一下连接数据库用的用户到底是否正确 2、用创建该存储过程的用户直接test测试会报错吗,试一下,换成这个用户行不行 3、创建public同义词,给你需要用的用户赋权限
连接数据的用户是没有问题的。 在应用程序里面调用了procedure里面的dbms_session.clear_context() 但执行的时候出现一个错误 : ORA-01031: 權限不足 ORA-06512: 在 "SYS.DBMS_SESSION", line 108 ORA-06512: 在 "GIS.PGGIS_SESSION", line 17 ORA-06512: 在 line 1 我用sys登入,然后grant execute on sys.dbms_session to TMIS3USER. 但是依然是没有效果。
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
显式的赋一下权限, grant 这种的。
新建的tmis3user,已经用grant赋予了权限。 刚才查了下,sys用户有的权限都赋予了他了。不过还是出一样的提示。
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
显式的赋一下权限, grant 这种的。
新建的tmis3user,已经用grant赋予了权限。 刚才查了下,sys用户有的权限都赋予了他了。不过还是出一样的提示。
xu176032 2015-08-13
  • 打赏
  • 举报
回复
1、程序调用时候报错,是指用外部的,比如java,.net这种调用的?如果是的话检查一下连接数据库用的用户到底是否正确 2、用创建该存储过程的用户直接test测试会报错吗,试一下,换成这个用户行不行 3、创建public同义词,给你需要用的用户赋权限
卖水果的net 2015-08-12
  • 打赏
  • 举报
回复
显式的赋一下权限, grant 这种的。
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
存储过程的调用,有两种权限,一个调用者权限,一是所有者权限。 你的当前会话的连接用户,和这个过程的所属用户,是同一个吗?
应该是同一个用户。 报错的是: ORA-01031: insufficient privileges ORA-06512: at"SYS.DBMS_SESSION", line 108 ORA-06512: at"TMIS3USER.PKG_TMIS_MGMT", line 17
卖水果的net 2015-08-11
  • 打赏
  • 举报
回复
存储过程的调用,有两种权限,一个调用者权限,一是所有者权限。 你的当前会话的连接用户,和这个过程的所属用户,是同一个吗?

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧