允許資料庫映象使用證書進行出站連線
本主題說明配置伺服器例項以使用證照對資料庫映象的出站連線進行身份驗證的步驟。 必須配置出站連線,才可以設定入站連線。
注意:
伺服器例項上的所有映象連線都使用單個資料庫映象端點,必須在建立端點時指定伺服器例項的身份驗證方法。
配置出站連線的程式分為以下基本步驟:
在 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql 修改使用者許可權,允許遠端連線資料庫MySql資料庫
- 更新資料庫允許連線的會話數量和使用者數量資料庫會話
- 允許mysql遠端使用者連線。MySql
- 允許遠端連線到MySQL資料庫伺服器的步驟MySql資料庫伺服器
- XP 允許多使用者遠端連線
- 【Node.js】使用mongoose連線資料庫以及進行資料儲存Node.jsGo資料庫
- Python 連線mysql資料庫進行操作PythonMySql資料庫
- 允許本地Sql Server 遠端連線SQLServer
- 使用Moya庫,進行https證書校驗HTTP
- 使用Sequelize連線資料庫資料庫
- 使用JPA連線資料庫資料庫
- 資料庫限制/允許某些IP訪問資料庫
- 配置 MySQL 允許遠端連線的方法MySql
- 配置mysql允許遠端連線的方法MySql
- Oracle RMAN 連線資料庫認證方法Oracle資料庫
- 1.6.4.3. 使用作業系統認證連線資料庫作業系統資料庫
- 使用C#連線資料庫C#資料庫
- 使用Python連線資料庫Python資料庫
- 資料庫連線池的使用資料庫
- 使用hostname方式連線資料庫!資料庫
- PROXOOL資料庫連線池使用資料庫
- 使用cmd連線mysql資料庫MySql資料庫
- 使用離線工具dmbackup進行資料庫備份資料庫
- SQL Server資料庫映象的FailOver自動連線SQLServer資料庫AI
- 配置redis伺服器允許遠端連線Redis伺服器
- 帶你進入資料庫連線池資料庫
- Oracle檢視允許的最大連線數和當前連線數Oracle
- Kettle資料庫資源庫連線執行示例資料庫
- win10允許遠端桌面連線如何設定_win10怎樣設定允許遠端桌面連線Win10
- [Sqlite] Java使用jdbc連線Sqlite資料庫進行各種資料操作的詳細過程SQLiteJavaJDBC資料庫
- 【資料庫】使用DBever連線人大金倉資料庫資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- Django使用pymysql連線MySQL資料庫DjangoMySql資料庫
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- Laravel 使用多個資料庫連線Laravel資料庫
- 使用instantclient連線oracle資料庫clientOracle資料庫
- 使用ABP EntityFramework連線MySQL資料庫FrameworkMySql資料庫
- idea使用資料庫連線工具Idea資料庫