Encryption
為什麼服務代理在恢復到不同的伺服器後需要主密鑰?
我最近通過備份和恢復將一些使用服務代理的數據庫移動到新伺服器。我注意到,一旦我這樣做了,這些數據庫就會開始在日誌中拋出數據庫主密鑰所需的消息。代理沒有使用加密,並且原始伺服器和數據庫中沒有設置密鑰,那麼為什麼一旦我恢復它就需要一個呢?如果未設置數據庫主密鑰,是否可能使用服務主密鑰?我的搜尋沒有發現如果您最初不設置會發生什麼,似乎只是假設您有一組。有人提到如果沒有設置會有問題,但我們沒有任何問題。
另外,它真的需要鑰匙嗎?我開始懷疑這是否只是一條不正確的消息,如果我只是使用 alter 語句進行 UID 更新,是否會解決它,還是在移動到新伺服器時我必須設置密鑰?
謝謝!
還原數據庫時,
TRUSTWORTHY
自動設置為OFF
. 對於 Service Broker,如果不使用加密,而使用跨庫消息傳輸,TRUSTWORTHY
則需要設置為ON
.嘗試
ALTER DATABASE MyDB SET TRUSTWORTHY ON
…對於與 Broker 相關的所有已恢復數據庫。
Service Broker 預設使用加密,除非您指定在發送消息時不想使用它。在某些時候必須創建數據庫主密鑰,除非像我說的那樣,您在發送消息時指定加密已關閉(可能是在您創建對話時,我不記得了)。
無論如何,當您恢復數據庫時,如果密鑰僅由最後一個伺服器上的服務主密鑰加密,那麼您將無法使用它,因此您需要重新創建它。