数据库'master'中的EF Code First CREATE DATABASE权限被拒绝

时间:2016-08-11 08:34:59

标签: c# sql-server asp.net-mvc-4 entity-framework-6 code-first

我首先使用代码创建和更新数据库。我在包管理器中的update-database命令工作到昨天。但今天它没有工作,并有这个错误: 数据库“master”中的CREATE DATABASE权限被拒绝。 我对连接字符串和其他配置没有任何更改。 所以我尝试将Update-database更新到我的系统和我的Windows上的另一个项目,我可以重新创建和更新这个数据库,没有任何问题。 你能帮我解决这个错误吗?

这是我的项目连接字符串有问题:

<add name="Default" connectionString="Server=.\sqlexpress; Database=test1; User Id=sa; Password=123456" providerName="System.Data.SqlClient" />

这是我的项目连接字符串没有问题:

<add name="Default" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=test2;user id=sa;password=123456" providerName="System.Data.SqlClient" />

4 个答案:

答案 0 :(得分:2)

创建数据库:

打开“安全”文件夹,然后打开“登录”文件夹,并选择要在其下创建数据库的用户帐户。 打开帐户的Properties,选择Server Roles选项卡,然后选择dbcreator复选框(sysadmin工作得更好)。 您还可以尝试在标准管理员帐户sa。

下登录时创建数据库

答案 1 :(得分:2)

我找到了解决方案。

我在解决方案中有4个项目。但是当我尝试更新数据库时,Web项目不会设置为启动项目。所以我把这个项目设置为启动项目,我可以更新数据库。

答案 2 :(得分:0)

要在数据库服务器上创建数据库,您必须具有权限。因此,您使用的用户名必须具有在服务器上创建数据库的权限。您的数据库管理员(DBA)将授予您执行此操作的权限。

在开发环境中,您可以使用sa帐户,该帐户拥有在服务器上执行任何操作的所有权限。更好的是,如果你使用localdb进行开发,因为它非常轻巧且开发人员友好。

因此,基本上您需要在您的情况下获得在服务器中创建数据库的权限。希望,这对你有所帮助。

答案 3 :(得分:0)

您可以使用SA或者您可以将其(youraccount)添加到dbcreatorsysadmin个角色。

sp_dropsrvrolemember 'Youraccount','sysadmin'

sp_dropsrvrolemember 'youraccoount','dbcreator'