Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
W tym przykładzie przedstawiono wszystkie etapy wymagane do utworzenia sesji dublowania bazy danych przy użyciu uwierzytelniania opartego na certyfikatach. W przykładach w tym temacie użyto języka Transact-SQL. Jeśli nie możesz zagwarantować bezpieczeństwa sieci, zalecamy użycie szyfrowania dla połączeń dublowania bazy danych.
Podczas kopiowania certyfikatu do innego systemu należy użyć metody bezpiecznego kopiowania. Bądź wyjątkowo ostrożny, aby wszystkie certyfikaty trzymać w bezpiecznym miejscu.
Przykład
W poniższym przykładzie pokazano, co należy zrobić dla jednego partnera, który znajduje się na HOST_A. W tym przykładzie te dwa zespoły są domyślnymi instancjami serwera na trzech systemach komputerowych. Dwie instancje serwera działają w niezaufanych domenach systemu Windows, więc wymagane jest uwierzytelnianie oparte na certyfikatach.
Główna rola jest wykonywana przez HOST_A, a rola lustrzana przez HOST_B.
Skonfigurowanie dublowania bazy danych przy użyciu certyfikatów obejmuje cztery etapy ogólne, z których trzy etapy– 1, 2 i 4 — są pokazane w tym przykładzie. Te etapy są następujące:
Konfigurowanie połączeń wychodzących
W tym przykładzie przedstawiono kroki dla:
Konfigurowanie Host_A dla połączeń wychodzących.
Konfigurowanie Host_B dla połączeń wychodzących.
Aby uzyskać informacje na temat tego etapu konfigurowania dublowania bazy danych, zobacz Zezwalaj punktowi końcowemu dublowania bazy danych na używanie certyfikatów dla połączeń wychodzących (Transact-SQL).
Konfigurowanie połączeń przychodzących
W tym przykładzie przedstawiono kroki dla:
Konfigurowanie Host_A dla połączeń przychodzących.
Konfigurowanie Host_B dla połączeń przychodzących.
Aby uzyskać informacje na temat tego etapu konfigurowania dublowania bazy danych, zobacz Zezwalaj punktowi końcowemu dublowania bazy danych na używanie certyfikatów dla połączeń przychodzących (Transact-SQL).
Tworzenie bazy danych lustrzanej
Aby uzyskać informacje na temat tworzenia bazy lustrzanej, zobacz Prepare a Mirror Database for Mirroring (SQL Server).
Konfigurowanie połączeń wychodzących
Aby skonfigurować Host_A dla połączeń wychodzących
W razie potrzeby w bazie danych master utwórz klucz główny bazy danych. Zastąp
<password>
prawidłowym hasłem.USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; GO
Utwórz certyfikat dla tego wystąpienia serwera.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GO
Utwórz punkt końcowy dublowania dla wystąpienia serwera przy użyciu certyfikatu.
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
Wykonaj kopię zapasową certyfikatu HOST_A i skopiuj go do innego systemu, HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GO
Korzystając z dowolnej metody bezpiecznego kopiowania, skopiuj C:\HOST_A_cert.cer do HOST_B.
Aby skonfigurować Host_B dla połączeń wychodzących
W razie potrzeby w bazie danych master utwórz klucz główny bazy danych.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GO
Utwórz certyfikat na instancji serwera HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GO
Utwórz punkt końcowy dublowania dla wystąpienia serwera w 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
Tworzenie kopii zapasowej certyfikatu HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GO
Używając dowolnej metody bezpiecznego kopiowania, skopiuj C:\HOST_B_cert.cer do HOST_A.
Aby uzyskać więcej informacji, zobacz Zezwól punktowi końcowemu dublowania bazy danych na użycie certyfikatów dla połączeń wychodzących (Transact-SQL).
Konfigurowanie połączeń przychodzących
Aby skonfigurować Host_A dla połączeń przychodzących
Utwórz konto na HOST_A dla HOST_B. Zastąp
<password>
prawidłowym hasłem.USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '<password>'; GO
Utwórz użytkownika dla tego logowania.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GO
--Skojarz certyfikat z użytkownikiem.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GO
Udziel uprawnień CONNECT podczas logowania dla zdalnego punktu końcowego dublowania.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Aby skonfigurować Host_B dla połączeń przychodzących
Utwórz konto logowania na HOST_B dla HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GO
Utwórz użytkownika dla tego loginu.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GO
Skojarz certyfikat z użytkownikiem.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GO
Udziel uprawnień CONNECT na login dla zdalnego punktu końcowego mirroringu.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Ważny
Jeśli zamierzasz uruchomić wysoko-bezpieczny tryb z automatycznym failover, trzeba powtórzyć te same kroki konfiguracji, aby skonfigurować świadka dla połączeń wychodzących i przychodzących. Skonfigurowanie połączeń przychodzących, gdy zaangażowany jest świadek, wymaga skonfigurowania identyfikatorów logowania i użytkowników dla świadka u obu partnerów oraz dla obu partnerów u świadka.
Aby uzyskać więcej informacji, zobacz Pozwól punktowi końcowemu dublowania bazy danych używać certyfikatów dla połączeń przychodzących (Transact-SQL).
Tworzenie bazy danych lustrzanej
Aby uzyskać informacje na temat tworzenia bazy danych lustrzanej, zobacz Prepare a Mirror Database for Mirroring (SQL Server).
Konfigurowanie partnerów mirroringu
Na wystąpieniu serwera lustrzanego na HOST_B, ustaw wystąpienie serwera na HOST_A jako partnera (co czyni go początkowym wystąpieniem serwera głównego). Zastąp
TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024
prawidłowym adresem sieciowym. Aby uzyskać więcej informacji, zobacz Określanie adresu sieciowego serwera (dublowanie bazy danych).--At HOST_B, set server instance on HOST_A as partner (principal server): ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024'; GO
W głównym wystąpieniu serwera na HOST_A ustaw wystąpienie serwera na HOST_B jako partnera (co czyni go początkowym wystąpieniem serwera lustrzanego). Zastąp
TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024
prawidłowym adresem sieciowym.--At HOST_A, set server instance on HOST_B as partner (mirror server). ALTER DATABASE AdventureWorks SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024'; GO
W tym przykładzie przyjęto założenie, że sesja będzie działać w trybie wysokiej wydajności. Aby skonfigurować tę sesję w trybie wysokiej wydajności, w wystąpieniu głównego serwera (na HOST_A) ustaw opcję bezpieczeństwo transakcji na WYŁ.
--Change to high-performance mode by turning off transaction safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GO
Notatka
Jeśli zamierzasz działać w trybie wysokiego bezpieczeństwa z automatycznym przełączaniem awaryjnym, pozostaw bezpieczeństwo transakcji ustawione na PEŁNE (ustawienie domyślne) i dodaj świadka tak szybko, jak to możliwe po wykonaniu drugiej instrukcji SET PARTNER "partner_server". Należy pamiętać, że świadek musi być najpierw skonfigurowany dla połączeń wychodzących i przychodzących.
Powiązane zadania
Przygotowanie bazy danych lustrzanej do Lustrzanego Odbicia (SQL Server)
Zarządzanie logowaniami i zadaniami po przełączeniu roli (SQL Server)
Zarządzanie metadanymi przy udostępnianiu bazy danych na innym wystąpieniu serwera (SQL Server) (SQL Server)
Rozwiązywanie problemów z konfiguracją dublowania bazy danych (SQL Server)
Zobacz też
Zabezpieczenia transportu dla dublowania baz danych i grup dostępności Always On (SQL Server)
określ adres sieciowy serwera (dublowanie bazy danych)
Punkt końcowy mirroringu bazy danych (SQL Server)
Użyj certyfikatów dla punktu końcowego dublowania bazy danych (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Centrum Bezpieczeństwa dla Silnika Baz Danych SQL Server i Azure SQL Database