允許資料庫鏡像端點使用傳入連接的憑證 (Transact-SQL)

此主題描述設定伺服器執行個體,以使用憑證來驗證資料庫鏡像之傳入連接的步驟。 在設定傳入連接之前,您必須先在每一個伺服器執行個體上設定傳出連接。 如需詳細資訊,請參閱<允許資料庫鏡像端點使用傳出連接的憑證 (Transact-SQL)>。

設定傳入連接的程序,包括下列一般步驟:

  1. 為其他系統建立登入。

  2. 為該登入建立使用者。

  3. 取得另一個伺服器執行個體的鏡像端點的憑證。

  4. 使憑證與步驟 2 所建立的使用者產生關聯。

  5. 將 CONNECT 權限授與登入,以連接該鏡像端點。

如果有見證,您也必須為它設定傳入連接。 這需要在兩個夥伴上設定見證的登入、使用者和憑證,反之亦然。

下列程序將詳細說明這些步驟。 對於每個步驟,此程序會提供在名為 HOST_A 的系統上設定伺服器執行個體的範例。 隨附的「範例」部分則針對名為 HOST_B 系統上的另一個伺服器執行個體示範相同的步驟。

設定 (HOST_A 上) 傳入鏡像連接的伺服器執行個體

  1. 為其他系統建立登入。

    下列範例在 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)>。

  2. 為該登入建立使用者。

    下列範例為上一個步驟所建立的登入,建立使用者 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)>。

  3. 取得另一個伺服器執行個體的鏡像端點的憑證。

    如果在設定傳出連接前,您尚未這麼做,請為遠端伺服器執行個體的鏡像端點取得憑證副本。 若要這麼做,請在該伺服器執行個體上備份憑證,如<允許資料庫鏡像端點使用傳出連接的憑證 (Transact-SQL)>所示。 將憑證複製到另一個系統時,請使用安全複製方法。 務必將您所有的憑證小心保管。

    如需詳細資訊,請參閱<BACKUP CERTIFICATE (Transact-SQL)>。

  4. 使憑證與步驟 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)>。

  5. 將 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 範例在內,請參閱<準備鏡像資料庫以進行鏡像 (SQL Server)>。

如需建立高效能模式工作階段的 Transact-SQL 範例,請參閱<範例:使用憑證設定資料庫鏡像 (Transact-SQL)>。

安全性

將憑證複製到另一個系統時,請使用安全複製方法。 務必將您所有的憑證小心保管。

請參閱

參考

GRANT 端點權限 (Transact-SQL)

概念

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

設定加密鏡像資料庫

資料庫鏡像端點 (SQL Server)

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