允許資料庫映象使用證書進行出站連線

iSQlServer發表於2008-11-17

本主題說明配置伺服器例項以使用證照對資料庫映象的出站連線進行身份驗證的步驟。 必須配置出站連線,才可以設定入站連線。

注意:
伺服器例項上的所有映象連線都使用單個資料庫映象端點,必須在建立端點時指定伺服器例項的身份驗證方法。
 


配置出站連線的程式分為以下基本步驟:

在 master 資料庫中,建立資料庫主金鑰。

在 master 資料庫中,為伺服器例項建立加密證照。

使用伺服器例項的證照為該伺服器例項建立端點。

將證照備份到檔案,並將其安全地複製到其他系統。

必須對每一個夥伴和見證伺服器(如果存在)完成以上步驟。

下面的過程詳細說明了這些步驟。 對於每個步驟,該過程都提供了一個在名為 HOST_A 的系統上配置伺服器例項的示例。下面的示例說明了在名為 HOST_B 的系統上配置另一伺服器例項的步驟(步驟相同)。

 過程
 配置用於出站映象連線的伺服器例項(在 HOST_A 上)
在 master 資料庫上,建立資料庫主金鑰(如果不存在)。 若要檢視資料庫的現有金鑰,請使用 sys.symmetric_keys 目錄檢視。

若要建立資料庫主金鑰,請使用下面的 Transact-SQL 命令:

 複製程式碼
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
GO

使用唯一的強密碼,並將其記錄到一個安全的位置。

有關詳細資訊,請參閱CREATE MASTER KEY (Transact-SQL)。

在 master 資料庫中,對伺服器例項建立一個用於其資料庫映象出站連線的加密證照。

例如,為 HOST_A 系統建立一個證照。

 複製程式碼
USE master;
CREATE CERTIFICATE HOST_A_cert
   WITH SUBJECT = 'HOST_A certificate for database mirroring';
GO

有關詳細資訊,請參閱 CREATE CERTIFICATE (Transact-SQL)。

若要檢視 master 資料庫中的證照,可以使用下面的 Transact-SQL 語句:

 複製程式碼
USE master;
SELECT * FROM sys.certificates;

有關詳細資訊,請參閱 sys.certificates (Transact-SQL)。

確保每個伺服器例項上都存在資料庫映象端點。

如果伺服器例項上已存在資料庫映象端點,則您應將該端點重新用於在伺服器例項上建立的任何其他會話。 若要確定伺服器例項上是否存在資料庫映象端點並檢視其配置,請使用下面的語句:

 複製程式碼
SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc FROM sys.database_mirroring_endpoints;

如果端點不存在,請建立一個端點,該端點使用此證照進行出站連線,並使用此證照的憑據通過其他系統的驗證。 這是一個伺服器範圍內的端點,供伺服器例項參與的所有映象會話使用。

例如,為 HOST_A 上的示例伺服器例項建立映象端點。

 複製程式碼
CREATE ENDPOINT Endpoint_Mirroring
   STATE = STARTED
   AS TCP (
      LISTENER_PORT=7024
      , LISTENER_IP = ALL
   )
   FOR DATABASE_MIRRORING (
      AUTHENTICATION = CERTIFICATE HOST_A_cert
      , ENCRYPTION = REQUIRED ALGORITHM AES
      , ROLE = ALL
   );
GO

有關詳細資訊,請參閱 CREATE ENDPOINT (Transact-SQL)。

備份證照並將其複製到其他系統。 若要在其他系統上配置入站連線,此步驟是必需的。

 複製程式碼
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
GO

有關詳細資訊,請參閱 BACKUP CERTIFICATE (Transact-SQL)。

使用您選擇的任何安全方法複製此證照。 必須格外小心地保證所有證照的安全。

前面步驟中的示例程式碼將在 HOST_A 上配置出站連線。

您現在需要對 HOST_B 執行相同的出站步驟,下面的示例說明了這些步驟。

 示例
下面的示例說明了如何配置 HOST_B 以進行出站連線。

 複製程式碼
USE master;
--Create the database Master Key, if needed.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '';
GO
-- Make a certifcate on HOST_B server instance.
CREATE CERTIFICATE HOST_B_cert
   WITH SUBJECT = 'HOST_B certificate for database mirroring';
GO
--Create a mirroring endpoint for the server instance on HOST_B.
CREATE ENDPOINT Endpoint_Mirroring
   STATE = STARTED
   AS TCP (
      LISTENER_PORT=7024
      , LISTENER_IP = ALL
   )
   FOR DATABASE_MIRRORING (
      AUTHENTICATION = CERTIFICATE HOST_B_cert
      , ENCRYPTION = REQUIRED ALGORITHM AES
      , ROLE = ALL
   );
GO
--Backup HOST_B certificate.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
GO
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.

使用您選擇的任何安全方法將證照複製到其他系統。 必須格外小心地保證所有證照的安全。

重要提示:
在建立出站連線之後,必須在每個伺服器例項上為其他伺服器例項配置入站連線。 有關詳細資訊,請參閱如何允許資料庫映象將證照用於入站連線 (Transact-SQL)。
 


有關建立映象資料庫的資訊,以及 Transact-SQL 示例,請參閱 如何為映象準備映象資料庫 (Transact-SQL)。

有關建立高效能模式會話的 Transact-SQL 示例,請參閱示例:使用證照設定資料庫映象 (Transact-SQL)。

 安全性
建議您對資料庫映象連線進行加密,除非您能夠保證網路的安全。

將證照複製到其他系統時,請使用安全的複製方法。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-496048/,如需轉載,請註明出處,否則將追究法律責任。

相關文章