oracle – 更新连接的权限不足

oracle – 更新连接的权限不足,第1张

概述场景:我们为经理批准的请求生成记录.待处理时,经理会更改(从人力资源供稿中一夜之间更新).我们需要更新请求以指示新经理. 这是查询的缩写版本,应该这样做: update (select grw.approver_user_id, gup.supervisor_id from gs3.user_role gur join gsu.user_profile gu 场景:我们为经理批准的请求生成记录.待处理时,经理会更改(从人力资源供稿中一夜之间更新).我们需要更新请求以指示新经理.

这是查询的缩写版本,应该这样做:

update (select grw.approver_user_ID,gup.supervisor_ID        from   gs3.user_role gur          join gsu.user_profile gup            on gur.user_ID = gup.user_ID          join gs3.request_workflow grw            on gur.user_role_ID = grw.user_role_ID           and gup.supervisor_ID != grw.approver_user_ID  -- records with new mgr        where  grw.auth_status_cd = 'submitTED')  -- reapprovals currently openset    grw.approver_ID = gup.supervisor_ID;

问题:执行此查询的帐户仅具有gsu.user_profile的读取权限.

内部选择工作正常并返回我需要更新的所有行…但即使我没有更新gup.supervisor_ID,似乎我需要对该表具有写访问权限.如果我以具有gsu.user_profile写入权限的用户身份执行此 *** 作,则更新成功.

这有合理的原因吗?我宁愿不授予它不需要的帐户的权限.

谢谢!

更新

接受托马斯的答案……虽然它并没有真正回答我为什么执行更新连接的帐户需要更新权限而不更新的表的问题,但我可以看到“不使用更新连接,他们不是ISO标准“.

这是一种耻辱,因为我所拥有的和Thomas的建议之间的区别在于我的内容中没有任何嵌套选择.如果有人知道ISO标准的方式来做这样的查询没有嵌套选择,我很想知道!

谢谢,托马斯!

解决方法 尝试将ISO批准的格式用于Update语句,看看是否有效. ISO不直接在Update语句中使用Join.相反,您只能通过子查询使用连接.

此外,这可能会说明原始Update语句中的一些问题,例如,用于设置approver_ID的子查询返回多行,这显然会导致异常,并且您需要确定如何找到一个且只有一个应该为每一行设置的supervisor_ID.

Update gs3.request_workflowSet approver_ID =   (                    Select gup.supervisor_ID                    From gs3.user_role As gur                        Join gsu.user_profile As gup                            On gur.user_ID = gup.user_ID                    Where gup.user_role_ID = gs3.request_workflow.user_role_ID                        And gup.supervisor_ID != grw.approver_user_ID                    )Where auth_status_cd = 'submitTED'                              And Exists  (                Select 1                From gs3.user_role As gur                    Join gsu.user_profile As gup                        On gur.user_ID = gup.user_ID                Where gup.user_role_ID = gs3.request_workflow.user_role_ID                    And gup.supervisor_ID != grw.approver_user_ID                )
总结

以上是内存溢出为你收集整理的oracle – 更新连接的权限不足全部内容,希望文章能够帮你解决oracle – 更新连接的权限不足所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1161815.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存