集成安全性= false时,在数据库'master'中拒绝CREATE DATABASE权限 - 为什么要尝试创建已存在的数据库?
问题描述:
我有一个ASP.net MVC应用程序连接到(localdb)\ v11.0 SQL Server数据库与连接字符串使用“集成安全性” - 工作正常。集成安全性= false时,在数据库'master'中拒绝CREATE DATABASE权限 - 为什么要尝试创建已存在的数据库?
现在我想连接到用户ID为& PW的同一分贝。
我创建了登录& user:user100,给了它db_owner权限。 我可以用SSMS打开带有ID/PW的数据库。
但是,当我改变我的连接字符串为“用户ID = user100 &密码= XXXX”,我得到的错误:
CREATE DATABASE permission denied in database 'master'.\r\nCannot attach the file 'C:\Projects\ExcellerWeb\ExcellerWeb\App_Data\ExcellerWebCopy.mdf' as database 'ExcellerWebCopy'.
为什么它试图创建一个已经存在的数据库?
和下面的代码返回TRUE:
System.Data.Entity.Database.Exists("UserConnection");
起初我还以为是EF迁移,但似乎没有上迁移一个简单的测试项目中发生。
这里是我的连接字符串:
<add name="UserConnection"
connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\ExcellerWeb.mdf;Initial Catalog=ExcellerWeb;Integrated Security=False;User ID=user200; Password=****"
providerName="System.Data.SqlClient" />
答
从您的ConnectionString删除选项AttachDbFilename
。
<add name="UserConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=ExcellerWeb;Integrated Security=False;User ID=user200; Password=****"
providerName="System.Data.SqlClient" />
此选项用于在打开连接时附加文件。 欲了解更多详情,请看this或此MSDN-article