資料庫鏡像 - 使用傳入連接的憑證
適用於:SQL Server
此主題描述設定伺服器執行個體,以使用憑證來驗證資料庫鏡像之傳入連接的步驟。 在設定傳入連接之前,您必須先在每一個伺服器執行個體上設定傳出連接。 如需詳細資訊,請參閱 允許資料庫鏡像端點使用輸出連線的憑證 (Transact-SQL)。
設定傳入連接的程序,包括下列一般步驟:
為其他系統建立登入。
為該登入建立使用者。
取得另一個伺服器執行個體的鏡像端點的憑證。
使憑證與步驟 2 所建立的使用者產生關聯。
將 CONNECT 權限授與登入,以連接該鏡像端點。
如果有見證,您也必須為它設定傳入連接。 這需要在兩個夥伴上設定見證的登入、使用者和憑證,反之亦然。
下列程序將詳細說明這些步驟。 對於每個步驟,此程序會提供在名為 HOST_A 的系統上設定伺服器執行個體的範例。 隨附的「範例」部分則針對名為 HOST_B 系統上的另一個伺服器執行個體示範相同的步驟。
設定 (HOST_A 上) 傳入鏡像連接的伺服器執行個體
為其他系統建立登入。
下列範例在 HOST_A 之伺服器執行個體的 master 資料庫中,建立系統 HOST_B 的登入;在此範例中,登入名稱為
HOST_B_login
。 以您自己的密碼取代範例密碼。USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#'; GO
如需詳細資訊,請參閱 CREATE LOGIN (Transact-SQL)。
若要檢視此伺服器執行個體上的登入,您可以使用下列 Transact-SQL 陳述式:
SELECT * FROM sys.server_principals
如需詳細資訊,請參閱 sys.server_principals (Transact-SQL)。
為該登入建立使用者。
下列範例為上一個步驟所建立的登入,建立使用者
HOST_B_user
。USE master; CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
如需詳細資訊,請參閱 CREATE USER (Transact-SQL)。
若要檢視此伺服器執行個體上的使用者,您可以使用下列 Transact-SQL 陳述式:
SELECT * FROM sys.sysusers;
如需詳細資訊,請參閱 sys.sysusers (Transact-SQL)。
取得另一個伺服器執行個體的鏡像端點的憑證。
如果在設定傳出連接前,您尚未這麼做,請為遠端伺服器執行個體的鏡像端點取得憑證副本。 若要這樣做,請依允許資料庫鏡像端點使用傳出連接的憑證 (Transact-SQL) 中所述在該伺服器執行個體上備份憑證。 將憑證複製到另一個系統時,請使用安全複製方法。 務必將您所有的憑證小心保管。
如需詳細資訊,請參閱 BACKUP CERTIFICATE (Transact-SQL)。
使憑證與步驟 2 所建立的使用者產生關聯。
下列範例使 HOST_B 的憑證與它在 HOST_A 的使用者產生關聯。
USE master; CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
如需詳細資訊,請參閱 CREATE CERTIFICATE (Transact-SQL)。
若要檢視此伺服器執行個體上的憑證,請使用下列 Transact-SQL 陳述式:
SELECT * FROM sys.certificates
如需詳細資訊,請參閱 sys.certificates (Transact-SQL)。
將 CONNECT 權限授與登入,以連接遠端鏡像端點。
例如,若要在 HOST_A 上授與權限給 HOST_B 上的遠端伺服器執行個體來連接到其本機登入 (也就是連接到
HOST_B_login
),請使用下列 Transact-SQL 陳述式:USE master; GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
如需詳細資訊,請參閱 GRANT 端點權限 (Transact-SQL)。
如此即完成為 HOST_B 設定憑證驗證來登入到 HOST_A。
接著,您必須為 HOST_B 上的 HOST_A 執行對等的傳入步驟。 這些步驟將在下一節<範例>中範例的傳入部分加以說明。
範例
下列範例示範設定 HOST_B 的傳入連接。
注意
本例使用包含 HOST_A 憑證的憑證檔案,此 HOST_A 憑證是由允許資料庫鏡像端點使用傳出連接的憑證 (Transact-SQL) 中的程式碼片段所建立。
USE master;
--On HOST_B, create a login for HOST_A.
CREATE LOGIN HOST_A_login WITH PASSWORD = 'AStrongPassword!@#';
GO
--Create a user, HOST_A_user, for that login.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login
GO
--Obtain HOST_A certificate. (See the note
-- preceding this example.)
--Asscociate this certificate with the user, HOST_A_user.
CREATE CERTIFICATE HOST_A_cert
AUTHORIZATION HOST_A_user
FROM FILE = 'C:\HOST_A_cert.cer';
GO
--Grant CONNECT permission for the server instance on HOST_A.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_A_login
GO
如果您想要在具有自動容錯移轉的高安全性模式下執行,就必須重複相同的設定步驟,以便設定傳出和傳入連接的見證。
如需建立鏡像資料庫的相關資訊,包括 Transact-SQL 範例在內,請參閱準備鏡像資料庫以進行鏡像 (Transact-SQL)。
如需建立高效能模式工作階段的 Transact-SQL 範例,請參閱 範例:使用憑證設定資料庫鏡像 (Transact-SQL)。
.NET Framework 安全性
將憑證複製到另一個系統時,請使用安全複製方法。 務必將您所有的憑證小心保管。
另請參閱
資料庫鏡像和 Always On 可用性群組的傳輸安全性 (SQL Server)
GRANT 端點權限 (Transact-SQL)
設定加密鏡像資料庫
資料庫鏡像端點 (SQL Server)
為資料庫鏡像組態進行疑難排解 (SQL Server)