簡體   English   中英

asp.net/sql server / iis權限

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM