Sql server 从何处获取对象名称(@@PROCID)的结果?(已更正打字错误)

Sql server 从何处获取对象名称(@@PROCID)的结果?(已更正打字错误),sql-server,execute-as,Sql Server,Execute As,我有一个存储过程,它作为另一个访问权限非常有限的用户执行。运行该存储过程时,无法从对象名称(@@PROCID)中获取结果@@PROCID确实有一个值,所以查找失败 我认为这是一个权限问题,所以有人能告诉我存储过程的名称是从哪里获得的吗?也许我可以通过向executeas用户授予一些SELECT权限来解决我的问题 如果有人有其他想法,LMK。我现在正在对存储过程名称进行硬编码。来自以下文档: 用户只能查看用户拥有的或已授予用户权限的安全设备的元数据。这意味着,如果用户对对象没有任何权限,则发出元数

我有一个存储过程,它作为另一个访问权限非常有限的用户执行。运行该存储过程时,无法从对象名称(@@PROCID)中获取结果@@PROCID确实有一个值,所以查找失败

我认为这是一个权限问题,所以有人能告诉我存储过程的名称是从哪里获得的吗?也许我可以通过向executeas用户授予一些SELECT权限来解决我的问题


如果有人有其他想法,LMK。我现在正在对存储过程名称进行硬编码。

来自以下文档:

用户只能查看用户拥有的或已授予用户权限的安全设备的元数据。这意味着,如果用户对对象没有任何权限,则发出元数据的内置函数(如OBJECT_ID)可能会返回NULL


还将告诉您,您需要授予用户对该对象的任何权限(即选择、执行等)

您的答复确实指出了我在进一步研究后需要做什么。将视图定义授予MyExecuteAUser。我最初将其发布为OBJECT\u ID而不是OBJECT\u NAME,因此我在原始问题中对其进行了更正。答案引用了对象ID。