数据库“master”中的CREATE DATABASE权限被拒绝。 MVC 4应用程序中的错误

时间:2013-08-14 12:06:18

标签: asp.net-mvc asp.net-mvc-4 database-connection connection-string dbcontext

在部署我的MVC 4应用程序后,我尝试注册用户,得到这样的错误:

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

连接字符串是:

<add name="Market" providerName="System.Data.SqlClient" connectionString="Data Source=endine.arvixe.com; Initial Catalog=Market; Uid=mylogin; Password=mypass; MultipleActiveResultSets=true; " />

和DbContext:

public class Market: DbContext
    {
        public Market()
        {
            Database.SetInitializer<Market>(new MarketInitializer());
        }
    }


public class MarketInitializer: DropCreateDatabaseIfModelChanges<Market>
    {
        protected override void Seed(Market context)
        {
            base.Seed(context);
        }
    }

我使用带有相同myloginmypass的SQL Management Studio访问数据库,使用脚本创建了Market数据库。但在网站上,无法访问数据库。

我怎么能找到它的原因?

2 个答案:

答案 0 :(得分:1)

问题是这段代码DropCreateDatabaseIfModelChanges<Market>

public class MarketInitializer: DropCreateDatabaseIfModelChanges<Market>
    {
        protected override void Seed(Market context)
        {
            base.Seed(context);
        }
    }

模型在某些时候发生了变化,因此它试图删除数据库并重新创建它

答案 1 :(得分:1)

有时会发生这种情况,因为您在本地SQL Server实例上没有sysadmin角色。我找到了有用的文章,你可以下载脚本命令并安装它。您将要求输入SQLEXPRESS名称或实例名称,只需编写“SQLEXPRESS”并输入即可。而已。它会将您添加到本地服务器实例的sysadmin角色。

http://archive.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=addselftosqlsysadmin&DownloadId=9198

下载命令

如果它不适合你,请告诉我。