如何:允許資料庫鏡像使用憑證建立傳入連接 (Transact-SQL)
此主題描述設定伺服器執行個體,以使用憑證來驗證資料庫鏡像之傳入連接的步驟。在設定傳入連接之前,您必須先在每一個伺服器執行個體上設定傳出連接。如需詳細資訊,請參閱<如何:讓資料庫鏡像使用傳出連接的憑證 (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 憑證 (由 如何:讓資料庫鏡像使用傳出連接的憑證 (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)>。
安全性
將憑證複製到另一個系統時,請使用安全複製方法。務必將您所有的憑證小心保管。