错误服务代理服务

Error Service Broker Service

当我运行执行以下命令时,出现以下错误。我找不到该错误的任何解决方案。

USE [my_db]
GO

CREATE SERVICE [//Db/DbInitatorService]  ON QUEUE [dbo].[InitiatorDbQueue] ([//Db/DbContract])
GO

An entity of type service cannot be owned by a role, a group, or by principals mapped to certificates or asymmetric keys.

错误的原因是您通过 Windows 组成员身份、应用程序角色或密钥/证书映射用户登录到 SQL 服务器数据库。为了使您的陈述成功,您应该作为直接 SQL 或 Windows 用户进行身份验证。

您可以通过如下查询开始调查您的情况:

select dp.name, dp.type, dp.type_desc
from sys.database_principals dp
where dp.principal_id = database_principal_id();

您可以在创建服务时将其所有权授予数据库中的任何单个用户。像这样:

USE [my_db]
GO

CREATE SERVICE [//Db/DbInitatorService]
AUTHORIZATION [someUser]
ON QUEUE [dbo].[InitiatorDbQueue] ([//Db/DbContract])
GO