同じボックスで実行されている.Net/IISWebサイトに対してServiceBrokerがオンになっているSQLServer2008R2の実装があります。
global.asax application_startupイベントが発生してもエラーはスローされませんが、イベントログは毎秒次のようにスパム送信されます。
[dbo]。[SqlQueryNotificationStoredProcedure-e6946263-93b8-445e-9d92-6fbd49a4b089]'キューで実行中'XXXXXX.dbo.SqlQueryNotificationService-e6946263-93b8-445e-9d92-6fbd49a4b089'は次のように出力します。マスターデータベースは、データベース「XXXXXXX」に記録されているデータベース所有者SIDとは異なります。この状況を修正するには、ALTERAUTHORIZATIONステートメントを使用してデータベース「XXXXXXX」の所有者をリセットします。
また、Service Brokerは(SqlCacheDependencyの場合)メッセージを正しく送信していません。基本的には機能しません。
次のクエリを実行し、所有権の不一致があると判断しました。
SELECT
SUSER_SNAME(d.owner_sid) AS OwnerName
,d.owner_sid AS OwnerSID
,dp.sid AS DboUserSID
,SUSER_SNAME(dp.sid) AS DboUserMapping
FROM sys.databases AS d
JOIN sys.database_principals AS dp ON
dp.name = 'dbo'
WHERE d.database_id = DB_ID();
所有者名:usrAAAAA
OwnerSID:0xAAAAA
DboUserMapping:sa
DboUserSID:0x01
私が見たほとんどの場所では、ALTER AUTHORIZATIONを使用して、データベース所有者として「sa」を明示的に設定する必要があることを示唆しています。sa
ただし、またはに設定する必要があるかどうかはわかりusrAAAAA
ません。また、影響が生じる可能性があるかどうかもわかりません(他にどのような問題が発生する可能性がありますか?)。
これに関する助けをいただければ幸いです。