【发布时间】:2017-05-09 19:39:37
【问题描述】:
我有一个现有的数据库以及一些我想使用实体框架 (v6.0.0.0) 推送到该数据库的现有代码。
我连接到数据库没有问题,我检查了上下文和迁移文件,对我来说一切都很好。
当我运行Update-Database -Verbose 命令时,我收到以下错误:
CREATE DATABASE permission denied in database 'master'.
我不清楚为什么它甚至试图创建一个数据库,b/c 已经存在,我在设置中指定了数据库。
这是我的 app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="Server=[xxxxxxxxxx].rds.amazonaws.com,1433;Database=[xxxxxxxxxx];UID=[xxxxxxxxxx];PWD=[xxxxxxxxxx]" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="DataModel" connectionString="Server=[xxxxxxxxxx].rds.amazonaws.com,1433;Database=[xxxxxxxxxx];UID=[xxxxxxxxxx];PWD=[xxxxxxxxxx]"/>
</connectionStrings>
</configuration>
有什么理由会忽略我的数据库名称并尝试从头开始创建一个新名称?
【问题讨论】:
-
你的登录是否有能力在连接到master时枚举数据库?见docs.microsoft.com/en-us/sql/relational-databases/databases/…
-
@DavidBrowne - 根据文章,我已经为用户添加了“查看任何数据库”权限,也按照文章的建议进行了测试和确认。问题依然存在。
-
@monkeyApple21 - 不要认为这是一个骗局,我特别想知道为什么它首先要尝试
CREATE DATABASE。数据库已经存在。
标签: c# sql-server entity-framework entity-framework-6 amazon-rds