共用方式為


資料庫鏡像和 AlwaysOn 可用性群組的傳輸安全性 (SQL Server)

傳輸安全性牽涉到驗證,以及選擇性地加密資料庫之間交換的訊息。 針對資料庫鏡像和 AlwaysOn 可用性群組,驗證和加密會在資料庫鏡像端點上設定。 如需資料庫鏡像端點的簡介,請參閱資料庫鏡像端點(SQL Server)。

認證

驗證是確認使用者是其聲稱身份的過程。 資料庫鏡像端點之間的連線需要驗證。 必須驗證來自夥伴或見證的連接請求,如果有的話。

用於資料庫鏡像或 Always On 可用性群組的伺服器實例的驗證類型是資料庫鏡像端點的屬性。 資料庫鏡像端點有兩種類型的傳輸安全性:Windows 驗證(安全性支援提供者介面 (SSPI))和憑證型驗證。

Windows 驗證

在 Windows 驗證下,每個伺服器實例都會使用進程執行所在的 Windows 使用者帳戶的 Windows 認證登入另一端。 Windows 驗證可能需要一些手動設定登入帳戶,如下所示:

  • 如果 SQL Server 的實例以相同網域帳戶的服務身分執行,則不需要額外的設定。

  • 如果 SQL Server 的實例在不同的網域帳戶下以服務的形式執行(在相同或受信任的網域中),則每個帳戶的登入必須在其他伺服器實例的 master 中建立,而且該登入必須在端點上授與 CONNECT 許可權。

  • 如果 SQL Server 的實例以網路服務帳戶的形式執行,則必須在其他每部伺服器上於 master 中建立每個主電腦帳戶的登入(DomainName ComputerName**\**$),而且該登入必須在端點上授與 CONNECT 許可權。 這是因為在網路服務帳戶下執行的伺服器實例會使用主計算機的網域帳戶進行驗證。

備註

如需使用 Windows 驗證設定資料庫鏡像會話的範例,請參閱範例:使用 Windows 驗證設定資料庫鏡像(Transact-SQL)。

證書

在某些情況下,例如當伺服器實例不在信任網域中,或當 SQL Server 以本地服務身分執行時,Windows 驗證無法使用。 在這種情況下,驗證連線要求需要憑證,而不是用戶認證。 每個伺服器實例的鏡像端點都必須使用自己在本機建立的憑證進行設定。

建立憑證時會建立加密方法。 如需詳細資訊,請參閱允許資料庫鏡像端點使用憑證進行輸出連線 (Transact-SQL)。 仔細管理您使用的憑證。

伺服器實例會在設定連線時,使用自己憑證的私鑰來建立其身分識別。 接收連線要求的伺服器實例會使用寄件者憑證的公鑰來驗證發件者的身分識別。 例如,請考慮兩個伺服器實例,Server_A和Server_B。 Server_A會使用其私鑰來加密連線標頭,再將連線要求傳送至Server_B。 Server_B會使用Server_A憑證的公鑰來解密聯機標頭。 如果解密的標頭正確,Server_B知道標頭已由Server_A加密,且聯機已驗證。 如果解密的標頭不正確,Server_B知道這個連線要求是不真實的,並拒絕連線。

資料加密

根據預設,資料庫鏡像端點需要加密透過鏡像連線傳送的數據。 在此情況下,端點只能連線到也使用加密的端點。 除非您可以保證您的網路安全,否則建議您要求加密資料庫鏡像連線。 不過,您可以停用加密或加以支援,但並非必要。 如果加密已停用,數據永遠不會加密,而且端點無法連線到需要加密的端點。 如果支援加密,只有當相反的端點支援或需要加密時,才會加密數據。

備註

SQL Server Management Studio 所建立的鏡像端點會以必要或停用的加密方式建立。 若要將加密設定變更為 SUPPORTED,請使用 ALTER ENDPOINT Transact-SQL 語句。 如需詳細資訊,請參閱 ALTER ENDPOINT (Transact-SQL)

您可以選擇性地控制端點可以使用的加密演算法,方法是在 CREATE ENDPOINT 語句或 ALTER ENDPOINT 語句中指定 ALGORITHM 選項的下列其中一個值:

演算法值 說明
RC4 指定端點必須使用 RC4 演算法。 這是預設值。

注意:RC4 演算法已被取代。 這項功能將在未來的 SQL Server Microsoft 版本中移除。 請勿在新的開發工作中使用這項功能,並修改目前使用此功能的應用程式。 我們建議您改用 AES。
高級加密標準 (AES) 指定端點必須使用 AES 演算法。
AES RC4 指定這兩個端點將協商加密演算法,而此端點將優先選擇 AES 演算法。
RC4 AES 指定兩個端點將協商加密算法,此端點優先使用 RC4 算法。

如果連接端點同時指定這兩種演算法,但順序不同,則接受連線的端點會獲勝。

備註

只有 RC4 演算法支援回溯相容性。 只有在資料庫相容性層級為 90 或 100 時,才能使用 RC4 或 RC4_128 加密新資料 (不建議使用)。請改用較新的演算法,例如其中一個 AES 演算法。 在 SQL Server 2012 和更新版本中,使用 RC4 或RC4_128加密的數據可以在任何相容性層級中解密。

RC4 雖然比 AES 快得多,但 RC4 是相對弱式的演算法,而 AES 則是相對強大的演算法。 因此,我們建議您使用 AES 演算法。

如需指定加密之 Transact-SQL 語法的相關信息,請參閱 CREATE ENDPOINT (Transact-SQL)

相關工作

設定資料庫鏡像端點的傳輸安全性

另請參閱

選擇加密演算法
ALTER ENDPOINT (Transact-SQL)
DROP ENDPOINT (Transact-SQL)
SQL Server Database Engine 和 Azure SQL Database 的資訊安全中心
在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料 (SQL Server)
資料庫鏡像端點 (SQL Server)
sys.database_mirroring_endpoints (Transact-SQL)
sys.dm_db_mirroring_connections (Transact-SQL)
排除資料庫鏡像配置的問題 (SQL Server)
針對AlwaysOn可用性群組設定 (SQL Server)已刪除進行疑難解答