共用方式為


範例:透過 Windows 驗證來設置資料庫鏡像(Transact-SQL)

此範例顯示使用 Windows 驗證建立具有見證的資料庫鏡像會話所需的所有階段。 本主題中的範例會使用 Transact-SQL。 請注意,除了使用 Transact-SQL 步驟,您也可以使用 [設定資料庫鏡像安全性精靈] 進行資料庫鏡像設定。 如需詳細資訊,請參閱本主題稍後的 使用 Windows 驗證建立資料庫鏡像工作階段 (SQL Server Management Studio)

先決條件

此範例會使用 AdventureWorks 範例資料庫,預設會使用簡單的恢復模式。 若要搭配此資料庫使用資料庫鏡像,您必須將該資料庫變更為使用完整復原模式。 若要在 Transact-SQL 中執行這項作,請使用 ALTER DATABASE 語句,如下所示:

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

如需在 SQL Server Management Studio 中變更恢復模式的資訊,請參閱 檢視或變更資料庫 (SQL Server) 的恢復模式

權限

需要有資料庫的 ALTER 許可權和 CREATE ENDPOINT 許可權,或 系統管理員 固定伺服器角色的成員資格。

範例

在此範例中,兩個夥伴和見證是三部計算機系統上的預設伺服器實例。 這三個伺服器實例會執行相同的 Windows 網域,但針對範例的見證伺服器實例,用戶帳戶(用來作為啟動服務帳戶)不同。

下表摘要說明此範例中使用的值。

初始鏡像角色 主機系統 網域使用者帳戶
校長 PARTNERHOST1 <Mydomain>\<dbousername>
鏡子 PARTNERHOST5 <Mydomain>\<dbousername>
證人 WITNESSHOST4 <Somedomain>\<witnessuser>
  1. 在主體伺服器實例上建立端點(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. 在鏡像伺服器實例上建立端點(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. 在見證伺服器實例上建立端點(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. 建立鏡像資料庫。 如需詳細資訊,請參閱為鏡像準備資料庫 (SQL Server)

  5. 在PARTNERHOST5的鏡像伺服器實例上,將 PARTNERHOST1 上的伺服器實例設定為夥伴(使其成為初始主體伺服器實例)。

    ALTER DATABASE AdventureWorks   
        SET PARTNER =   
        'TCP://PARTNERHOST1.COM:7022'  
    GO  
    
  6. 在PARTNERHOST1的主體伺服器實例上,將 PARTNERHOST5 上的伺服器實例設定為夥伴(使其成為初始鏡像伺服器實例)。

    ALTER DATABASE AdventureWorks   
        SET PARTNER = 'TCP://PARTNERHOST5.COM:7022'  
    GO  
    
  7. 在主體伺服器上,設定見證 (位於 WITNESSHOST4 上)。

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

相關工作

另請參閱

ALTER DATABASE (Transact-SQL)
資料庫鏡像端點 (SQL Server)
資料庫鏡像和 AlwaysOn 可用性群組的傳輸安全性 (SQL Server)
在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料 (SQL Server)
SQL Server Database Engine 和 Azure SQL Database 的資訊安全中心