2016-08-11 202 views
1

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

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

<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" /> 

回答

2

,我发现我的解决方案。

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

2

要创建数据库:

打开安全文件夹,然后打开登录文件夹,然后选择要在其下创建数据库的用户帐户。 打开帐户的属性,选择服务器角色选项卡,然后选择dbcreator复选框(sysadmin工作得更好)。 您也可以尝试使用标准管理员帐户sa登录时创建数据库。

+0

嗨亲爱的。谢谢您的回答。但您可以看到,我使用'sa'用户,并且拥有创建数据库的所有权限。我也使用这个用户的另一个项目,它没有错误! –

+0

@masoudnoursaid所以我认为你的问题已经解决。 –

0

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

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

所以,基本上你需要允许你的情况在你的服务器上创建数据库。希望,这可以帮助你。

+0

嗨亲爱的。谢谢您的回答。但您可以看到,我使用'sa'用户,并且拥有创建数据库的所有权限。我也使用这个用户的另一个项目,它没有错误! –

0

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

sp_dropsrvrolemember 'Youraccount','sysadmin' 

sp_dropsrvrolemember 'youraccoount','dbcreator' 
+0

嗨亲爱的。谢谢您的回答。但您可以看到,我使用'sa'用户,并且拥有创建数据库的所有权限。我也使用这个用户的另一个项目,它没有错误! –