向用户授予 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 权限:找不到对象的主要内容,如果未能解决你的问题,请参考以下文章
SecurityException:从 ACTION_IMAGE_CAPTURE 中找不到 uri 的持久权限授予
HsqldbException:用户缺少权限或找不到对象:TABLE