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

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

USE MyDB
GO

GRANT EXEC ON [MyTestUser] TO PUBLIC

错误:

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

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

【问题讨论】:

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

标签: sql sql-server stored-procedures


【解决方案1】:

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

GRANT ON TO

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

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

GRANT EXEC ON dbo.spMySProc TO MyTestUser

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2015-11-27
    相关资源
    最近更新 更多