Как исправить ошибку «CREATE SCHEMA» при запуске миграций EF Code First с Azure Managed Identity - PullRequest
0 голосов
/ 08 апреля 2019

Я пытаюсь запустить EF6 Code First для базы данных SQL Azure, подключающейся через Azure Managed Identity. Есть несколько миграций для запуска. Последняя миграция не удалась. Эта миграция отличается от других тем, что создает таблицы в новой схеме.

Это ошибка, которая возвращается при запуске миграции Entity Framework Code First, которая создает новую схему:

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]')

С ошибкой:

<batch_information><failure_reason>Err 2759, Level 16, Server mysqldbname
CREATE SCHEMA failed due to previous errors.</failure_reason></batch_information>

Вот некоторые подробности о системе:

  • Все остальные миграции до этого были успешными. Тем не менее, ни один из тех, которые необходимы для создания новой схемы
  • Использование .NET Framework 4.7.1. EF6.2.0.
  • Использование базы данных SQL Azure.
  • Подключение к Azure SQL из веб-приложения ASP.NET MVC с использованием управляемого удостоверения Azure (https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-connect-msi).

Вещи, которые я пробовал

1. Добавление ролей

Главное, что я попробовал, это использовать документы по разрешениям Microsoft, чтобы определить, какие разрешения нужны. До сих пор я добавил следующие роли для отдельного пользователя, к которому подключается служба приложений, выполняющая миграции:

db_ddladmin
db_datareader
db_datawriter
db_securityadmin
db_owner
db_accessadmin

(обратите внимание, что другие миграции работали нормально только с db_ddladmin, db_datareader и db_datawriter)

2. Запуск миграций от имени администратора сервера

Я попытался запустить миграцию как администратор SQL Server. Это работает, но нам не разрешено подключаться как администратор SQL Server для производственной системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...