IIS 安全性
此主題說明 Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) 如何藉助下列安全機制:
- IIS 驗證
- IIS 授權
- IIS 加密
IIS 驗證
設定 SQL Server Compact Edition 伺服器代理程式時,可指定用戶端在連接到 SQL Server Compact Edition 伺服器代理程式時是否必須執行 Microsoft Internet Information Services (IIS) 驗證。IIS 驗證有三種形式:
- 匿名存取
- 基本驗證
- 整合式 Windows 驗證
大部分的網際網路應用程式會使用基本驗證及安全通訊端層 (SSL) 加密。
匿名存取
使用匿名存取時,IIS 不會執行用戶端驗證。SQL Server Compact Edition 伺服器代理程式代表用戶端執行的所有工作,是以網際網路來賓帳戶的身分執行。依照預設,網際網路來賓帳戶是 IUSR_computername,但您可指定不同的 Windows 使用者帳戶做為網際網路來賓帳戶。
基本驗證
使用基本驗證時,SQL Server Compact Edition 用戶端必須提供有效的 Windows 帳戶使用者名稱及密碼。IIS 會嘗試以用戶端提供的使用者名稱及密碼登入。如果登入嘗試成功,SQL Server Compact Edition 伺服器代理程式執行的所有工作是以指定的 Windows 使用者帳戶身分執行。如果登入嘗試失敗,會拒絕用戶端的要求。基本驗證可用於網際網路與 Intranet 應用程式。基本驗證要求每個用戶端有一個有效的 Windows 帳戶及對應的使用者名稱及密碼。
重要事項: |
---|
依照預設,基本驗證使用 base64 編碼經由網路傳遞使用者名稱及密碼。如果有人竊聽密碼交換會有安全性風險,因為 base64 編碼很容易解碼。為了保護使用者密碼,使用基本驗證時永遠應使用安全通訊端層 (SSL) 加密。如需詳細資訊,請參閱<設定 SSL 加密>。 |
整合式 Windows 驗證
整合式 Windows 驗證的運作方式與基本驗證類似。SQL Server Compact Edition 用戶端必須提供有效的 Windows 帳戶使用者名稱及密碼。IIS 會嘗試以該使用者名稱及密碼登入。如果登入嘗試成功,SQL Server Compact Edition 伺服器代理程式執行的所有工作是以該 Windows 使用者帳戶的身分執行。如果登入嘗試失敗,會拒絕用戶端同步處理的要求。整合式 Windows 驗證優於基本驗證的主要優點為:有別於基本驗證,整合式 Windows 驗證不會以未加密形式透過網路傳送用戶端的使用者名稱及密碼。這可免除密碼遭人攔截的風險。整合式 Windows 驗證最適合用於內部網路應用程式。而且整合式 Windows 驗證鮮少用於網際網路應用程式,因為它無法在 Proxy 伺服器或防火牆上作業。
附註: |
---|
由於 Microsoft Windows CE 4.2 不支援摘要式驗證,所以 SQL Server Compact Edition 連接解決方案不支援這種驗證格式。 |
IIS 授權
在驗證 IIS 用戶端後,IIS 授權會決定用戶端是否能叫用 SQL Server Compact Edition 伺服器代理程式。透過控制可存取 SQL Server Compact Edition 伺服器代理程式的用戶端,便可控制誰能執行 SQL Server Compact Edition 連接。
IIS 提供下列存取控制機制:
- 首先 IIS 會檢查用戶端的位址是否違反任何已設定的 IP 位址限制。您可設定 Web 伺服器,以防止特定電腦、電腦群組或整個網路存取 SQL Server Compact Edition 伺服器代理程式。當用戶端初始嘗試存取 SQL Server Compact Edition 伺服器代理程式時,IIS 會檢查用戶端電腦的 IP 位址是否違反伺服器上設定的 IP 位址限制。如果該 IP 位址被拒絕存取,則會拒絕用戶端的同步處理要求,並顯示下列訊息:「403 禁止存取」。
- 如果 IIS 設定為需要驗證,IIS 會檢查用戶端是否具有如本文「IIS 驗證」一節所述的有效 Windows 使用者帳戶。如果使用者帳戶無效,則會拒絕用戶端的同步處理要求,並顯示下列訊息:「403 禁止存取」。
- IIS 接下來會檢查 Web 權限。本 IIS 安全性檢查與 SQL Server Compact Edition 連接解決方案無關。
- 然後,IIS 會檢查 SQL Server Compact Edition 伺服器代理程式的 NTFS 權限,以確保連接的使用者具有適當權限。
附註: |
---|
雖然 IIS 也可搭配 FAT 檔案系統使用,但強烈建議您使用 NTFS。NTFS 可以使用存取控制清單 (ACL) 來授予或拒絕存取 SQL Server Compact Edition 伺服器代理程式,以及 IIS 系統上的輸入和輸出訊息檔案。 |
IIS 加密
設定 SQL Server Compact Edition 伺服器代理程式時,可以指定 SSL 加密。指定 SSL 加密之後,SQL Server Compact Edition 用戶端代理程式與 SQL Server Compact Edition 伺服器代理程式之間的所有通訊都會加密。如需詳細資訊,請參閱<設定 SSL 加密>。
下列情況下應該使用 SSL 加密:
- 如果設定 IIS 使用基本驗證。
為了保護使用者的網際網路密碼,這是必要的。依照預設,基本驗證使用 base64 編碼經由網路傳輸使用者名稱及密碼。如果有人竊聽密碼交換會有安全性風險,因為 base64 編碼很容易解碼。為了保護使用者的網際網路密碼,使用基本驗證時永遠應使用 SSL 加密。 - 僅適用 RDA:如果應用程式指定內含密碼的 OLEDBConnectionString 參數。
RDA 的 Pull、Push 及 SubmitSQL 方法需要 OLEDBConnectionString 參數。此連接字串是以純文字的方式在網路上傳送,如果有人竊聽密碼交換會有安全性風險。 - 僅針對複寫:如果 SQL Server 發行者或散發者依賴 SQL Server 驗證。
如果 DistributorSecurityMode 屬性指定 DB_AUTHENTICATION,散發者將使用 SQL Server 驗證。如果 PublisherSecurityMode 屬性指定 DB_AUTHENTICATION,發行者將使用 SQL Server 驗證。使用 SQL Server 驗證時,DistributorPassword 及 PublisherPassword 是以純文字的方式在網路上傳送。如果有人竊聽密碼交換會有安全性風險。為了保護 DistributorPassword 及 PublisherPassword 安全,使用 SQL Server 驗證時務必使用安全通訊端層 (SSL) 加密。
請參閱
概念
SQL Server 安全性
保護資料庫 (SQL Server Compact Edition)