IIS中ASP.NET連接SQL Server出錯的解決方法
更新時間:2010年03月23日 17:21:33 作者:
在IIS中運(yùn)行的ASP.NET應(yīng)用程序其所屬用戶名為ASPNET的特定用戶,其默認(rèn)權(quán)限是無法訪問SQL Server的,更不可能訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫了,因此要在IIS中訪問SQL Server就需要給ASPNET帳戶賦予相應(yīng)的權(quán)限.
解決連接問題的另一種方法是在IIS中啟用SQL Server驗證,然后再連接字符串中使用用戶ID與密碼;或是當(dāng)ASP.NET應(yīng)
用程序以另一個Windows用戶而非ASPNET運(yùn)行時,使用ASP.NET impersonation方法。
為了使ASPNET帳戶可以訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫,需要完成以下步驟:
1)啟動SQL Server Management Studio,指定SQL Server實(shí)例名,以Windows驗證模式登錄。
2)用grantlogin存儲過程把Windows的用戶添加到SQL Server數(shù)據(jù)庫中。這個命理將賦予ASPNET帳戶連
接SQL Server的權(quán)限。注意要用本機(jī)的主機(jī)名代替命令中的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運(yùn)行時,使用ASP.NET impersonation方法。
為了使ASPNET帳戶可以訪問ASP.NET應(yīng)用程序的數(shù)據(jù)庫,需要完成以下步驟:
1)啟動SQL Server Management Studio,指定SQL Server實(shí)例名,以Windows驗證模式登錄。
2)用grantlogin存儲過程把Windows的用戶添加到SQL Server數(shù)據(jù)庫中。這個命理將賦予ASPNET帳戶連
接SQL Server的權(quán)限。注意要用本機(jī)的主機(jī)名代替命令中的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)文章
Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片
這篇文章主要為大家詳細(xì)介紹了Asp.net使用SignalR實(shí)現(xiàn)發(fā)送圖片,需要的朋友可以參考下2016-04-04
ASP.NET設(shè)計網(wǎng)絡(luò)硬盤之刪除文件夾實(shí)現(xiàn)代碼
對于不再需要的文件/文件夾用戶有權(quán)限做刪除處理。這一節(jié)就介紹如何實(shí)現(xiàn)這一功能2012-10-10
asp.net ajaxControlToolkit FilteredTextBoxExtender的簡單用法
最近寫的東西驗證比較多,尤其是數(shù)字驗證,無意中發(fā)現(xiàn)這個控件,有點(diǎn)兒意思。記錄一下2008-11-11
利用noesis.Javascript開源組件.Net中執(zhí)行javascript腳本
利用Noesis.Javascript開源組件可以做到在.net中執(zhí)行js腳本,同時js腳本也能調(diào)用C#函數(shù)。這個組件的獲得方式:在NuGet中輸入搜索"Noesis"就能找到,我們來做個搜索功能:用戶能夠在textbox中輸入js腳本來篩選list記錄2013-12-12
使用 ServiceStack.Text 序列化 json的實(shí)現(xiàn)代碼
今天發(fā)篇文章總結(jié)下自己使用 ServiceStack.Text 來序列化 json。它的速度比 Newtonsoft.Json 快很多,在測試時發(fā)現(xiàn)比 fastJson 還快些2013-06-06
詳解ASP.NET-----Repeater數(shù)據(jù)控件的用法總結(jié)
本篇文章主要介紹了ASP.NET--Repeater數(shù)據(jù)控件的用法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。2016-11-11
asp.net 獲取Datalist中Checkbox的值的小結(jié)
最近開發(fā)過程中遇到一個小問題,要獲取checkbox的值,在網(wǎng)上搜索了一下,發(fā)現(xiàn)基本上都是用JS實(shí)現(xiàn)的,現(xiàn)在我將自己的做法記錄一下,以便以后繼續(xù)使用。2010-04-04

