Sdílet prostřednictvím


Příklad: Nastavení zrcadlení databáze pomocí certifikátů (Transact-SQL)

platí pro:SQL Server

Tento příklad ukazuje všechny fáze potřebné k vytvoření relace zrcadlení databáze pomocí ověřování založeného na certifikátech. Příklady v tomto tématu používají Jazyk Transact-SQL. Pokud nemůžete zaručit, že je vaše síť zabezpečená, doporučujeme používat šifrování pro připojení k zrcadlení databáze.

Při kopírování certifikátu do jiného systému použijte metodu zabezpečeného kopírování. Buďte velmi opatrní, abyste zajistili zabezpečení všech certifikátů.

Příklad

Následující příklad ukazuje, co musí být provedeno u jednoho partnera, který se nachází v HOST_A. V tomto příkladu jsou oba partneři výchozími instancemi serveru ve třech počítačových systémech. Dvě instance serveru běží v nedůvěryhodných doménách Windows, takže je vyžadováno ověřování na základě certifikátů.

Počáteční hlavní roli převezme HOST_A a zrcadlovou roli převezme HOST_B.

Nastavení zrcadlení databáze pomocí certifikátů zahrnuje čtyři obecné fáze, z nichž tento příklad ukazuje tři fáze 1, 2 a 4. Tyto fáze jsou následující:

  1. konfigurace odchozích připojení

    Tento příklad ukazuje kroky pro:

    1. Konfigurace Host_A pro odchozí připojení

    2. Konfigurace Host_B pro odchozí připojení

    Informace o této fázi nastavení zrcadlení databáze najdete v tématu Povolit koncovému bodu zrcadlení databáze používat certifikáty pro odchozí připojení (Transact-SQL).

  2. konfigurace příchozích připojení

    Tento příklad ukazuje kroky pro:

    1. Konfigurace Host_A pro příchozí připojení

    2. Konfigurace Host_B pro příchozí připojení

    Informace o této fázi nastavení zrcadlení databáze naleznete v tématu Povolit koncovému bodu zrcadlení databáze používat certifikáty pro příchozí připojení (Transact-SQL).

  3. Vytvoření zrcadlové databáze

    Informace o tom, jak vytvořit zrcadlovou databázi, naleznete v tématu Příprava zrcadlové databáze pro zrcadlení (SQL Server).

  4. Nastavení partnerů zrcadlení

Konfigurace odchozích připojení

Konfigurace Host_A pro odchozí připojení

  1. V hlavní databázi v případě potřeby vytvořte hlavní klíč databáze. Nahraďte <password> platným heslem.

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';  
    GO  
    
  2. Vytvořte certifikát pro tuto instanci serveru.

    USE master;  
    CREATE CERTIFICATE HOST_A_cert   
       WITH SUBJECT = 'HOST_A certificate';  
    GO  
    
  3. Pomocí certifikátu vytvořte zrcadlový koncový bod pro instanci serveru.

    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  
    
  4. Zálohujte HOST_A certifikát a zkopírujte ho do jiného systému HOST_B.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';  
    GO  
    
  5. Pomocí jakékoli zabezpečené metody kopírování zkopírujte C:\HOST_A_cert.cer do HOST_B.

Konfigurace Host_B pro odchozí připojení

  1. V hlavní databázi v případě potřeby vytvořte hlavní klíč databáze.

    USE master;  
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';  
    GO  
    
  2. Vytvořte certifikát v instanci serveru HOST_B.

    CREATE CERTIFICATE HOST_B_cert   
       WITH SUBJECT = 'HOST_B certificate for database mirroring';  
    GO  
    
  3. Na HOST_B vytvořte koncový bod zrcadlení pro instanci serveru.

    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  
    
  4. Zálohujte HOST_B certifikát.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';  
    GO   
    
  5. Pomocí jakékoli zabezpečené metody kopírování zkopírujte C:\HOST_B_cert.cer do HOST_A.

Další informace najdete v tématu Povolit koncovému bodu zrcadlení databáze používat certifikáty pro odchozí připojení (Transact-SQL).

[začátek příkladu]

Konfigurace příchozích připojení

Konfigurace Host_A pro příchozí připojení

  1. Vytvořte přihlášení na HOST_A pro HOST_B. Nahraďte <password> platným heslem.

    USE master;  
    CREATE LOGIN HOST_B_login WITH PASSWORD = '<password>';  
    GO  
    
  2. --Vytvořte uživatele pro toto přihlášení.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    
  3. --Přidružte certifikát k uživateli.

    CREATE CERTIFICATE HOST_B_cert  
       AUTHORIZATION HOST_B_user  
       FROM FILE = 'C:\HOST_B_cert.cer'  
    GO  
    
  4. Udělte pro přihlášení ke koncovému bodu vzdáleného zrcadlení oprávnění CONNECT.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];  
    GO  
    

Konfigurace Host_B pro příchozí připojení

  1. Vytvořte přihlášení na HOST_B pro HOST_A.

    USE master;  
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';  
    GO  
    
  2. Vytvořte uživatele pro toto přihlášení.

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;  
    GO  
    
  3. Přidružte certifikát k uživateli.

    CREATE CERTIFICATE HOST_A_cert  
       AUTHORIZATION HOST_A_user  
       FROM FILE = 'C:\HOST_A_cert.cer'  
    GO  
    
  4. Udělte pro přihlášení ke koncovému bodu vzdáleného zrcadlení oprávnění CONNECT.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];  
    GO  
    

Důležitý

Pokud máte v úmyslu spouštět v režimu vysoké bezpečnosti s automatickým převzetím služeb při selhání, musíte stejný postup nastavení zopakovat, abyste nakonfigurovali svědka pro odchozí a příchozí připojení. Nastavení příchozích připojení, když je zapojen svědek, vyžaduje, abyste nastavili přihlašovací údaje a uživatele pro svědka na obou partnerech a pro oba partnery na svědkovi.

Další informace najdete v tématu Povolit koncovému bodu zrcadlení databáze používat certifikáty pro příchozí připojení (Transact-SQL).

[začátek příkladu]

Vytvoření zrcadlové databáze

Informace o tom, jak vytvořit zrcadlovou databázi, naleznete v tématu Příprava zrcadlové databáze pro zrcadlení (SQL Server).

Konfigurace partnerů pro zrcadlení

  1. V instanci zrcadlového serveru na HOST_B nastavte instanci serveru na HOST_A jako partnera (což z něj činí počáteční instanci hlavního serveru). Nahraďte platnou síťovou adresu TCP://HOST_A.Mydomain.Corp.Adventure-Works``.com:7024. Další informace naleznete v tématu Určení síťové adresy serveru (zrcadlení databáze).

    --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  
    
  2. Na hlavní instanci serveru na HOST_A nastavte instanci serveru na HOST_B jako partnera (což z ní činí počáteční instanci zrcadlového serveru). Nahraďte platnou síťovou adresu TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024.

    --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  
    
  3. Tento příklad předpokládá, že relace bude spuštěna v režimu vysokého výkonu. Pokud chcete tuto relaci nakonfigurovat pro vysoce výkonný režim, na hlavní instanci serveru (v HOST_A) nastavte bezpečnost transakcí na VYPNUTO.

    --Change to high-performance mode by turning off transaction safety.  
    ALTER DATABASE AdventureWorks   
        SET PARTNER SAFETY OFF  
    GO  
    

    Poznámka

    Pokud chcete spustit v režimu vysoké bezpečnosti s automatickým převzetím služeb při selhání, ponechte nastavení bezpečnosti transakcí na FULL (výchozí nastavení) a po spuštění druhého příkazu SET PARTNER 'partner_server' přidejte svědka co nejdříve. Upozorňujeme, že svědek musí být nejprve nakonfigurován pro odchozí a příchozí připojení.

[začátek příkladu]

Související úkoly

Viz také

Zabezpečení přenosu dat pro zrcadlení databáze a Always On skupiny dostupnosti (SQL Server)
určení síťové adresy serveru (zrcadlení databáze)
Koncový bod zrcadlení databáze (SQL Server)
Použít certifikáty pro koncový bod databázového zrcadlení (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Security Center pro databázový stroj SQL Serveru a službu Azure SQL Database