保護 RDS 應用程式
本主題提供 RDS 的安全性資訊。
重要
從 Windows 8 和 Windows Server 2012 開始,RDS 伺服器元件已不再包含在 Windows 作業系統中(如需詳細資訊,請參閱 Windows 8 和 Windows Server 2012 兼容性 Cookbook)。 RDS 用戶端元件將在未來的 Windows 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。 使用 RDS 的應用程式應該移至 WCF Data Service。
Microsoft Internet Explorer 安全性問題
隨著新增至 Microsoft Internet Explorer 的安全性增強功能,某些 ADO 和 RDS 物件僅限於在「安全」模式環境中執行。 這需要您了解這些問題,包括不同的區域、安全性層級、限制性行為、不安全作業,以及自定義的安全性設定。
安全性和網頁伺服器
如果您在因特網網頁伺服器上使用 RDSServer.DataFactory 物件,請記住這樣做會產生潛在的安全性風險。 取得有效數據來源名稱 (DSN)、使用者識別碼和密碼資訊的外部使用者可以寫入頁面,以將任何查詢傳送至該數據源。 如果您想要對數據源進行更多限制的存取,其中一個選項是取消註冊和刪除 RDSServer.DataFactory 物件 (msadcf.dll),並改為搭配硬式編碼的查詢使用自定義商務物件。
如需使用 RDSServer.DataFactory 物件之安全性含意的詳細資訊,請參閱 Microsoft Security 網站上的 Microsoft Security Bulletin MS99-025。
用戶端模擬和安全性
如果您的 IIS 網頁伺服器 密碼驗證 屬性設定為 Windows NT 挑戰/回應驗證(適用於 Windows NT 4.0),或設定為整合式 Windows 驗證(適用於 Windows 2000),則會在用戶端的安全性內容下叫用商業物件。 這是 RDS 1.5 中的新功能,允許透過 HTTP 進行用戶端模擬。 當您在此模式中工作時,登入網頁伺服器 (IIS) 不是匿名的,而是使用用戶端電腦執行的使用者識別碼和密碼。 如果 ODBC DSN 設定為使用信任的連線,那麼存取資料庫,例如 SQL Server,也會在用戶端的安全性上下文中進行。 但只有在資料庫與 IIS 位於同一部電腦上時,才能運作;用戶端認證無法傳送至另一部計算機。
例如,客戶端用戶 John Doe,使用 userid=“JohnD” 和 password=“<secret>” 登入客戶端電腦。 John Doe 會執行瀏覽器型應用程式,此應用程式需要存取 RDSServer.DataFactory 物件,以在執行 IIS 的 “MyServer” 計算機上執行 SQL 查詢,以建立 Recordset。 執行 Windows NT Server 4.0 的系統 MyServer 已設定為使用 Windows NT 挑戰/回應驗證,其 ODBC DSN 已選取 [使用信任連線],而且伺服器也包含 SQL Server 數據源。 在 Web 伺服器上收到要求時,它會向客戶端詢問使用者識別碼和密碼。 因此,請求在 MyServer 上被記錄為來自「JohnD」/「<秘密>」,而不是以 IUSER_MyServer 登入的(這是匿名密碼驗證開啟時的預設值)。 同樣地,登入 SQL Server 時,會使用 「JohnD」/“<秘密>”。
因此,IIS Windows NT 挑戰/回應驗證模式允許建立 HTML 頁面,而不需要明確提示使用者登入資料庫所需的使用者識別碼和密碼資訊。 如果使用 IIS 基本身份驗證,則也需要這樣做。
密碼驗證
RDS 可以與在三種密碼驗證模式中執行的任何一個 IIS Web 伺服器通訊:匿名、基本或 NT 挑戰/回應驗證(在 Windows 2000 中稱為整合式 Windows 驗證)。 這些設定會定義 Web 伺服器如何控制其存取權,例如要求用戶端電腦在 NT Web 伺服器上具有明確訪問許可權。