日期:2014-05-17  浏览次数:20819 次

存储过程的权限和同名问题
我现在遇到这样一种情况,用户A新建一个存储过程SP1,赋权限给用户B,然后用户B新建一个SP1的同名。
当用户A需要更新存储过程SP1时,是否需要重新赋权限给用户B?B是否需要重建同名SP1?
我本地测试的时候,发现用户A修改了存储过程SP1后,用户B能正常使用,而且确实更新了。
但在生产库上,由我们DBA更新了存储过程之后,经常出现用户B找不到SP1的情况,错误原因:
ORA-06550: line 2, column 7:
PLS-00201: identifier 'SP1' must be declared
ORA-06550: line 2, column 7:
PL/SQL: Statement ignored

看这个错误应该是SP1未定义。
请问什么情况下用户A修改了存储过程SP1,用户B会出现这种错误?
------解决方案--------------------
是否需要重新赋权限给用户B?B是否需要重建同名SP1?
不需要重新赋权限给用户B,B用户下的SP1不需要重建
我本地测试的时候,发现用户A修改了存储过程SP1后,用户B能正常使用,而且确实更新了。
但在生产库上,由我们DBA更新了存储过程之后,
经常出现用户B找不到SP1的情况
这要看你怎么用A的SP1的
------解决方案--------------------
这头像真黄
------解决方案--------------------
应该是不需要重建同名的。
查查看,出现用户B找不到SP1的情况时候,sp1的同名还在吗?
select * from user_synonyms;