複寫安全性元素

更新: 2006 年 12 月 12 日

要確保任何軟體系統的安全,需考慮驗證、授權和加密三個方面:

  • 驗證是某一實體 (在本文中通常是某台電腦) 驗證另一個實體 (通常是另一台電腦或使用者) 的身分或所代表身分的處理,實體也稱為*「主體」*。
  • 授權是向已驗證的主體授與資源 (例如檔案系統中的檔案或是資料庫中的資料表) 存取權的處理。
  • 加密是將資料轉換成一種無特殊金鑰便無法讀取格式的處理,這樣一來就只有預期收件者才能讀取該資料。

驗證與授權

複寫安全性使用驗證與授權來控制對複寫資料庫物件,以及複寫處理所涉及的電腦和代理程式的存取權限。這可透過三種機制來完成:

  • 代理程式安全性
    複寫代理程式安全性模型允許精確控制複寫代理程式執行並建立連接所使用的帳戶。如需代理程式安全性模型的詳細資訊,請參閱<複寫代理程式安全性模型>。如需設定代理程式登入和密碼的詳細資訊,請參閱<管理複寫的登入與密碼>。
  • 管理角色
    確定複寫設定、維護及處理所使用的是正確的伺服器和資料庫角色。如需詳細資訊,請參閱<複寫的安全性角色需求>。
  • 發行集存取清單 (PAL)
    透過 PAL 授與發行集存取權限。PAL 功能類似於 Microsoft Windows 存取控制清單。當「訂閱者」連接到「發行者」或「散發者」,並要求存取發行集時,代理程式傳送的驗證資訊會依據 PAL 來進行檢查。如需 PAL 的詳細資訊和最佳作法,請參閱<保護發行者>。

加密

複寫不會加密資料表中儲存的資料,或透過網路連接傳送的資料。這是設計所限,因為加密只能在傳輸層使用各種技術來實現,包括以下業界標準技術:虛擬私人網路 (VPN)、安全通訊端層 (SSL) 及 IP 安全性 (IPSEC)。建議對複寫拓撲中電腦之間的連接使用這些加密方法中的一種。如需詳細資訊,請參閱<加密 SQL Server 的連接>。如需有關透過網際網路使用 VPN 與 SSL 複寫資料的資訊,請參閱<保護透過網際網路的複寫>。

如果使用 SSL 保護複寫拓撲中電腦之間的連接,請將每個複寫代理程式的 -EncryptionLevel 參數值指定為 12 (建議使用 2 值)。值 1 會指定使用加密,但代理程式不會確認 SSL 伺服器憑證是否由受信任發行者簽署;值 2 則會指定對憑證進行確認。可在代理程式設定檔和命令列中指定代理程式參數。如需詳細資訊,請參閱:

針對資料庫「主要金鑰」,複寫採取下列行為來加密資料:

  • 如果複寫涉及的資料庫 (發行集資料庫、訂閱資料庫或散發資料庫) 中存在「主要金鑰」,則複寫會用 SQL Server 2005 資料庫對稱金鑰來加密及解密該資料庫中的代理程式密碼。如果使用了「主要金鑰」,則應在複寫涉及的所有資料庫中都建立「主要金鑰」。如果複寫涉及的資料庫中不存在「主要金鑰」,則複寫會用 SQL Server 2000 中可用的演算法來加密及解密該資料庫中的代理程式密碼。如需有關建立「主要金鑰」的詳細資訊,請參閱<CREATE MASTER KEY (Transact-SQL)>。
  • 複寫不會複寫「主要金鑰」。若要求「訂閱者」端的「主要金鑰」,則必須先用 BACKUP MASTER KEY 將主要金鑰從發行集資料庫中匯出,然後再用 RESTORE MASTER KEY 將其匯入訂閱資料庫。如需詳細資訊,請參閱<BACKUP MASTER KEY (Transact-SQL)>和<RESTORE MASTER KEY (Transact-SQL)>。
  • 如果針對可附加訂閱資料庫定義「主要金鑰」,則請使用<sp_attachsubscription (Transact-SQL)>中的 @db_master_key_password 參數來指定「主要金鑰」的密碼。此操作可將資料庫附加到「訂閱者」。

如需加密和「主要金鑰」的詳細資訊,請參閱<加密階層>。

複寫讓您可以發行加密的資料行資料。若要在訂閱者端解密及使用此資料,於發行者端用來加密資料的金鑰也必須存在訂閱者端。複寫並不會提供用於傳輸加密金鑰的安全機制。您必須以手動方式於訂閱者端重新建立加密金鑰。如需詳細資訊,請參閱<如何:複寫加密資料行中的資料 (SQL Server Management Studio)>。

篩選發行的資料

除了使用驗證和授權來控制對複寫資料及物件的存取外,複寫還含有資料行篩選和資料列篩選選項,這兩個選項用於控制「訂閱者」端可用的資料。如需有關篩選的詳細資訊,請參閱<篩選發行的資料>。

定義發行項時,您可以只發行發行集所需的資料行,而省略不需要或含有機密資料的資料行。例如,向現場的銷售代表發行 AdventureWorks 資料庫的 Customer 資料表時,可以省略 AnnualSales 資料行,這行僅與公司管理者有關。

篩選發行的資料允許您對資料存取進行限制,並允許您指定「訂閱者」上可用的資料。例如,您可以篩選 Customer 資料表,以便讓公司合作夥伴僅收到 ShareInfo 資料行值為「yes」之客戶的相關資訊。針對合併式複寫,您如果使用包含 HOST_NAME() 的參數化篩選,就會有一些安全性考量。如需詳細資訊,請參閱<參數化資料列篩選>中的<使用 HOST_NAME() 進行篩選>一節。

請參閱

概念

複寫安全性最佳作法

其他資源

複寫安全性考量

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 12 月 12 日

新增內容: