ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle开发 » 请问:存储过程执行插入语句需要什么特殊权限么?

标题: [PL/SQL] 请问:存储过程执行插入语句需要什么特殊权限么?
离线 fishstudio
一般会员



精华贴数 0
个人空间 0
技术积分 123 (14128)
社区积分 0 (1112826)
注册日期 2006-9-17
论坛徽章:0
      
      

发表于 2008-6-28 10:46 
请问:存储过程执行插入语句需要什么特殊权限么?

hi,首先感谢您看我的帖子。

问题是这样的。我在oracle9.0.6.2版本下,有一个帐户A

由于它需要通过帐户B的表,所以我直接尝试写一条insert语句插入表B.t_b

是成功的。

现在我的问题来了,我在A的存储过程p_A里面执行了动态sql

v_sql := 'insert into B.t_b (...) value (...)'

执行后报错,打出来的错误是ora-00942 table or view does not exist

是否是权限问题,还是其他问题呢?


只看该作者    顶部
离线 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5659 (233)
社区积分 45778 (16)
注册日期 2007-9-10
论坛徽章:17
      
      

发表于 2008-6-28 11:02 
要显示声明过就可以了


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 jvkojvko
小马哥


精华贴数 1
个人空间 0
技术积分 5659 (233)
社区积分 45778 (16)
注册日期 2007-9-10
论坛徽章:17
      
      

发表于 2008-6-28 11:02 
grant insert on table to a


__________________
马无夜草不肥,人无外财不富。

-------------------------------
长期高价出售奥运章
只看该作者    顶部
离线 zhouwf0726
版主


精华贴数 5
个人空间 903
技术积分 7431 (172)
社区积分 106 (3348)
注册日期 2006-2-22
论坛徽章:20
现任管理团队成员ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章蓝锆石授权会员生肖徽章2007版:鸡
2008北京奥运纪念徽章:蹦床2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:篮球BLOG每日发帖之星生肖徽章2007版:蛇生肖徽章2007版:虎

发表于 2008-6-28 21:15 

__________________
msn:zhouwf0726@hotmail.commail:zhouwf0726@163.com
只看该作者    顶部
离线 gthboy
万事如意


精华贴数 1
个人空间 0
技术积分 1769 (935)
社区积分 2 (29381)
注册日期 2006-6-25
论坛徽章:2
2008北京奥运纪念徽章:柔道     
      

发表于 2008-6-29 14:39 
又学习了,哈哈!


__________________
只看该作者    顶部
离线 sunchao
大道至简



来自 西安
精华贴数 0
个人空间 0
技术积分 4252 (327)
社区积分 104 (3369)
注册日期 2003-3-8
论坛徽章:5
会员2006贡献徽章授权会员生肖徽章2007版:鼠生肖徽章2007版:鸡数据库板块每日发贴之星 
      

发表于 2008-6-29 19:31 
由于它需要通过帐户B的表,所以我直接尝试写一条insert语句插入表B.t_b

是成功的。

现在我的问题来了,我在A的存储过程p_A里面执行了动态sql

v_sql := 'insert into B.t_b (...) value (...)'

执行后报错,打出来的错误是ora-00942 table or view does not exist

是否是权限问题,还是其他问题呢?

以b用户显示授权给a
grant insert on t_b to A

后就应该可以了


__________________
oracle 8 i/9i/10g   unixware/solaris/aix/linux
QQ:273891948
MSN:chaosun2002@126.com      
http://blog.itpub.net/sunchao
http://tahiti.oracle.com
只看该作者    顶部
离线 zhanghong


精华贴数 0
个人空间 0
技术积分 528 (3664)
社区积分 4 (17443)
注册日期 2004-9-10
论坛徽章:2
设计板块每日发贴之星设计板块每日发贴之星    
      

发表于 2008-6-29 21:56 
学习了!!!!!!!!!!!!!!


__________________
Come on my Blog
数据库技术QQ群:37383097

----------------------------------------------------------------------
      真心诚意,以情感人;推心置腹,以诚待人;
  开诚布公,以理服人;言行一致,以信取人;

  令行禁止,依法治人;设身处地,以宽容人;
  扬人责己,以功归人;论功行赏,以奖励人。
只看该作者    顶部
离线
谁是谁的谁



精华贴数 0
个人空间 0
技术积分 456 (4267)
社区积分 0 (1160544)
注册日期 2006-10-28
论坛徽章:1
2008北京奥运纪念徽章:摔跤     
      

发表于 2008-6-30 01:42 
存储过程中需要显式声明的


__________________
花自飘灵谁自牛
只看该作者    顶部
离线 fishstudio
一般会员



精华贴数 0
个人空间 0
技术积分 123 (14128)
社区积分 0 (1112826)
注册日期 2006-9-17
论坛徽章:0
      
      

发表于 2008-7-7 09:37 
那不妨我追加问一句,Authid Current_User这句可以在不用grant的前提下让存储过程也拥有authid的role了。那么,oracle为什么设计了在procedure下与用户不同的role呢?

假设我还有个用户C,现在执行A的这个存储过程p_A,是不是C没有被grant insert on t_B to C的话,这个存储过程也会找不到表t_B来?

如果A给了C执行这个存储过程的权限,不给他B的这个权限,那么这个赋权过程是不是就失去意义了呢?

我打算试试,如果有达人知道,烦劳给回一贴。

另,我在顶楼开贴,问题不是没有权限,而是找不到表或视图的 ora-00942这个问题。

[ 本帖最后由 fishstudio 于 2008-7-7 09:39 编辑 ]


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问