2011-03-18 108 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 
相关问题