尝试从我的数据库发送消息时出现权限错误。
我启用了 proker 服务:
-- Enable Broker on Initiator
ALTER DATABASE A-DB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE A-DB SET ENABLE_BROKER;
ALTER AUTHORIZATION ON DATABASE::A-DB TO [sa];
ALTER DATABASE A-DB SET TRUSTWORTHY ON;
ALTER DATABASE A-DB SET MULTI_USER;
GO
然后我创建队列和所有这些......
当我尝试发送消息时,我在 sys.transmission_queue 中看到以下错误:
在目标队列中排队消息时发生异常。错误:916,状态:3。服务器主体“sa”无法在当前安全上下文下访问数据库“MYDBNAME”。
(其中 MYDBNAME 是我们正在使用的数据库的名称)
我认为错误是由这一行引起的:
将 DATABASE::A-DB 上的授权更改为 [sa];
那可能是件坏事。但是,我可以更改授权以将其恢复到原来的状态吗?我以为它会是“dbo”,但这是不对的。是否应该将其设置为曾经创建过数据库的人?