2011-03-18 112 views
1

我想從ASP.NET HTTP請求處理程序中訪問SQL Server Express數據庫。如何使用Visual Studio 2008工具授予對特定用戶的SQL Server Express數據庫訪問權限?

處理程序在ASPNET帳戶下運行,並在SQL連接字符串中使用「集成安全性」,因此我收到一條錯誤消息,說明ASPNET帳戶登錄失敗,因此無法訪問數據庫。

這似乎是a very common problem和大多數答案都說「授予訪問您的數據庫到用戶ASPNET」。

我只有Visual Studio 2008,我找不到如何更改數據庫訪問權限。特別是我使用Tools-> Server Explorer,我可以看到數據庫中的所有表,但無法找到如何更改訪問權限。

如何使用Visual Studio 2008中提供的工具更改對數據庫的訪問權限?

回答

4

一種選擇是獲得SQL Express的工具將是一個好主意,因此獲得SQL Server管理控制檯速成版,或者只是安裝SQL Server管理工具(例如從SQL Server Developer Edition)。然後你有完整的GUI(包括輸入和生成SQL的能力)。

另一種選擇是使用SQL來做到這一點:

  1. 使用CREATE LOGIN到登錄添加到SQL Server實例。
  2. 使用CREATE USER添加登錄到目標數據庫。
  3. 使用SP sp_addrolemember分配角色。

例如, (IIS AppPools是一組應用程序池標識,系統Dev1被分配了通用讀寫數據訪問當前數據庫):

CREATE LOGIN [DEV1\IIS AppPools] FROM WINDOWS WITH DEFAULT_DATABASE=[master] 
GO 
CREATE USER [DEV1\IIS AppPools] FOR LOGIN [DEV1\IIS AppPools] 
GO 
EXEC sp_addrolemember N'db_datareader', N'DEV1\IIS AppPools' 
GO 
EXEC sp_addrolemember N'db_datawriter', N'DEV1\IIS AppPools' 
GO 
相關問題