【问题标题】:CREATE DATABASE permission denied in database 'master' - using Web Deploy, EF Code First, Visual Studio数据库“主”中的 CREATE DATABASE 权限被拒绝 - 使用 Web 部署、EF Code First、Visual Studio
【发布时间】:2013-05-22 18:17:41
【问题描述】:

Visual Studio 2012 Express、EF5、代码优先迁移、Web 发布。

我正在使用 Visual Studio 2012 中的 Web Deploy 从 Windows 8 笔记本电脑向 Windows Server 2008 R2 Web 服务器进行 Web 发布。

文件上传正常。但我得到这个错误: 数据库“主”中的 CREATE DATABASE 权限被拒绝

Code 首次尝试创建数据库时。

Web Publishing 向导使用 windows 用户登录 - 该用户对 master 数据库具有 db_owner 权限。

我需要做什么才能授予 CREATE DATABASE 权限? (或查看哪个用户尝试这样做 - 错误由于某种原因没有报告?!)。

谢谢。

【问题讨论】:

标签: asp.net sql-server sql-server-2008 visual-studio-2012 webdeploy


【解决方案1】:

我刚刚遇到这个问题,我按照here 的说明解决了这个问题。实际上,必须首先添加“IIS APPpool\DefaultAppPool”用户。添加时,请确保 作为它的“服务器角色”,它是一个“系统管理员”。

【讨论】:

  • 这对于测试服务器来说很好,但我不建议在生产中使用 - 如果进程是数据库上的系统管理员,您的一个 Web 应用程序或 IIS 本身中的漏洞可能会变得更糟.
  • 创建db后可以删除权限。顺便说一句,只使用 dbcreator 角色就足够了。
【解决方案2】:

如果您从 IIS 运行应用程序,则 IIS APPPOOL\{Your apppool name} 是尝试创建数据库的 sql 用户。如果你的 sql server 中没有这样的用户,那么创建一个名为 IIS APPPOOL\{Your apppool name} 的用户,并赋予服务器角色 dbcreator、public 和 sysadmin。现在我希望你不会看到错误,代码首先应该创建数据库。

【讨论】:

    猜你喜欢
    • 2016-12-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2019-12-15
    相关资源
    最近更新 更多