質問: Azure Managed Identityを介して接続しているAzure SQLデータベースに対してEF6 Code First移行を実行しようとしています。実行する移行がいくつかあります。最後の移行は失敗します。この移行は、新しいスキーマにテーブルを作成するため、他の移行とは異なります。 これは、新しいスキーマを作成するEntity Framework Code First Migrationの実行時に返されるエラーです。 ``` System.Data.SqlClient.SqlException: The specified schema name "uuid@uuid" either does not exist or you do not have permission to use it. CREATE SCHEMA failed due to previous errors. ``` SQLコマンドをデータベースに記録しましたが、失敗しているように見えるコマンドは ``` IF schema_id('MyNewSchema') IS NULL EXECUTE('CREATE SCHEMA [MyNewSchema]') ``` エラーで: ``` Err 2759, Level 16, Server mysqldbname CREATE SCHEMA failed due to previous errors. ``` システムの詳細は次のとおりです。 * この移行が成功する前の他のすべての移行。ただし、新しいスキーマを作成する必要はありません * .NET Framework 4.7.1の使用。 EF6.2.0。 * Azure SQLデータベースの使用。 * Azure Managed Identityを使用してASP.NET MVC WebアプリケーションからAzure SQLに接続する( )。 **私が試したもの** *1.役割を追加する* 私が試した主なことは、Microsoftの権限ドキュメントを使用して、必要な権限を特定することです。これまでのところ、移行を実行するApp Serviceが接続する含まれているユーザーに次のロールを追加しました: ``` db_ddladmin db_datareader db_datawriter db_securityadmin db_owner db_accessadmin ``` (他のマイグレーションは、db_ddladmin、db_datareader、およびdb_datawriterだけで正常に機能したことに注意してください) *2.サーバー管理者として移行を実行する* SQL Server管理者ユーザーとして移行を実行してみました。これは機能しますが、実稼働システムのSQL Server管理ユーザーとして接続することはできません。
回答: asp.netコア2.2とEFコアを使用して同じ問題が発生しました。管理されたIDを使用してスキーマを作成しようとすると、同じエラーが発生しました。バグであることを示すこの記事を見つけました-https ://techcommunity.microsoft.com/t5/Azure-Database-Support-Blog/Lesson-Learned-54-The-specified-schema-name-name-domain-com / ba-p / 369152 。 私の唯一の回避策は、サーバー管理者が理想的ではないスキーマを作成することでした。