共用方式為


HOW TO:以對應的 Windows 網域使用者身分存取 SQL Server

更新:2007 年 11 月

根據預設,在 Microsoft Windows 2000 和 Microsoft Windows XP 中,ASP.NET 應用程式會在名為 ASPNET 之本機使用者帳戶的內容中執行,而在 Windows Server 2003 中,則在名為 NETWORK SERVICE 之本機使用者帳戶的內容中執行。這些使用者帳戶具有有限的存取權限。然而,ASPNET 帳戶是 Web 伺服器的本機帳戶。因為 ASPNET 帳戶是 Web 伺服器的本機帳戶,所以不會辦識為遠端電腦上的使用者。若要避開這個限制,您可讓應用程式在 Windows 網域使用者的內容中執行,在 Web 伺服器和執行 Microsoft SQL Server 的電腦上均可辨識這個網域使用者。

將應用程式處理序 (Process) 對應至 Windows 網域使用者帳戶時,需要設定下列項目:

  • Web 伺服器。

    您必須確定您所指定的 Windows 網域使用者帳戶具有足夠的使用者權限 (僅此而已),以執行 Web 應用程式。

  • 您的應用程式。

    您必須設定 ASP.NET 的 Web.config 檔,以辨識網域使用者帳戶名稱。

    注意事項:

    如需 Machine.config 和 Web.config 檔的詳細資訊,請參閱 ASP.NET 組態概觀

  • 連接字串。

    當在應用程式中建立連接物件的連接字串時,您必須指定連接字串將使用 Windows 整合式安全性。

  • SQL Server。

    您必須將指定的網域使用者帳戶做為 SQL Server 登入使用者加入。

設定 Web 伺服器上的使用者帳戶

若要為 Windows 網域使用者帳戶設定使用者權限

  1. 在 Web 伺服器上,使用 Windows 系統管理工具,確定對應的 Windows 網域使用者帳戶具有必要的使用者權限。

    如需詳細資訊,請參閱 ASP.NET 所需的存取控制清單 (ACL)

  2. 執行具有 -ga 參數的 aspnet_regiis.exe,以授與將用於應用程式模擬之識別 (Identity) 其所需的一般使用者權限。

對應至 Windows 使用者帳戶並啟用模擬

在為網域使用者帳戶建立正確的使用者權限之後,請設定應用程式識別模擬。

安全性注意事項:

當您將使用者認證置於 Web.config 檔中時,會存在潛在的安全性威脅。對包含 Web.config 檔的目錄具有存取權限的使用者可以讀取該檔案,並可查看認證。如需如何防護這種威脅的詳細資訊,請參閱使用受保護的組態加密組態資訊

若要設定 Web 應用程式的模擬

  • 開啟應用程式的 Web.config 檔,然後加入下列識別模擬程式碼:

    <identity impersonate="true" userName="domain\username" password="********"/>
    

    將上一個範例中所列的值取代為正確的密碼。

    注意事項:

    Web.config 檔中的項目會區分大小寫。

在連接字串中使用 Windows 安全性

最後,當您為資料庫存取建立連接字串時,請將設定連接字串使用 Windows 整合式安全性。

若要在連接字串中使用 Windows 整合式安全性

  • 當您為應用程式建立連接字串時,不要包括使用者名稱和密碼。而是對連接字串將 Integrated Security 屬性 (Attribute) 設為 SSPI。

    下列範例示範包含適當屬性的連接字串:

    data source=myserver;initial catalog=northwind;Integrated Security=SSPI
    

若要設定 SQL Server 以使用整合安全性

  1. 在 Windows 中,按一下 [開始],指向 [Microsoft SQL Server],再按 [Enterprise Manager]。

  2. 開啟伺服器的節點,然後展開您要授與使用者權限之資料庫的節點。

  3. 以滑鼠右鍵按一下 [使用者],再按 [新增資料庫使用者]。

  4. 在 [資料庫使用者屬性] 對話方塊中的 [登入名稱] 方塊中輸入 domain\username,然後按一下 [確定]。

請參閱

概念

ASP.NET 模擬