Web 同步處理的安全性架構
適用於:SQL Server
Microsoft SQL Server 可讓您精確控制 Web 同步處理安全性的組態。 本主題提供一份完整清單,其中列有可併入 Web 同步處理組態中的所有元件,並提供有關元件之間所建立的連接資訊。 儘可能使用 Windows 驗證。
下圖顯示所有可能的連接,但特定拓撲中可能不需要某些連接。 例如,只有在利用 FTP 傳遞快照集時,才需要連接 FTP 伺服器。
下表描述圖解中顯示的元件和連接。
A. 合併代理程式執行時所用的 Windows 使用者
同步處理期間,合併代理程式 (A) 會在訂閱者端啟動。 您可以從 SQL Server Agent 作業步驟或從獨立的自訂應用程式啟動合併代理程式。 如果是從 SQL Server Agent 作業步驟啟動合併代理程式,則合併代理程式必須在您指定之 Windows 使用者的內容下執行。 如果您未指定 Windows 使用者,合併代理程式會在 SQL Server Agent 所用 Windows 服務帳戶的內容下執行。
帳戶類型 | 指定帳戶的位置 |
---|---|
Windows 使用者 | Transact-SQL:sp_addmergepullsubscription_agent 的 @job_login 和 @job_password 參數。RMO (Replication Management Objects): Login 的 Password 和 SynchronizationAgentProcessSecurity屬性。 |
用於 SQL Server Agent 的 Windows 服務帳戶 | SQL Server 組態管理員 |
獨立應用程式 | 合併代理程式在執行應用程式之 Windows 使用者的內容下執行。 |
B. 連接訂閱者
合併代理程式利用 Windows 驗證或 SQL Server 驗證連線到訂閱者。 您指定的 Windows 使用者或 SQL Server 登入,必須與特定資料庫使用者相關聯,該資料庫使用者必須是訂閱資料庫中 dbowner 固定資料庫角色的成員。
注意
從 SQL Server Agent 作業啟動合併代理程式時,一定會使用 Windows 驗證。 除非已明確指定 SQL Server 驗證,否則當以程式設計方式啟動合併代理程式時,也會使用 Windows 驗證。
驗證類型 | 指定驗證的位置 |
---|---|
- Windows 驗證。 | 合併代理程式會在針對合併代理程式 (A) 指定之 Windows 使用者的內容下建立連接。 |
只有在指定下列項目時,才會使用 SQL Server 驗證: - RMO:SubscriberSecurityMode 的值為 Standard。 - 合併代理程式命令列:SubscriberSecurityMode 的值為 0。 |
RMO: SubscriberLogin 和 SubscriberPassword。 「合併代理程式」命令列: -SubscriberLogin 和 -SubscriberLogin。 |
C. 連接外寄 Proxy 伺服器
只有在具有限制存取訂閱者內部網路的外寄 Proxy 伺服器時,才需要指定此連接的 Windows 使用者。
驗證類型 | 指定驗證的位置 |
---|---|
Windows 驗證 | RMO:具有 InternetProxyLogin 的 InternetProxyPassword 和 InternetProxyServer。 「合併代理程式」命令列:具有 -InternetProxyServer 的 -InternetProxyLogin 和 -InternetProxyPassword。 |
D. 連接 IIS
連線到訂閱者並從訂閱資料庫擷取任何變更之後,合併代理程式會對 Microsoft Internet Information Services (IIS) 發出 HTTPS 要求,並以 XML 訊息來上傳資料變更。 合併代理程式必須擁有 IIS 登入權限。
驗證類型 | 指定驗證的位置 |
---|---|
如果指定下列其中一項,則會使用「基本驗證」: - Transact-SQL:sp_addmergepullsubscription_agent 的 @internet_security_mode 參數值為 0。- RMO:InternetSecurityMode 的值為 Standard。 - 合併代理程式命令列:-InternetSecurityMode 的值為 0。 |
Transact-SQL:sp_addmergepullsubscription_agent 的 @internet_login 和 @internet_password 參數。RMO: InternetLogin 和 InternetPassword。 「合併代理程式」命令列: -InternetLogin 和 -InternetPassword。 |
如果指定下列其中一項,則會使用「整合式驗證」1 : - Transact-SQL:sp_addmergepullsubscription_agent 的 @internet_security_mode 參數值為 1。- RMO:InternetSecurityMode 的值為 Integrated。 - 合併代理程式命令列:-InternetSecurityMode 的值為 1。 |
合併代理程式會在針對合併代理程式 (A) 指定之 Windows 使用者的內容下建立連接。 |
1 只有在所有電腦都在相同網域或在彼此具有信任關聯性的多個網域中時,才可以使用整合式驗證。
注意
如果使用「整合式驗證」,則需要委派。 如果是從「訂閱者」到 IIS 之間的連線,建議您使用「基本驗證」和 TLS。
E. 連接發行者
您可以在 IIS 執行所在電腦上主控 SQL Server 複寫接聽程式和合併式複寫重新調整器元件。 這些元件會執行下列動作:
挑選<D. 連接 IIS>一節中 描述的 HTTPS 要求。
建立發行集資料庫的 SQL 連線,並將上傳的變更套用至發行集資料庫。
擷取下載的變更,並將 HTTPS 回應傳回給合併代理程式。
合併式複寫重新調整器會利用 Windows 驗證或 SQL Server 驗證來連線到發行者。 您指定的 Windows 使用者或 SQL Server 登入必須符合下列條件:
在發行集存取清單 (PAL) 中。 如需詳細資訊,請參閱保護發行者。
與發行集資料庫中的使用者相關聯。
驗證類型 | 指定驗證的位置 |
---|---|
如果指定下列其中一項,則使用 Windows 驗證: - Transact-SQL:sp_addmergepullsubscription_agent 的 @publisher_security_mode 參數值為 1。- RMO:PublisherSecurityMode 的值為 Integrated。 - 合併代理程式命令列:-PublisherSecurityMode 的值為 1。 |
合併代理程式會在針對 IIS 連接 (D) 指定之 Windows 使用者的內容下建立發行者連接。 如果發行者和 IIS 在不同的電腦上,且整合式驗證是用於連接 (D),則必須在執行 IIS 的電腦上啟用 Kerberos 委派。 如需詳細資訊,請參閱 Windows 文件集。 |
如果指定下列其中一項,則會使用「SQL Server 驗證」: - Transact-SQL:sp_addmergepullsubscription_agent 的 @publisher_security_mode 參數值為 0。- RMO:PublisherSecurityMode 的值為 Standard。 - 合併代理程式命令列:-PublisherSecurityMode 的值為 0。 |
Transact-SQL:sp_addmergepullsubscription_agent 的 @publisher_login 和 @publisher_password 參數。RMO: PublisherLogin 和 PublisherPassword。 「合併代理程式」命令列: -PublisherLogin 和 -PublisherPassword。 |
F. 連接散發者
在執行 IIS 的電腦上主控的合併式複寫重新調整器,也會建立散發者連接。 合併式複寫重新調整器會利用 Windows 驗證或 SQL Server 驗證來連線到散發者。 您指定的 Windows 使用者或 SQL Server 登入必須符合下列條件:
在發行集存取清單 (PAL) 中。 如需詳細資訊,請參閱保護發行者。
與散發資料庫中的資料庫使用者相關聯。 使用者可以是 Guest 使用者。
快照集共用通常是在散發者上。 如需有關快照集共用的詳細資訊,請參閱本主題後段的 <H. 存取快照集共用>一節。
- 驗證類型 | 指定驗證的位置 |
---|---|
如果指定下列其中一項,則使用 Windows 驗證: - Transact-SQL:sp_addmergepullsubscription_agent 的 @distributor_security_mode 參數值為 1。- RMO:DistributorSecurityMode 的值為 Integrated。 - 合併代理程式命令列:-DistributorSecurityMode 的值為 1。 |
合併代理程式會在針對 IIS 連接 (D) 指定之 Windows 使用者的內容下建立散發者連接。 如果散發者和 IIS 在不同的電腦上,且整合式驗證是用於連接 (D),則必須在執行 IIS 的電腦上啟用 Kerberos 委派。 如需詳細資訊,請參閱 Windows 文件集。 |
如果指定下列其中一項,則會使用「SQL Server 驗證」: - Transact-SQL:sp_addmergepullsubscription_agent 的 @distributor_security_mode 參數值為 0。- RMO:DistributorSecurityMode 的值為 Standard。 - 合併代理程式命令列:-DistributorSecurityMode 的值為 0。 |
Transact-SQL:sp_addmergepullsubscription_agent 的 @distributor_login 和 @distributor_password 參數。RMO: DistributorLogin 和 DistributorPassword。 「合併代理程式」命令列: -DistributorLogin 和 -DistributorPassword。 |
G. 連接 FTP 伺服器
只有在您要將快照集檔案從 FTP 伺服器 (而不是從 UNC 位置) 下載到執行 IIS 的電腦,然後將快照集套用到訂閱者時,才需要指定此連接的 Windows 使用者。 如需詳細資訊,請參閱透過 FTP 傳送快照集。
驗證類型 | 指定驗證的位置 |
---|---|
Windows 驗證 | Transact-SQL:sp_addmergepublication 的 @ftp_login 和 @ftp_password 參數。RMO: FtpLogin 和 FtpPassword。 |
H. 存取快照集共用
快照集共用是由在執行 IIS 的電腦上主控的合併式複寫重新調整器存取。
驗證類型 | 指定驗證的位置 |
---|---|
Windows 驗證 | 合併代理程式會在針對 IIS 連接 (D) 指定之 Windows 使用者的內容下存取快照集共用。 如果快照集共用和 IIS 在不同的電腦上,且整合式驗證是用於連接 (D),則必須在執行 IIS 的電腦上啟用 Kerberos 委派。 如需詳細資訊,請參閱 Windows 文件集。 |
I. IIS 的應用程式集區帳戶
此帳戶是用來啟動 IIS for Windows Server 2003 執行所在電腦上的 W3wp.exe 處理序,或啟動 Windows 2000 上的 Dllhost.exe 處理序。 這些處理序主控 IIS 執行所在電腦上的應用程式,例如:SQL Server 複寫接聽程式和合併式複寫重新調整器。 此帳戶應該擁有對執行 IIS 之電腦上對於下列複寫 DLL 的讀取和執行權限:
Replisapi
Replrec
Replprov
Msgprox
Xmlsub
此帳戶也應該是 IIS_WPG 群組的一部分。 如需詳細資訊,請參閱針對 Web 同步處理設定 IIS中的<設定 SQL Server 複寫接聽程式的權限>一節。
帳戶類型 | 指定帳戶的位置 |
---|---|
任何擁有所需權限的 Windows 使用者。 | Internet Information Services (IIS) 管理員。 |