Freigeben über


Beispiel: Einrichten der Datenbankspiegelung mithilfe der Windows-Authentifizierung (Transact-SQL)

In diesem Beispiel werden sämtliche Schritte erläutert, die für die Erstellung einer Datenbank-Spiegelungssitzung mit einem Zeugen mithilfe der Windows-Authentifizierung erforderlich sind. In den Beispielen in diesem Thema wird Transact-SQL verwendet. Beachten Sie Folgendes: Anstelle der Transact-SQL-Schritte können Sie für die Einrichtung von Datenbankspiegelungen den Assistenten zum Konfigurieren der Sicherheit für die Datenbankspiegelung verwenden. Weitere Informationen finden Sie unter Einrichten einer Datenbank-Spiegelungssitzung mithilfe der Windows-Authentifizierung (SQL Server Management Studio).

Voraussetzung

In diesem Beispiel wird die AdventureWorks -Beispieldatenbank verwendet, in der standardmäßig das einfache Wiederherstellungsmodell zum Einsatz kommt. Um diese Datenbank für die Datenbankspiegelung verwenden zu können, muss sie dahin gehend geändert werden, dass das vollständige Wiederherstellungsmodell verwendet wird. Verwenden Sie zu diesem Zweck in Transact-SQL die ALTER DATABASE-Anweisung wie folgt:

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

Informationen zum Ändern des Wiederherstellungsmodells in SQL Server Management Studio finden Sie unter Anzeigen oder Ändern des Wiederherstellungsmodells einer Datenbank (SQL Server).

Berechtigungen

Erfordert die ALTER-Berechtigung für die Datenbank und die CREATE ENDPOINT-Berechtigung oder die Mitgliedschaft in der festen Serverrolle sysadmin .

Beispiel

In diesem Beispiel sind die beiden Partner und der Zeuge die standardmäßigen Serverinstanzen auf drei Computersystemen. Von den drei Serverinstanzen wird dieselbe Windows-Domäne ausgeführt, das (als Dienststartkonto verwendete) Benutzerkonto für die Zeugenserverinstanz im Beispiel weicht jedoch ab.

In der folgenden Tabelle finden Sie eine Zusammenfassung der in diesem Beispiel verwendeten Werte.

Rolle bei der ersten Spiegelung Hostsystem Domänenbenutzerkonto
Prinzipal PARTNERHOST1 <Mydomain>\<dbousername>
Spiegel PARTNERHOST5 <Mydomain>\<dbousername>
Zeuge WITNESSHOST4 <Somedomain>\<witnessuser>
  1. Erstellen Sie einen Endpunkt auf der Prinzipalserverinstanz (Standardinstanz auf 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. Erstellen Sie einen Endpunkt auf der Spiegelserverinstanz (Standardinstanz auf 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. Erstellen Sie einen Endpunkt auf der Zeugenserverinstanz (Standardinstanz auf 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. Erstellen Sie die Spiegeldatenbank. Weitere Informationen finden Sie unter Vorbereiten einer Spiegeldatenbank auf die Spiegelung (SQL Server).

  5. Legen Sie auf der Spiegelserverinstanz auf PARTNERHOST5 die Serverinstanz auf PARTNERHOST1 als Partner fest (hierdurch wird sie zur ersten Prinzipalserverinstanz).

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. Legen Sie auf der Prinzipalserverinstanz auf PARTNERHOST1 die Serverinstanz auf PARTNERHOST5 als Partner fest (hierdurch wird sie zur ersten Spiegelserverinstanz).

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. Legen Sie auf dem Prinzipalserver den Zeugen fest (der sich auf WITNESSHOST4 befindet).

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

Related Tasks

Weitere Informationen

ALTER DATABASE (Transact-SQL)
Der Datenbankspiegelungs-Endpunkt (SQL Server)
Transportsicherheit für Datenbankspiegelung und AlwaysOn-Verfügbarkeitsgruppen (SQL Server)
Verwalten von Metadaten beim Bereitstellen einer Datenbank auf einer anderen Serverinstanz (SQL Server)
Sicherheitscenter für SQL Server-Datenbank-Engine und Azure SQL-Datenbank