我在查看sqldependency时遇到以下错误
无法找到指定的用户'所有者'。找不到队列 ' SqlQueryNotificationService-dfb11997-c69e-4e3b-a640-29cdf4c3e9fa&#39 ;, 因为它不存在或您没有权限。无效 对象名称 ' SqlQueryNotificationService-dfb11997-c69e-4e3b-a640-29cdf4c3e9fa'
我已经授予了以下权限。不确定赋予sql角色/用户的其他权限。感谢您的时间和帮助
GRANT CREATE PROCEDURE to [SqlUser]
GRANT CREATE QUEUE to [SqlUser]
GRANT CREATE SERVICE to [SqlUser]
GRANT REFERENCES on
CONTRACT::[http://schemas.microsoft.com/SQL/Notifications/PostQueryNotification]
to [SqlUser]
GRANT VIEW DEFINITION TO [SqlUser]
GRANT SELECT to [SqlUser]
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO [SqlUser]
GRANT RECEIVE ON QueryNotificationErrorsQueue TO [SqlUser]
GRANT ALTER ON SCHEMA::dbo TO [SqlUser]
GRANT CONTROL ON SCHEMA::[dbo] TO [SqlUser];
GRANT IMPERSONATE ON USER::DBO TO [SqlUser];
ALTER USER [sqluser] WITH DEFAULT_SCHEMA=[SqlUser]
GO
答案 0 :(得分:0)
我猜测架构readRDS()
不存在。
如果您使用以下(通常不应该使用)
[SqlUser]
然后你不需要:
GRANT ALTER ON SCHEMA::dbo TO [SqlUser]
GRANT CONTROL ON SCHEMA::[dbo] TO [SqlUser];
GRANT IMPERSONATE ON USER::DBO TO [SqlUser];
因为您应该将默认架构保留为ALTER USER [sqluser] WITH DEFAULT_SCHEMA=[SqlUser]
,以便仍然可以在该架构下创建队列。
否则,您不需要dbo
上的拨款,您可以使用:
dbo
仍然需要所有其他拨款:
CREATE SCHEMA [SqlUser] AUTHORIZATION [SqlUser]
ALTER USER [SqlUser] WITH DEFAULT_SCHEMA = [SqlUser]
答案 1 :(得分:0)
对于试图找到解决此问题的人:
我将首先检查SqlUser是否是您用来连接应用程序的帐户?
如果是,那么其他可能的原因可能是用户没有对激活的proc的所有者拥有IMPERSONATE权限,并且您需要授予所有者权限。
以下是answer 的详细信息。