在不访问基础表的情况下运行Oracle函数

在不访问基础表的情况下运行Oracle函数,oracle,plsql,Oracle,Plsql,我在Oracle数据库中创建了一个简单的函数 取自 这是由用户A创建的 我想 GRANT EXECUTE ON FUNCTION GET_BAL TO USER B 但用户B无权访问基础表订单 用户B是否仍在执行该函数,或者是否也需要访问底层表 谢谢 P您需要更改该功能的权限。正确的权限是AUTHID DEFINER。感谢@GordonLinoff解决了我的问题@Prathamesh:“用户B是否仍在执行函数,或者他是否也需要访问底层表?”-不,他不需要访问函数中的所有对象。他只需要执行权限就

我在Oracle数据库中创建了一个简单的函数 取自

这是由用户A创建的 我想

GRANT EXECUTE ON FUNCTION GET_BAL TO USER B
但用户B无权访问基础表订单

用户B是否仍在执行该函数,或者是否也需要访问底层表

谢谢
P

您需要更改该功能的权限。正确的权限是
AUTHID DEFINER
。感谢@GordonLinoff解决了我的问题@Prathamesh:“用户B是否仍在执行函数,或者他是否也需要访问底层表?”-不,他不需要访问函数中的所有对象。他只需要执行权限就可以调用函数。权限设置在哪里?我没有看到任何
authid
子句,默认值是
definer
。@WilliamRobertson检查一下这个
GRANT EXECUTE ON FUNCTION GET_BAL TO USER B