共用方式為


複寫安全性最佳做法

適用於:SQL ServerAzure SQL 受控執行個體

複寫會在分散式環境中移動資料,範圍涵蓋從單一網域上的內部網路到在未受信任網域之間及網際網路上存取資料的應用程式。 因此,了解在這些不同環境下保護複寫連接安全的最佳方法相當重要。

下列資訊與所有環境中的複製相關:

  • 使用業界標準方法加密複寫拓撲中各電腦之間的連線,例如虛擬私人網路 (Virtual Private Networks,VPN)、傳輸層安全性 (TLS) (先前稱為安全通訊端層 (SSL)) 或 IP 安全性 (IPSEC)。 如需詳細資訊,請參閱啟用資料庫引擎的加密連線 (SQL Server 組態管理員)。 如需有關透過網際網路使用 VPN 與 TLS 複寫資料的資訊,請參閱 保護透過網際網路的複寫

    如果您使用 TLS 1.2 來保護複寫拓撲中電腦之間的連線,請為每個複寫代理程式的1 參數指定 2-EncryptionLevel 的值(建議使用 2 的值)。 值 指定使用加密,但代理程式不會驗證 TLS/SSL 伺服器憑證是否由受信任的簽發者簽署;值 指定12憑證已驗證。 Azure SQL 受控執行個體透過指定 3 值來支援來自 Azure SQL 受控執行個體或 SQL Server 2025 及更新版本的連線使用 TLS 1.3。 Azure SQL 受控執行個體和 SQL Server 2025 及更新版本透過指定值來支援連線至 SQL Server 的 TLS 1.3。

    如需使用代理程式的相關資訊,請參閱:

  • 以不同的 Windows 帳戶執行各複寫代理程式,並針對所有複寫代理程式連接使用 Windows 驗證。 如需有關指定帳戶的詳細資訊,請參閱用於複寫的身分識別和存取控制

  • 僅對各代理程式授與必要的權限。 如需詳細資訊,請參閱< Replication Agent Security Model>的「代理程式所需的權限」一節。

  • 請確保合併代理程式帳戶和散發代理程式帳戶均列在發行存取清單 (PAL) 中。 如需詳細資訊,請參閱保護發行者

  • 僅允許 PAL 中的帳戶擁有執行複寫工作所需的權限,以遵守最低權限原則。 請勿將登入加入到不需要用於複寫的任何固定伺服器角色中。

  • 設定快照集共用,以允許所有「合併代理程式」和「散發代理程式」擁有讀取權限。 當發行集的快照集具有參數化篩選時,務必確認各資料夾已設定為僅允許存取適當的合併代理帳戶。

  • 設定快照集共用,以允許「快照集代理程式」擁有寫入權限。

  • 如果您使用提取訂閱,請使用網路共用,而非使用快照集資料夾的本機路徑。

如果複寫拓撲包含的電腦不在相同的網域中,或是位於彼此之間沒有信任關係的網域中,您可針對代理程式建立的連線使用 Windows 驗證或 SQL Server 驗證 (如需網域的詳細資訊,請參閱 Windows 說明文件)。 基於安全性最佳做法,建議您使用 Windows 驗證。

  • 使用 Windows 驗證:

    • 在適當的節點 (在各節點使用相同名稱和密碼) 為各代理程式加入本機 Windows 帳戶 (並非網域帳戶)。 例如,推送訂閱的散發代理程式在散發者端執行,並且建立至散發者與訂閱者的連接。 「發行代理程式」的 Windows 帳戶應加入至「發行者」和「訂閱者」。

    • 確保指定的代理程式 (例如,訂閱的散發代理程式) 會在每部電腦上以相同帳戶執行。

  • 使用 SQL Server 驗證:

    • 在適當的節點 (在各節點使用相同帳戶名稱和密碼) 為各代理程式新增 SQL Server 帳戶。 例如,推送訂閱的散發代理程式在散發者端執行,並且建立至散發者與訂閱者的連接。 散發代理程式的 SQL Server 帳戶應新增至散發者和訂閱者。

    • 確保指定的代理程式(例如,用於訂閱的散發代理程式)在每台電腦上以相同的帳戶進行連線。

    • 在需要 SQL Server 驗證的情況下,通常無法存取 UNC 快照集共用 (例如,存取可能遭到防火牆封鎖)。 在這種情況下,您可以透過檔案傳輸通訊協定 (FTP) 將快照集傳送至「訂閱者」。 如需詳細資訊,請參閱透過 FTP 傳送快照集

使用資料庫主要金鑰改善安全性狀態

備註

本節中的指示目前適用於 SQL Server 2022 CU18 和更新版本,以及 SQL Server 2019 CU31 和更新版本。 這些指示不適用於 Azure SQL 受控實例。

使用 SQL Server 驗證進行複寫時,您在設定複寫過程中所提供的秘密資訊會儲存在 SQL Server 中,具體而言,儲存在散發資料庫中。對於提取訂閱,這些秘密資訊也會儲存在訂閱者資料庫中。

若要增強複寫的安全性狀態,開始 設定複寫之前

  • 在裝載分發者之伺服器的分發資料庫中建立資料庫主要密鑰 (DMK)
  • 針對 提取訂閱,亦需在訂閱者資料庫中建立 DMK。

如果在 DMK 之前建立複寫,請先建立 DMK,然後藉由更新復寫作業的密碼來更新復寫秘密。 您可以使用相同的密碼來更新作業,或使用新的密碼。

若要更新復寫密碼,請使用下列其中一個相關的預存程式來更新復寫作業的密碼:

在缺少 DMK 的情況下配置交易複製可能導致 SQL Server 出現警告 14130

  • Azure SQL 受控執行個體
  • SQL Server 2022 CU18 和更新版本
  • SQL Server 2019 CU31 和之後版本