Share via


管理安全性 (Service Broker)

Service Broker 提供一個有彈性的安全性架構,可以協助您保護應用程式的安全。此主題說明管理 Service Broker 安全性的考量。

計劃安全性

每個應用程式都具有唯一的安全性需求。管理安全性的一部份就是要仔細計劃應用程式的需求。傳輸安全性、對話安全性和內建於 SQL Server 中的安全性基礎結構會一起運作,協助您保護應用程式的安全。

所有應用程式都使用內建於 SQL Server 中的安全性基礎結構。SQL Server 中的每個作業都發生在特定的安全性內容中。在大多數情況下,您會專門為應用程式建立 SQL Server 資料庫主體。這可以協助您確保應用程式中的每個步驟都只在具有該步驟所需權限的安全性內容中執行。例如,您為內部啟動指定的主體需要 Service Broker 啟動之預存程序的執行權限。預存程序本身可能會模擬一個具有佇列之 RECEIVE 權限和特定資料表之 UPDATE 權限的使用者。您可以這樣設計您的應用程式,即,在每個階段,應用程式的安全性內容都不具有執行非預期作業的權限。

在 SQL Server 執行個體之間傳送訊息的應用程式可能會使用傳輸安全性或對話安全性,或同時使用兩者。傳輸安全性和對話安全性分別提供不同的保護。

Service Broker 對話安全性為特定服務之間的交談提供端對端的加密和授權。因此,對話安全性可以協助防止資料在傳輸期間被檢閱或修改。傳輸機密或敏感性資料的應用程式或透過不受信任之網路傳輸訊息的應用程式都應使用對話安全性。對話安全性可以協助交談的參與者識別交談的其他參與者。

因為對話安全性可以套用至特定服務,所以您必須為使用對話安全性的每個服務設定對話安全性。不過,某個執行個體可能會為一些交談使用對話安全性,而允許其他交談以不加密的方式傳送。例如,與更新客戶資訊之服務的交談可能會使用對話安全性,而只是查閱零件編號資訊的交談可能就不需要對話安全性。

Service Broker 會使用開始交談之資料庫中的遠端服務繫結來判斷交談的安全性。因此,Service Broker 會使用服務名稱來判斷服務的安全性。如果同一目標服務存在一個以上的執行個體,則管理起始服務的路由時必須小心,要讓起始服務只與包含相符憑證的目標服務通訊。使用同一名稱的所有服務都必須使用同一憑證來設定。

Service Broker 傳輸安全性可以防止未經授權的網路連接到 Service Broker 端點、偵測到傳輸期間的訊息改變,並能選擇性地提供點對點加密。這可以協助防止您的資料庫接收到不想要的訊息。因為傳輸安全性會套用至網路連接,所以傳輸安全性會自動套用至 SQL Server 執行個體之間的所有交談。不過,請注意,傳輸安全性不提供端對端加密,也不提供個別交談的驗證。

維護安全性

Service Broker 應用程式的維護安全性包含兩個主要工作,即,稽核應用程式組態和取代應用程式所使用的憑證。

定期稽核應用程式,以判斷安全性組態未變更且安全性組態符合應用程式的業務需求。

對話安全性依賴於憑證來進行驗證和加密。傳輸安全性也可能使用憑證。憑證具有一個指定的有效時間。在此時間開始之前,或此時間過期之後,憑證都無效。Service Broker 不使用目前無效的憑證。此外,SQL Server 包含 ACTIVE FOR BEGIN_DIALOG 選項,會讓 Service Broker 可以使用憑證。若要更新憑證,請將 Active for Begin Dialog 選項設定為 OFF,來建立或載入新的憑證。一旦載入了所有憑證,請改變所有資料庫中的目前憑證,以使憑證對 Service Broker 不可用。然後透過設定 ACTIVE FOR BEGIN_DIALOG 選項來改變新的憑證,以讓 Service Broker 可以使用那些憑證。

如需有關憑證的詳細資訊,請參閱<憑證與 Service Broker>和<CREATE CERTIFICATE (Transact-SQL)>。