我有一个在 SQL-Server 2012 DBMS 上运行的数据库。考虑到运行 SQL Server 的服务器不是网络域的一部分。当我执行这个 sql 命令时
ALTER DATABASE myDatabase SET TRUSTWORTHY ON;
Run Code Online (Sandbox Code Playgroud)
服务代理队列(早期设置和工作)接收消息,但与队列关联的活动存储过程没有启动。消息继续流入队列,但没有其他任何事情发生。在 SQL SERVER 日志中,我发现了这条消息
在队列“proofSCHEMA.myQueue”上运行的激活过程“proofSchema.mySP”输出以下内容:“主数据库中记录的数据库所有者 SID 与数据库“myDatabase”中记录的数据库所有者 SID 不同。您应该通过使用 ALTER AUTHORIZATION 语句重置数据库“myDatabase”的所有者来纠正这种情况。
如果我在网络域内的机器上运行相同的配置,则一切正常。
我不明白发生了什么以及为什么值得信赖的使用服务代理队列。