IIS中ASP.NET連接SQL Server出錯的解決方法
更新時間:2010年03月23日 17:21:33 作者:
在IIS中運行的ASP.NET應(yīng)用程序其所屬用戶名為ASPNET的特定用戶,其默認權(quán)限是無法訪問SQL Server的,更不可能訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫了,因此要在IIS中訪問SQL Server就需要給ASPNET帳戶賦予相應(yīng)的權(quán)限.
解決連接問題的另一種方法是在IIS中啟用SQL Server驗證,然后再連接字符串中使用用戶ID與密碼;或是當ASP.NET應(yīng)
用程序以另一個Windows用戶而非ASPNET運行時,使用ASP.NET impersonation方法。
為了使ASPNET帳戶可以訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫,需要完成以下步驟:
1)啟動SQL Server Management Studio,指定SQL Server實例名,以Windows驗證模式登錄。
2)用grantlogin存儲過程把Windows的用戶添加到SQL Server數(shù)據(jù)庫中。這個命理將賦予ASPNET帳戶連
接SQL Server的權(quán)限。注意要用本機的主機名代替命令中的MachineName。
Exec sp_grantlogin 'MachineName\ASPNET'
3)在為ASPNET帳戶賦予了鏈接SQL Server的權(quán)限后,還需要為其賦予訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫的
權(quán)限。注意要用ASP.NET應(yīng)用程序的數(shù)據(jù)庫的名字代替DateBaseName:
USE DateBaseName
Exec sp_grantdbaccess 'MachineName\ASPNET'
4)最后,需要賦予ASPNET訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫內(nèi)部對象的權(quán)限,如執(zhí)行存儲過程,讀取和
修改表等。最簡單的方法是為ASPNET帳戶分配一個ASP.NET應(yīng)用程序的數(shù)據(jù)庫的db_owner角色。如果前面的步驟
中已經(jīng)連接到了ASP.NET應(yīng)用程序的數(shù)據(jù)庫,輸入下面的命令:
Exec sp_addrolemember 'db_owner','achineName\ASPNET'
現(xiàn)在你就可以從Web應(yīng)用程序以Windows驗證模式連接數(shù)據(jù)庫了。
用程序以另一個Windows用戶而非ASPNET運行時,使用ASP.NET impersonation方法。
為了使ASPNET帳戶可以訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫,需要完成以下步驟:
1)啟動SQL Server Management Studio,指定SQL Server實例名,以Windows驗證模式登錄。
2)用grantlogin存儲過程把Windows的用戶添加到SQL Server數(shù)據(jù)庫中。這個命理將賦予ASPNET帳戶連
接SQL Server的權(quán)限。注意要用本機的主機名代替命令中的MachineName。
Exec sp_grantlogin 'MachineName\ASPNET'
3)在為ASPNET帳戶賦予了鏈接SQL Server的權(quán)限后,還需要為其賦予訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫的
權(quán)限。注意要用ASP.NET應(yīng)用程序的數(shù)據(jù)庫的名字代替DateBaseName:
USE DateBaseName
Exec sp_grantdbaccess 'MachineName\ASPNET'
4)最后,需要賦予ASPNET訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫內(nèi)部對象的權(quán)限,如執(zhí)行存儲過程,讀取和
修改表等。最簡單的方法是為ASPNET帳戶分配一個ASP.NET應(yīng)用程序的數(shù)據(jù)庫的db_owner角色。如果前面的步驟
中已經(jīng)連接到了ASP.NET應(yīng)用程序的數(shù)據(jù)庫,輸入下面的命令:
Exec sp_addrolemember 'db_owner','achineName\ASPNET'
現(xiàn)在你就可以從Web應(yīng)用程序以Windows驗證模式連接數(shù)據(jù)庫了。
相關(guān)文章
.Net使用Cancellation?Framework取消并行任務(wù)
這篇文章介紹了.Net使用Cancellation?Framework取消并行任務(wù)的方法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-06-06Asp.net中處理一個站點不同Web應(yīng)用共享Session的問題
Asp.net中處理一個站點不同Web應(yīng)用共享Session的問題...2006-09-09一天精通asp.net的學(xué)習(xí)經(jīng)驗小結(jié)
一天精通asp.net的學(xué)習(xí)經(jīng)驗小結(jié)2010-02-02關(guān)于有些Asp.net項目發(fā)布后出現(xiàn)網(wǎng)址亂碼的解決方法
最近在部署一個網(wǎng)站,net2.0開發(fā)的,但是遇到一個很奇怪的問題。2011-07-07asp.net頁面SqlCacheDependency緩存實例
這篇文章主要介紹了asp.net頁面SqlCacheDependency緩存實例,以一個完整實例來展現(xiàn)asp.net中緩存技術(shù)的使用方法,需要的朋友可以參考下2014-08-08asp.net 從POST的數(shù)據(jù)流中提取參數(shù)和文件
按理,F(xiàn)orm提交的數(shù)據(jù),無論是application/x-www-form-urlencoded還是multipart/form-data(有附件時),都可在服務(wù)端通過Request.Form["name"]和Request.Files["name"]獲取到參數(shù)和上傳的文件。2010-02-02ASP.NET Core 2.0中Razor頁面禁用防偽令牌驗證
在這篇短文中,我將向您介紹如何ASP.NET Core2.0 Razor頁面中禁用防偽令牌驗證,對此有興趣的朋友參考學(xué)習(xí)下吧。2018-01-01