Dela via


Databasspegling – Använda certifikat för inkommande anslutningar

gäller för:SQL Server

I det här avsnittet beskrivs stegen för att konfigurera serverinstanser för att använda certifikat för att autentisera inkommande anslutningar för databasspegling. Innan du kan konfigurera inkommande anslutningar måste du konfigurera utgående anslutningar på varje serverinstans. Mer information finns i Tillåt att en databasspeglingsslutpunkt använder certifikat för utgående anslutningar (Transact-SQL).

Processen för att konfigurera inkommande anslutningar omfattar följande allmänna steg:

  1. Skapa en inloggning för ett annat system.

  2. Skapa en användare för inloggningen.

  3. Hämta certifikatet för speglingsslutpunkten för den andra serverinstansen.

  4. Associera certifikatet med den användare som skapades i steg 2.

  5. Bevilja CONNECT-behörighet för inloggningen för speglingsslutpunkten.

Om det finns ett vittne måste du också konfigurera inkommande anslutningar för det. Detta kräver att du konfigurerar inloggningar, användare och certifikat för vittnet på båda partnerna, och vice versa.

I följande procedur beskrivs de här stegen i detalj. För varje steg innehåller proceduren ett exempel på hur du konfigurerar en serverinstans i ett system med namnet HOST_A. Det tillhörande avsnittet Exempel visar samma steg för en annan serverinstans i ett system med namnet HOST_B.

Konfigurera serverinstanser för inkommande speglingsanslutningar (på HOST_A)

  1. Skapa en inloggning för det andra systemet.

    I följande exempel skapas en inloggning för systemet, HOST_B, i huvuddatabasen för serverinstansen på HOST_A. I det här exemplet heter inloggningen HOST_B_login. Ersätt <password> med ett giltigt lösenord.

    USE master;  
    CREATE LOGIN HOST_B_login   
       WITH PASSWORD = '<password>';  
    GO  
    

    Mer information finns i CREATE LOGIN (Transact-SQL).

    Om du vill visa inloggningarna på den här serverinstansen kan du använda följande Transact-SQL-instruktion:

    SELECT * FROM sys.server_principals  
    

    Mer information finns i sys.server_principals (Transact-SQL).

  2. Skapa en användare för inloggningen.

    I följande exempel skapas en användare, HOST_B_user, för inloggningen som skapades i föregående steg.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

    Mer information finns i CREATE USER (Transact-SQL).

    Om du vill visa användarna på den här serverinstansen kan du använda följande Transact-SQL-instruktion:

    SELECT * FROM sys.sysusers;  
    

    För mer information, se sys.sysusers (Transact-SQL).

  3. Hämta certifikatet för speglingsslutpunkten för den andra serverinstansen.

    Om du inte redan har gjort det när du konfigurerar utgående anslutningar hämtar du en kopia av certifikatet för speglingsslutpunkten för fjärrserverinstansen. Det gör du genom att säkerhetskopiera certifikatet på den serverinstansen enligt beskrivningen i Tillåt att en databasspeglingsslutpunkt använder certifikat för utgående anslutningar (Transact-SQL). När du kopierar ett certifikat till ett annat system använder du en säker kopieringsmetod. Var mycket noga med att skydda alla dina certifikat.

    Mer information finns i BACKUP CERTIFICATE (Transact-SQL).

  4. Associera certifikatet med den användare som skapades i steg 2.

    I följande exempel associeras certifikatet för HOST_B med användaren på HOST_A.

    USE master;  
    CREATE CERTIFICATE HOST_B_cert  
       AUTHORIZATION HOST_B_user  
       FROM FILE = 'C:\HOST_B_cert.cer'  
    GO  
    

    Mer information finns i CREATE CERTIFICATE (Transact-SQL).

    Om du vill visa certifikaten på den här serverinstansen använder du följande Transact-SQL-instruktion:

    SELECT * FROM sys.certificates  
    

    För mer information, se sys.certificates (Transact-SQL).

  5. Bevilja CONNECT-behörighet vid inloggningen för fjärrspeglingsslutpunkten.

    Om du till exempel vill bevilja behörighet på HOST_A till fjärrserverinstansen på HOST_B för att ansluta till den lokala inloggningen använder du följande Transact-SQL-instruktioner för att ansluta till HOST_B_login:

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

    För mer information, se Tilldela slutpunktsbehörigheter (Transact-SQL).

Detta slutför konfigurationen av certifikatautentisering för HOST_B att logga in på HOST_A.

Nu måste du utföra motsvarande inkommande steg för HOST_A på HOST_B. De här stegen illustreras i den inkommande delen av exemplet i avsnittet Exempel nedan.

Exempel

I följande exempel visas hur du konfigurerar HOST_B för inkommande anslutningar. Ersätt <password> med ett giltigt lösenord.

Anteckning

I det här exemplet används en certifikatfil som innehåller det HOST_A certifikat som skapas av ett kodfragment i Tillåt att en databasspeglingsslutpunkt använder certifikat för utgående anslutningar (Transact-SQL).

USE master;  
--On HOST_B, create a login for HOST_A.  
CREATE LOGIN HOST_A_login WITH PASSWORD = '<password>';  
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.)  
--Associate 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  

Om du tänker köra i högsäkerhetsläge med automatisk redundans måste du upprepa samma konfigurationssteg för att konfigurera vittnet för utgående och inkommande anslutningar.

Information om hur du skapar en speglingsdatabas, inklusive ett Transact-SQL exempel, finns i Förbereda en speglingsdatabas för spegling (SQL Server).

Ett Transact-SQL exempel på hur du upprättar en session med hög prestanda finns i Exempel: Konfigurera databasspegling med hjälp av certifikat (Transact-SQL).

.NET Framework Säkerhet

När du kopierar ett certifikat till ett annat system använder du en säker kopieringsmetod. Var mycket noga med att skydda alla dina certifikat.

Se även

Transportsäkerhet för databasspegling och Always On-tillgänglighetsgrupper (SQL Server)
BEVILJA slutpunktsbehörigheter (Transact-SQL)
konfigurera en krypterad speglingsdatabas
SQL Server-slutpunkten (Database Mirroring Endpoint)
Felsök konfigurationen för databasspegling (SQL Server)