資料庫鏡像傳輸安全性

SQL Server 2005 及更新版本中的傳輸安全性牽涉到驗證,以及對資料庫間交換的訊息進行加密 (選擇性)。

對於資料庫鏡像,會在端點上設定驗證與加密。如需鏡像端點的簡介,請參閱<資料庫鏡像端點>。

驗證

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

伺服器執行個體所用的驗證類型,是其資料庫鏡像端點的屬性之一。資料庫鏡像有兩種可用的傳輸安全性類型:Windows 驗證與憑證型驗證。

Windows 驗證支援兩種驗證通訊協定:NT LAN Manager (NTLM) 與 Kerberos。資料庫鏡像端點可設定為使用其中一種通訊協定,或在兩者之間交涉。依預設,會使用交涉。預設值 NEGOTIATE 會導致端點利用 Windows 交涉通訊協定來選擇 NTLM 或 Kerberos。若在端點指定了特定的驗證方式 (NTLM 或 Kerberos),則只能使用該方式。若相對的端點被設定為只使用另一種方式,則這兩個端點就無法彼此連接。如需有關這些方法的詳細資訊,請參閱<端點驗證類型>。

[!附註]

如需有關這個端點的資訊,請參閱<資料庫鏡像端點>。

資料庫鏡像連接會使用 Windows 驗證 (安全性支援提供者介面 (SSPI)) 或憑證型驗證。

Windows 驗證

在 Windows 驗證下,每個伺服器執行個體會使用執行程序之 Windows 使用者帳戶的 Windows 認證來登入另一端。基於這個理由,使用 Windows 驗證時,SQL Server 服務必須當作信任網域中的網域使用者來執行,或當作網路服務來執行。

若要驗證連接的兩端,Windows 驗證會使用正在執行 SQL Server 執行個體之 Windows 使用者帳戶的認證。因此,每個伺服器執行個體的使用者帳戶都必須具備必要的權限,才可登入或傳送訊息到其他各個伺服器執行個體。

如需使用 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 即得知連接要求不可靠,而拒絕連接。

安全性注意事項安全性注意事項

僅安裝來自受信任來源的憑證。

沒有任何自動的方法可以設定使用憑證的資料庫鏡像安全性。您必須使用 Transact-SQL。如需使用憑證型驗證以設定資料庫鏡像工作階段的範例,請參閱<範例:使用憑證設定資料庫鏡像 (Transact-SQL)>。

資料加密

依預設,資料庫鏡像端點要求在透過鏡像連接傳送資料時進行資料加密。在此情況下,端點只能連接到同樣使用加密的端點。除非您可保證網路的安全無虞,否則建議您要求對資料庫鏡像連接進行加密。不過,您也可以停用加密或使它成為支援項目,而非必要項目。若停用加密,資料就不會進行加密,而端點就無法連接到要求加密的端點。若支援加密,則只有在對應的端點支援或要求加密時,資料才會加密。

[!附註]

SQL Server Management Studio 在建立鏡像端點時,其加密會設為必要或停用。若要將加密設定變更為 SUPPORTED,請使用 ALTER ENDPOINT Transact-SQL 陳述式。如需詳細資訊,請參閱<ALTER ENDPOINT (Transact-SQL)>。

(選擇性) 您可以對 CREATE ENDPOINT 陳述式或 ALTER ENDPOINT 陳述式中的 ALGORITHM 選項指定下列其中一值,來控制端點可使用的加密演算法:

ALGORITHM 值

描述

RC4

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

AES

指定端點必須使用 AES 演算法。

AES RC4

指定這兩個端點必須與這個偏好 AES 演算法的端點針對加密演算法進行交涉。

RC4 AES

指定這兩個端點必須與這個偏好 RC4 演算法的端點針對加密演算法進行交涉。

如果連接的端點指定這兩種演算法,但指定順序不同,則以接受連接的端點為準。

[!附註]

雖然 RC4 比 AES 快許多,但是 RC4 相對而言是較弱的演算法,而 AES 相對而言則是較強的演算法。因此,建議您使用 AES 演算法。

如需用以指定加密的 Transact-SQL 語法詳細資訊,請參閱<CREATE ENDPOINT (Transact-SQL)>。