【问题标题】:EF 4.1 CF + Azure: CREATE DATABASE permission denied in database 'master'EF 4.1 CF + Azure:数据库“主”中的 CREATE DATABASE 权限被拒绝
【发布时间】:2023-03-05 22:01:02
【问题描述】:

我有一个使用 EF 4.1 Codefirst 的 ASP.NET WebForms 应用程序。 第一次运行我的应用程序会创建一个新的数据库、表等。 到目前为止一切正常。

但在将我的应用程序作为 WebRole 添加到 Azure 项目后,当我第一次访问数据库时收到一条错误消息(数据库“master”中的 CREATE DATABASE 权限被拒绝)。

显然,如果我在 VS Development Webserver 或 Azure Emulator 中启动我的应用程序会有所不同。

以下是一些我认为可能相关的附加信息:

  • 运行应用程序时数据库不存在
  • Visual Studio 2010 以管理员身份运行
  • 我的网络角色的信任级别:完全信任
  • SQL Server 服务 (MS SQL 2008 R2 Express) 已启动并正在运行

我的 web.config 中的连接字符串如下所示:

<add name="dbContext" connectionString="server=(local)\SQLEXPRESS;database=myDB;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

我还尝试使用真实用户而不是“集成安全性”。并且该用户分配了所有可能的数据库角色,包括 sysadmin、serveradmin 等。

如何向我的应用程序授予必要的权限,以便允许在 Azure 模拟器中运行时创建数据库?

非常感谢您的帮助!

【问题讨论】:

    标签: azure ef-code-first credentials azure-sql-database


    【解决方案1】:

    Azure 模拟器使用“网络服务”帐户的凭据运行。您需要在主数据库上添加“网络服务”帐户的凭据。

    【讨论】:

    • 超级,完美!我将 NT AUTHORITY\NETWORK SERVICE 添加为我的 SQL Server 的新登录名,然后将主数据库分配给这个新登录名。现在它可以工作了。正在创建数据库。非常感谢,普拉富拉。它把我逼疯了;-)
    猜你喜欢
    • 1970-01-01
    • 2016-12-17
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 2014-11-14
    相关资源
    最近更新 更多