[英]asp.net/sql server/iis permissions
我正在開發需要訪問SQL Server數據庫的ASP.NET Web應用程序。 應用程序需要在其上運行的服務器正在運行Windows Server 2000,SQL Server 2000,IIS6和.NET 2.0。
如果我在裝有Visual Web Developer 2010的計算機上運行Visual Studio中測試Web服務器的Web應用程序,但是訪問了實際Web服務器上的數據庫,則它可以正常工作。 但是,如果我將此應用程序放置在實際的Web服務器上,並嘗試通過瀏覽器訪問它,則會出現權限錯誤,提示我無權訪問那些表。
我的應用程序需要訪問兩個表。 在其中之一上,我使用SQL Management Studio更改了權限,以允許公共組選擇權限,從而解決了該問題。 在另一個表(非常大的表)上,我嘗試執行相同的操作,但是收到一條錯誤消息,提示它超時等待在表上獲取鎖。 有沒有辦法更改此超時或另一種方法來更改權限?
我不認為我什至不必更改權限,因為該服務器上有經典的ASP應用程序可以訪問相同的表。 我認為問題是用於訪問表的用戶。 如果我可以從我的機器訪問運行Web應用程序的表,而服務器上的經典ASP應用程序可以訪問它們,但我的ASP.NET應用程序不能訪問它們,則我的ASP.NET應用程序必須使用其他用戶帳戶。 如何檢查並進行必要的更改?
關於您的權限錯誤,可能是因為在您的計算機上,該應用正在使用您的權限通過Windows集成登錄訪問數據庫。
通常,Web應用程序應該使用連接字符串部分中web.config文件中指定的技術用戶來訪問數據庫。 就像
<configuration>
<connectionStrings>
<add name="myConnsStr" connectionString="server=myserver.example.com;database=mydatabase;uid=tech_account;pwd=tech_account_password" providerName="System.Data.SqlClient" />
</connectionStrings>
...
</configuration>
你看起來怎么樣?
對於另一個,是的,請在T-SQL中進行權限更改。 如果不確定如何執行此操作,請在設計器中進行更改,然后在單擊“確定”之前,使用標題區域中的“腳本”按鈕。 將更改編寫腳本到剪貼板,然后嘗試在新的查詢窗口中運行。 您可以在選項對話框中處理查詢超時。
您可以嘗試將鎖定超時設置為-1(這意味着它永遠不會超時)
SET LOCK_TIMEOUT -1
GO
您也可以嘗試使用查詢添加權限
sp_addrolemember @rolename = 'db_datareader', @membername = 'YourAspApp'
您也可以嘗試將asp.net連接字符串中的asp.net用戶更改為已經具有選擇權限的用戶。
讓我知道是否有任何可行的方法,這是從=)開始的好地方
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.