共用方式為


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

SQL Server 2005 及更新版本中的傳輸安全性牽涉到驗證,以及對資料庫間交換的訊息進行加密 (選擇性)。 對於資料庫鏡像和 AlwaysOn 可用性群組 而言,驗證與加密是針對資料庫鏡像端點所設定。 如需資料庫鏡像端點的簡介,請參閱<資料庫鏡像端點 (SQL Server)>。

本主題內容:

  • 驗證

  • 資料加密

  • 相關工作

驗證

驗證就是確認使用者即為使用者所宣稱身分的程序。 資料庫鏡像端點之間的連接必須進行驗證。 夥伴或見證 (若有的話) 所提出的連接要求,也必須進行驗證。

伺服器執行個體用於資料庫鏡像或 AlwaysOn 可用性群組 的驗證類型就是資料庫鏡像端點的屬性。 資料庫鏡像端點有兩種可用的傳輸安全性類型:Windows 驗證 (安全性支援提供者介面 (SSPI)) 與憑證型驗證。

Windows 驗證

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

  • 如果 SQL Server 執行個體會以服務的形式在相同的網域帳戶底下執行,就不需要進行額外設定。

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

  • 如果 SQL Server 執行個體會以 Network Service 帳戶的身分執行,您就必須在其他每個伺服器的 master 中建立每個主機電腦帳戶的登入 (DomainName**\**ComputerName$),而且該登入必須被授與端點的 CONNECT 權限。 這是因為在 Network Service 帳戶底下執行的伺服器執行個體會使用主機電腦的網域帳戶進行驗證。

[!附註]

如需使用 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 選項指定下列其中一值,來控制端點可使用的加密演算法:

ALGORITHM 值

說明

RC4

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

[!附註]

RC4 演算法已被取代。 未來的 Microsoft SQL Server 版本將移除這項功能。請勿在新的開發工作中使用此功能,並且儘速修改使用此功能的應用程式。 我們建議您改用 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)>。

相關工作

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

搭配回到頁首連結使用的箭頭圖示[Top]

請參閱

參考

ALTER ENDPOINT (Transact-SQL)

DROP ENDPOINT (Transact-SQL)

sys.database_mirroring_endpoints (Transact-SQL)

sys.dm_db_mirroring_connections (Transact-SQL)

概念

選擇加密演算法

安全性與保護 (Database Engine)

在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料 (SQL Server)

資料庫鏡像端點 (SQL Server)

疑難排解資料庫鏡像組態 (SQL Server)

疑難排解 AlwaysOn 可用性群組組態 (SQL Server)