単純なASP.NET MVCアプリケーションをステージングサーバーにデプロイしています.EntityFrameworkが既存のデータベースを移行しようとすると、次のエラーが発生します。次のようにEntityFrameworkの移行で既存のデータベースを作成しよう
CREATE DATABASE permission denied in database 'master'.
状況は次のとおりです。
- これは、マイグレーションを実行初めてです。
- データベースは既に存在します(実際はUmbracoデータベースです)。
それは(EntityFrameworkから)は、以下の方法を思われることが明らかにtrueを返す必要がある場合、falseを返します。
Database.SetInitializer(new MigrateDatabaseToLatestVersion<DataContext, Configuration>());
自動:
System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists()
データベースの初期化子は、次のコードを持っていますコードベースの移行を使用しているため、移行はオフになっています。
接続文字列が正しいデータベースを指していて、ユーザーはそのデータベースに対してdb_owner権限を持っています。ユーザーは、サーバー上の他の表に対する権限を持ちません。
これはよくある問題ですか?誰もがこれに対する解決策を知っていますか?
Thnx!
あなたはそれがシステム・データベースの名前だと問題にの –
が重複する可能性を引き起こす可能性があるので、マスターにならないためにそれを設定してみてください可能性がクエリを実行することが可能であること[CREATE DATABASEアクセス許可がデータベース 'master' Entity Framework Migrationで拒否されました](0120-338-005)データベース: –
データベース接続文字列内の名前はマスタではありません(これは実際にはシステムデータベースなので)。これは既存のデータベースであり、ユーザーはそのデータベースに対する権利しか持ちません。 EnsureDatabaseExistsがデータベースが存在しないと報告するため、EntityFrameworkはデータベースを作成しようとします。その後、EFはDBを作成しようとしますが、ユーザーにはその権利がありません。しかし、それは問題ではありません。 EFは何らかの理由でdbが実際に存在することを検出できません –