当我运行以下命令时,我出现以下错误。我无法找到错误的任何解决方案。
USE [my_db]
GO
CREATE SERVICE [//Db/DbInitatorService] ON QUEUE [dbo].[InitiatorDbQueue] ([//Db/DbContract])
GO
类型服务的实体不能由角色,组或by拥有 映射到证书或非对称密钥的主体。
答案 0 :(得分:3)
您可以在向数据库中的任何单个用户创建服务时授予该服务的所有权。像这样:
USE [my_db]
GO
CREATE SERVICE [//Db/DbInitatorService]
AUTHORIZATION [someUser]
ON QUEUE [dbo].[InitiatorDbQueue] ([//Db/DbContract])
GO
答案 1 :(得分:2)
错误原因是您通过Windows组成员身份或应用程序角色或密钥/证书映射用户登录SQL Server数据库。为了使您的语句成功,您应该作为直接SQL或Windows用户进行身份验证。
您可以使用以下查询开始调查您的情况:
select dp.name, dp.type, dp.type_desc
from sys.database_principals dp
where dp.principal_id = database_principal_id();