0

我有一个存储过程,它具有 EXECUTE 作为另一个访问非常受限的用户。当我运行该存储过程时,我无法从 OBJECT_NAME(@@PROCID) 获得结果。@@PROCID 确实有一个值,因此查找失败。

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

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

4

1 回答 1

0

从文档中OBJECT_ID

用户只能查看用户拥有或已被授予权限的安全对象的元数据。这意味着如果用户对对象没有任何权限,那么像 OBJECT_ID 这样的元数据发射内置函数可能会返回 NULL。

此外,进一步阅读还将告诉您,您需要授予用户对该对象的任何权限(即 SELECT、EXECUTE 等)

于 2015-10-04T16:33:02.243 回答