EF Code First CREATE DATABASE permission denied in database

本文关键字:denied in database permission DATABASE Code First CREATE EF | 更新日期: 2023-09-27 18:01:48

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

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

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

EF Code First CREATE DATABASE permission denied in database

我找到解决办法了。

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

创建数据库:

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

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

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

所以,基本上你需要在你的情况下在你的服务器上创建数据库的权限。

您可以使用SA或者您可以将它(您的帐户)添加到dbcreatorsysadmin角色

sp_dropsrvrolemember 'Youraccount','sysadmin'

sp_dropsrvrolemember 'youraccoount','dbcreator'