負載平衡應用程序的 IIS 和 SQL Server 之間的身份驗證
我正在尋找使用此連接字元串,但是我不確定如何設置它:
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase; Trusted_Connection=yes;
以前我們的 SQLNCLI10 連接字元串使用 Uid & Pwd。我們現在已經移動了伺服器並設置了 Active Directory,正在尋找有關如何在 IIS 和 MSSQL 之間配置安全性的幫助。
在 IIS 7.5 中,有一個選項可以在網站的基本設置中指定使用者帳戶,或者只使用直通身份驗證。我假設如果設置了直通,它使用為應用程序池設置的帳戶?
預設情況下,應用程序池作為 ApplicationPoolIdentity 執行。只有此應用程序池中的網站才能訪問此數據庫。還有多個使用共享配置的 Web 伺服器,每個都連接到同一個數據庫伺服器(或使用 MSSQL 數據庫鏡像鏡像的伺服器)
目前,當腳本執行時,這是錯誤消息(MSSQL 位於同一域中的不同伺服器上):
Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
我應該使用什麼身份創建應用程序池,以及如何在 MSSQL 中設置此帳戶?
我希望一切都有意義,再次感謝!
我覺得這個頁面是相關的,雖然我不太明白:http ://learn.iis.net/page.aspx/624/application-pool-identities/
解決方案是創建一個具有有限訪問權限的新域使用者。將此新使用者添加為 MSSQL 的登錄名,僅用於特定數據庫以獲得您需要的權限(例如,只讀和只寫)。
然後將 IIS 網站配置為在此新域使用者下進行連接。您會認為將其設置為應用程序池標識會起作用,但事實並非如此!要使其正常工作,您還必須在 AD 中為電腦分配委派權限(信任此使用者以委派任何服務(僅限 Kerberos))。
相反,您可以打開網站的基本設置並點擊
Connect As...
選項並在此處輸入登錄詳細資訊。此方法根本不需要您在連接字元串中指定使用者名和/或密碼,它都在 IIS 中進行管理。
創建一個供 sql 使用的帳戶,可以是 windows 或 sql 帳戶,並在連接字元串中指定該帳戶。出於安全目的,您還應該在執行此操作後使用以下命令加密 web.config:
%SYSTEMROOT%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -prov "RsaProtectedConfigurationProvider" -pef connectionStrings "[PathToWeb.Config]"
該帳戶應具有數據庫所需的權限,例如 db_DataReader 和 db_DataWriter。