Voorbeeld: Databasespiegeling configureren met behulp van Windows authentication (Transact-SQL)

Van toepassing op:SQL Server

In dit voorbeeld worden alle fasen weergegeven die nodig zijn om een databasespiegelingssessie met een getuige te maken met behulp van Windows-verificatie. In de voorbeelden in dit onderwerp wordt Transact-SQL gebruikt. Merk op dat u als alternatief voor het gebruik van Transact-SQL-stappen de Wizard Database Mirroring-beveiliging configureren kunt gebruiken om databasemirroring in te stellen. Zie Een databasespiegelingssessie tot stand brengen met behulp van Windows-verificatie (SQL Server Management Studio) voor meer informatie.

Prerequisite

In het voorbeeld wordt de AdventureWorks-voorbeelddatabase gebruikt, die standaard gebruikmaakt van het eenvoudige herstelmodel. Als u databasespiegeling met deze database wilt gebruiken, moet u deze wijzigen om het volledige herstelmodel te gebruiken. Als u dit in Transact-SQL wilt doen, gebruikt u de ALTER DATABASE instructie als volgt:

USE master;  
GO  
ALTER DATABASE AdventureWorks   
SET RECOVERY FULL;  
GO  

Zie Het herstelmodel van een database (SQL Server) weergeven of wijzigen voor informatie over het wijzigen van het herstelmodel in SQL Server Management Studio.

toestemmingen

Vereist ALTER-machtiging voor de database en CREATE ENDPOINT machtiging, of lidmaatschap van de vaste serverfunctie sysadmin .

Example

In dit voorbeeld zijn de twee partners en de witness de standaardserverexemplaren op drie computersystemen. De drie serverinstanties gebruiken hetzelfde Windows-domein, maar het gebruikersaccount (dat als serviceaccount voor het opstarten wordt gebruikt) is anders voor de witness-serverinstantie in het voorbeeld.

De volgende tabel bevat een overzicht van de waarden die in dit voorbeeld worden gebruikt.

Eerste spiegelingsrol Hostsysteem Domeingebruikersaccount
Schoolleider PARTNERHOST1 <Mydomain>\<dbousername>
Mirror PARTNERHOST5 <Mydomain>\<dbousername>
Witness WITNESSHOST4 <Somedomain>\<witnessuser>
  1. Maak een eindpunt op de primaire serverinstantie (de standaardinstantie op PARTNERHOST1).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=PARTNER)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    -- Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  2. Maak een eindpunt op het mirrorserverexemplaar (standaardexemplaar op PARTNERHOST5).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=ALL)  
    GO  
    --Partners under same domain user; login already exists in master.  
    --Create a login for the witness server instance,  
    --which is running as Somedomain\witnessuser:  
    USE master ;  
    GO  
    CREATE LOGIN [Somedomain\witnessuser] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of witness.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Somedomain\witnessuser];  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  3. Maak een eindpunt op de instantie van de witness-server (standaardinstantie op WITNESSHOST4).

    CREATE ENDPOINT Endpoint_Mirroring  
        STATE=STARTED   
        AS TCP (LISTENER_PORT=7022)   
        FOR DATABASE_MIRRORING (ROLE=WITNESS)  
    GO  
    --Create a login for the partner server instances,  
    --which are both running as Mydomain\dbousername:  
    USE master ;  
    GO  
    CREATE LOGIN [Mydomain\dbousername] FROM WINDOWS ;  
    GO  
    --Grant connect permissions on endpoint to login account of partners.  
    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [Mydomain\dbousername];  
    GO  
    
  4. Maak de spiegeldatabase. Zie Een mirrordatabase voorbereiden voor spiegeling (SQL Server)voor meer informatie.

  5. Stel op het spiegelserverexemplaar op PARTNERHOST5 het serverexemplaar op PARTNERHOST1 in als partner (waardoor dit het oorspronkelijke principal-serverexemplaar wordt).

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. Stel op de primaire serverinstantie op PARTNERHOST1 de serverinstantie op PARTNERHOST5 in als partner (waardoor dit de initiƫle spiegelserverinstantie wordt).

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. Stel op de principal-server de witness in (die zich op WITNESSHOST4 bevindt).

    ALTER DATABASE AdventureWorks   
        SET WITNESS =   
        'TCP://WITNESSHOST4.COM:7022'  
    GO  
    

Gerelateerde taken

Zie ook

ALTER DATABASE (Transact-SQL)
Het Eindpunt voor Databasespiegeling (SQL Server)
Transportbeveiliging voor Database Mirroring en Always On Availability Groups (SQL Server)
Metagegevens beheren bij het beschikbaar maken van een database op een ander serverexemplaar (SQL Server)
Security Center voor SQL Server Database Engine en Azure SQL Database