向用户授予 EXEC 权限:找不到对象

Posted

技术标签:

【中文标题】向用户授予 EXEC 权限:找不到对象【英文标题】:Granting EXEC permission to user: cannot find the object 【发布时间】:2020-10-29 18:47:26 【问题描述】:

我使用 db_owner 帐户登录我的数据库。我正在尝试将 EXEC 权限授予另一个用户:MyTestUser。简单的代码是:

USE MyDB
GO

GRANT EXEC ON [MyTestUser] TO PUBLIC

错误:

找不到对象“MyTestUser”,因为它不存在或您没有权限

出于隐私考虑,您在下图中看不到它,但相信我,它就在那里,就像 MyTestUser

【问题讨论】:

不确定,但我认为要查看您需要服务器级别权限的用户,而您的 db_owner 帐户没有该权限,您可能会了解更多相关信息 【参考方案1】:

我认为您可能混淆了您的陈述。 GRANT 语句通常是这样的:

GRANT ON TO

所以您的声明是说您希望 PUBLIC(所有用户)有权在 MyTestUser 上运行 EXEC 语句。它期望MyTestUser 是一个函数、存储过程等。因此,如果那是一个用户,它将失败,因为它找不到名为“MyTestUser”的可执行文件。

假设你想允许 MyTestUser 执行dbo.spMySproc,你会运行:

GRANT EXEC ON dbo.spMySProc TO MyTestUser

【讨论】:

以上是关于向用户授予 EXEC 权限:找不到对象的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 数据库:找不到明确存在的对象

SecurityException:从 ACTION_IMAGE_CAPTURE 中找不到 uri 的持久权限授予

HsqldbException:用户缺少权限或找不到对象:TABLE

HSQLDB SqlTool 抛出用户缺少权限或找不到对象

是啥导致错误“用户缺少权限或找不到对象:FieldName”

用户缺少权限或找不到对象:XXXX