在本地部署azure网站,update-database不起作用:数据库'master'中的CREATE DATABASE权限被拒绝

时间:2012-06-26 14:23:18

标签: sql visual-studio azure web

我已完成本教程: https://www.windowsazure.com/en-us/develop/net/tutorials/web-site-with-sql-database/?redirectToLocale=false

当我在Azure在线帐户上发布它并且数据库运行良好时,它可以正常工作。 但问题是,当我按照教程时,它要求这样做: 1.启用迁移 2.添加迁移 3. update-database

  1. 和2.但是当我在Package Manager控制台中运行3.(update-database)时,我收到此错误:
  2.   

    在数据库'master'中拒绝CREATE DATABASE权限。

    所以我无法在本地部署我的WebSite,这是我的问题...... 当我运行Ctrl + F5时,它会打开

    > http://localhost:2700/
    

    并显示此错误:

    > Server Error in '/' Application.
    > 
    > CREATE DATABASE permission denied in database 'master'.
    > 
    > Description: An unhandled exception occurred during the execution of
    > the current web request. Check the stack trace for more information
    > about the error and where it originated in the code.
    > 
    > Exception Details: System.Data.SqlClient.SqlException: CREATE DATABASE
    > Permission denied in database 'master'.
    > 
    > Source Error:
    > 
    > 
    > Line 20: public ActionResult Index ()
    > Line 21: { 
    > Line 22:   return View(db.ToDoItems.ToList ()); 
    > Line 23: } 
    > 
    > Source File: c: \ Users \ baudouin \ Documents \ Visual Studio 2012 \
    > Projects \ ToDoListApp \ ToDoListApp \ Controllers \ HomeController.cs
    > Line: 22
    

    当我打开SQL Server Management Studio时,我可以访问我的主数据库... 当我在Visual Studio 2012 RC中时,它说我的数据连接DefaultConnection(ToDoApp)有错误:

    > Server Explorer can not execute this operation.
    >     For more information, see details below:
    >     Cannot attach the file 'C:\Users\baudouin\documents\visual studio 2012\Projects\ToDoListApp\ToDoListApp\App_Data\aspnet-ToDoListApp-20120625114938.mdf'
    > as database 'aspnet-ToDoListApp-20120625114938'.
    

    我在教程中没有看到与.mdf相对应的内容......我不明白为什么update-database根本不起作用。

    你能帮帮我吗?

    谢谢!! [来自巴黎的法国学生]

2 个答案:

答案 0 :(得分:0)

你的连接字符串是什么?在测试代​​码时,您似乎正在尝试连接到本地SQLExpress数据库?

当您从Visual Studio运行代码时,VS和数据库都可以在两个不同的帐户上运行。例如,Windows Azure Compute Emulator使用“网络服务”帐户凭据运行,因此为master数据库添加相同的“网络服务”凭据可解决此问题。

因此,尝试在NT AUTHORITY \ NETWORK SERVICE的SQLExpress实例中添加登录名并授予其sysadmin角色,并查看问题是否已解决。

尽管仅为主数据库授予系统管理员角色授予db_owner角色给NT AUTHORITY \ NETWORK SERVICE。这也需要重新启动服务一次 - 建议重新启动系统。

答案 1 :(得分:-1)

正如Avkash所指出的,问题与您尝试连接到本地数据库有关。这可能在本地工作,但在Windows Azure中不起作用。请使用Azure SQL数据库。连接字符串的数据源需要指向tcp:...而不是本地mdf文件。实际上你指出的教程已经使用了Azure SQL数据库,请参阅它以获取更多详细信息。