【发布时间】:2011-11-20 17:01:06
【问题描述】:
我正在使用 SQL Server 2008 R2,但遇到了问题。我开发的应用程序需要在不同地点的客户站点进行测试。所以我计划一次配置客户端的机器,然后对于与应用程序相关的任何更改,我将分发一个 asp.net mvc 部署包,客户端可以在 IIS 上部署它。为此,我需要为我的 asp.net 应用程序提供删除和创建数据库的能力(通过 codefirst 实体框架)。 在当前配置中,我面临与删除数据库相关的权限问题。应用程序无法删除数据库。这是我正在使用的 IIS 和 SQL Server 配置的摘要。
对于 IIS,我已按照标准做法将应用程序池标识设置为“本地服务”。 asp.net web.config文件中的连接字符串如下。
connectionString="Server=.\SQLEXPRESS;Database=SomeDatabase;Trusted_Connection=true;User Id=someuser;Password=somepassword" />
对于 SQL Server 服务,我提供了“本地服务”作为登录名,在这里再次提供了服务的最低访问权限。对于 SQL Server 实例登录,我已经定义了用户和密码,并赋予了完整的权限(“sysadmin”)角色。
有了这个配置,我希望我的 IIS 应用程序能够使用上面创建的用户和密码进行连接,并且能够删除和创建 SQL Server 数据库。但是我被拒绝删除数据库的权限。例外情况如下。
System.Data.SqlClient.SqlException (0x80131904): Cannot drop the database 'SomeDatabase', because it does not exist or you do not have permission.
我已检查数据库是否存在,因此归结为权限。我是否遗漏了一些配置?
【问题讨论】:
-
如果您连接到数据库,不是通过您的应用程序,而是作为用户之一通过命令行工具,您可以删除数据库吗?
标签: asp.net sql-server asp.net-mvc sql-server-2008 iis