C# EF Code First-{“在数据库“master”中创建数据库的权限被拒绝”。}

C# EF Code First-{“在数据库“master”中创建数据库的权限被拒绝”。},c#,sql-server-2008,entity-framework,ef-code-first,C#,Sql Server 2008,Entity Framework,Ef Code First,我只想在我的开发环境中快速启动默认数据库 解决此问题的最简单方法是什么?在有权在开发SQL server上创建数据库的帐户下运行应用程序。如果使用SQL身份验证,请在具有此权限的连接字符串中指定SQL登录的凭据。默认情况下,SQL server安装期间指定的管理员帐户具有此权限,但您也可以将其添加到其他登录中。我曾经遇到过此问题并解决了它。密钥使用SQL身份验证而不是Windows。这是指定默认数据库的最清晰的方法 请按以下方式尝试连接字符串: <add name="MFCConnecti

我只想在我的开发环境中快速启动默认数据库


解决此问题的最简单方法是什么?

在有权在开发SQL server上创建数据库的帐户下运行应用程序。如果使用SQL身份验证,请在具有此权限的连接字符串中指定SQL登录的凭据。默认情况下,SQL server安装期间指定的管理员帐户具有此权限,但您也可以将其添加到其他登录中。

我曾经遇到过此问题并解决了它。密钥使用SQL身份验证而不是Windows。这是指定默认数据库的最清晰的方法

请按以下方式尝试连接字符串:

<add name="MFCConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MFC.mdf;Initial Catalog=MFC;Integrated Security=false;User ID=sa;Password=123"
  providerName="System.Data.SqlClient" />
请记住将sa的默认数据库从master设置为MFC,并且integratedsecurity=false。
顺便说一句,sa通常是禁用的,所以请先在sql server management studio中启用并测试它。

这可能对任何遇到此问题的人都有用,就像我在寻找错误答案时所做的那样。这些步骤应该是您所需要的全部,我已经在中复制了代码,您可以粘贴以使其快速运行

我首先使用代码,尝试使用“创建数据库”,但标题中出现错误。 这次以管理员身份关闭并重新打开-未识别命令,但使用了“更新数据库”。同样的错误

以下是我为解决此问题所采取的步骤:

1打开SQL Server Management Studio并创建了一个数据库

2在VS2013的“视图”下打开服务器资源管理器并连接到数据库

3右键单击连接->属性,并抓取连接字符串

4在web.config中,我添加了连接字符串

   <connectionStrings>
<add name="DefaultConnection"
  connectionString="Data Source=MyMachine;Initial Catalog=Videos;Integrated Security=True" providerName="System.Data.SqlClient"
  />
  </connectionStrings>

我对EF6.0和代码优先也有同样的问题。如果您有多个具有不同连接字符串的项目,并且即使选择了正确的默认项目,也从package manager控制台运行update database,则Visual studio会从启动项目读取连接字符串,因此,如果该启动项目上没有连接,则权限将被拒绝


您可以通过将正确的项目设置为仅用于updte数据库的启动项目来解决此问题。

您用于连接数据库的登录名是否具有dbcreator角色?+1-还可以尝试以管理员身份运行Visual Studio。即使您自己的帐户具有管理员权限,我发现在使用本地数据库开发时,在某些计算机上也有必要这样做。我知道这是一篇老文章,但让我大吃一惊的是,将连接字符串属性更改为Integrated Security=false才是我的答案。安装程序是在该服务器上运行IIS和SQLEXPRESS的本地服务器。无法使SQL server允许我的帐户创建数据库,即使一切都已设置。对我来说这是一个很棒的帖子。谢谢
using System.Data.Entity;

namespace Videos.Models
{
public class VideoDb : DbContext
{
    public VideoDb()
        : base("name=DefaultConnection")
    {

    }

    public DbSet<Video> Videos { get; set; }
}
}
        protected override void Seed(Videos.Models.VideoDb context)
        {
        context.Videos.AddOrUpdate(v => v.Title,
            new Video() { Title = "MyTitle1", Length = 150 },
            new Video() { Title = "MyTitle2", Length = 270 }
            );

        context.SaveChanges();
        }