Esempio: Impostazione del mirroring del database tramite l'autenticazione di Windows (Transact-SQL)Example: Setting Up Database Mirroring Using Windows Authentication (Transact-SQL)

In questo esempio vengono illustrate tutte le fasi necessarie per creare una sessione di mirroring del database con un server di controllo del mirroring con l'autenticazione di Windows.This example shows all the stages required to create a database mirroring session with a witness using Windows Authentication. Negli esempi di questo argomento viene utilizzato Transact-SQLTransact-SQL.The examples in this topic use Transact-SQLTransact-SQL. Si osservi che per impostare il mirroring del database è possibile utilizzare, in alternativa alle procedure di Transact-SQLTransact-SQL, la Configurazione guidata sicurezza mirroring del database.Note that as an alternative to using Transact-SQLTransact-SQL steps, you can use the Configure Database Mirroring Security Wizard for database mirroring setup. Per altre informazioni, vedere Stabilire una sessione di mirroring del database tramite autenticazione di Windows (SQL Server Management Studio).For more information, see Establish a Database Mirroring Session Using Windows Authentication (SQL Server Management Studio).

PrerequisitiPrerequisite

Nell'esempio viene utilizzato il database di esempio AdventureWorks , in cui, per impostazione predefinita, viene utilizzato il modello di recupero con registrazione minima.The example uses the AdventureWorks sample database, which uses the simple recovery model by default. Per utilizzare il mirroring del database con questo database, è necessario modificarlo in modo che venga utilizzato il modello di recupero con registrazione completa.To use database mirroring with this database, you must alter it to use the full recovery model. Per eseguire questa operazione in Transact-SQLTransact-SQL, utilizzare l'istruzione ALTER DATABASE, come segue:To do this in Transact-SQLTransact-SQL, use the ALTER DATABASE statement, as follows:

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

Per informazioni sulla modifica del modello di recupero in SQL Server Management StudioSQL Server Management Studio, vedere Visualizzazione o modifica del modello di recupero di un database (SQL Server).For information on changing the recovery model in SQL Server Management StudioSQL Server Management Studio, see View or Change the Recovery Model of a Database (SQL Server).

AutorizzazioniPermissions

È richiesta l'autorizzazione ALTER per il database e l'autorizzazione CREATE ENDPOINT o l'appartenenza al ruolo predefinito del server sysadmin .Requires ALTER permission on the database and CREATE ENDPOINT permission, or membership in the sysadmin fixed server role.

EsempioExample

In questo esempio i due partner e il server di controllo del mirroring sono le istanze predefinite del server in tre sistemi.In this example, the two partners and the witness are the default server instances on three computer systems. Le tre istanze del server sono eseguite nello stesso dominio Windows, ma per l'istanza del server di controllo del mirroring l'account utente (utilizzato come account del servizio di avvio) è diverso.The three server instances run the same Windows domain, but the user account (used as the startup service account) is different for the example's witness server instance.

Nella tabella seguente sono riepilogati i valori utilizzati nell'esempio.The following table summarizes the values used in this example.

Ruolo di mirroring inizialeInitial mirroring role Sistema hostHost system Account utente di dominioDomain user account
Server principalePrincipal PARTNERHOST1PARTNERHOST1 <Mydomain>\<Mydomain>\
MirrorMirror PARTNERHOST5PARTNERHOST5 <Mydomain>\<Mydomain>\
ControlloWitness WITNESSHOST4WITNESSHOST4 <Somedomain>\<Somedomain>\
  1. Creare un endpoint nell'istanza del server principale, ovvero l'istanza predefinita in PARTNERHOST1.Create an endpoint on the principal server instance (default instance on 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. Creare un endpoint nell'istanza del server mirror, ovvero l'istanza predefinita in PARTNERHOST5.Create an endpoint on the mirror server instance (default instance on 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. Creare un endpoint nell'istanza del server di controllo del mirroring, ovvero l'istanza predefinita in WITNESSHOST4.Create an endpoint on the witness server instance (default instance on 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. Creare il database mirror.Create the mirror database. Per altre informazioni, vedere Preparazione di un database mirror per il mirroring (SQL Server).For more information, see Prepare a Mirror Database for Mirroring (SQL Server).

  5. Nell'istanza del server mirror in PARTNERHOST5 impostare l'istanza del server in PARTNERHOST1 come partner, rendendola l'istanza del server principale iniziale.On the mirror server instance on PARTNERHOST5, set the server instance on PARTNERHOST1 as the partner (making it the initial principal server instance).

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. Nell'istanza del server principale in PARTNERHOST1 impostare l'istanza del server in PARTNERHOST5 come partner, rendendola l'istanza del server mirror iniziale.On the principal server instance on PARTNERHOST1, set the server instance on PARTNERHOST5 as the partner (making it the initial mirror server instance).

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. Nel server principale impostare il server di controllo del mirroring, che si trova in WITNESSHOST4.On the principal server, set the witness (which is on WITNESSHOST4).

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

Vedere ancheSee Also

ALTER DATABASE (Transact-SQL) ALTER DATABASE (Transact-SQL)
Endpoint del mirroring del database (SQL Server) The Database Mirroring Endpoint (SQL Server)
Sicurezza trasporto per il mirroring del database e i gruppi di disponibilità AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
Gestire i metadati quando si rende disponibile un database in un'altra istanza del server (SQL Server) Manage Metadata When Making a Database Available on Another Server Instance (SQL Server)
Centro di sicurezza per il motore di database di SQL Server e il database SQL di AzureSecurity Center for SQL Server Database Engine and Azure SQL Database