Я пытаюсь опубликовать некоторые изменения в службе приложений Azure, включая миграцию базы данных, но у меня возникает следующая ошибка: есть ли какие-либо сведения о том, о чем идет речь. P.S Пользователю базы данных не назначена роль сервера sysadmin.
1>Warning SQL0: A project which specifies SQL Server 2016 as the target
platform may experience compatibility issues with Microsoft Azure SQL
Database v12.
1>Warning SQL0: Your permissions to see all objects in the server or
database could not be verified. The original error was:
1>The SELECT permission has not been granted on 'sys.sql_logins' for the
'master' database. You must be a member of the 'loginmanager' role to access
this system view.
1>Reverse Engineer will continue the import process, and logins will not be
imported.
1>The reverse engineering operation will attempt to continue anyway, but the
resulting model might be incomplete, malformed, or incorrect.
1>Error SQL72014: .Net SqlClient Data Provider: Msg 5011, Level 14, State 2,
Line 5 User does not have permission to alter database 'Iklikl_Staging', the
database does not exist, or the database is not in a state that allows
access checks.
1>Error SQL72045: Script execution error. The executed script:
1>IF EXISTS (SELECT 1
1> FROM [sys].[databases]
1> WHERE [name] = N'$(DatabaseName)')
1> BEGIN
1> ALTER DATABASE [$(DatabaseName)]
1> SET TEMPORAL_HISTORY_RETENTION ON
1> WITH ROLLBACK IMMEDIATE;
1> END


Вам необходимо настроить таргетинг на SQL Azure.
Чтобы изменить целевую платформу проекта
Щелкните правой кнопкой мыши свой проект в обозревателе решений и выберите «Свойства». Щелкните вкладку Project Settings слева, чтобы перейти на страницу свойств Project Settings.
Раскрывающийся список Целевая платформа на этой странице содержит все поддерживаемые платформы SQL Server, на которых может быть опубликован проект базы данных. Для этой процедуры выберите SQL Azure.
Эти ошибки не имеют ничего общего с вашим приложением MVC. Все они связаны с базой данных. Если вы разработали локальный SQL и хотите развернуть его в Azure SQL, они очень похожи, но не одно и то же. Процесс миграции Azure SQL на локальный SQL задокументирован здесь docs.microsoft.com/en-us/azure/sql-database/…
Я использую первый подход с кодом с Entity, и ошибка возникает при попытке выполнить скрипт в OP, я могу создавать, изменять и удалять с помощью Sql Server Management Studio удаленно, но когда я пытаюсь опубликовать его через Visual Studio, он ломает броски вышеупомянутые ошибки. Теперь я смущен, связано ли это с разрешениями базы данных или чем-то еще.
Пользователь SQL, которого вы используете для развертывания, не является частью роли loginmanager. loginmanager и dbmanager - две роли, эксклюзивные для Azure SQL.
Выполните следующее для владелец (где [user] - ваш пользователь sql):
ALTER ROLE loginmanager ADD MEMBER [user];
Вы можете проверить, что ваш пользователь теперь является частью правильной роли, выполнив следующий запрос:
select dp.name as db_role, dp2.name as db_user
from sys.database_role_members drm
join sys.database_principals dp on (drm.role_principal_id = dp.principal_id)
join sys.database_principals dp2 on (drm.member_principal_id = dp2.principal_id)
order by dp.name
Пользователю также могут потребоваться другие разрешения, такие как «Изменить», «Выбрать» и «Просмотр определения», которые вы можете добавить, выполнив следующий пример команды для твой БД (где [user] - ваш пользователь sql:
GRANT ALTER TO [user]
Вот статьи, которые я использовал (обязательно прочтите первую, последние две дополняют информацию в ней):
https://www.sqlservercentral.com/articles/azure-dwh-part-12-permissions-roles-logins-and-users
это не проект базы данных, это веб-приложение MVC, я успешно публиковал его, пока не написал для него Migrations. Ваш ответ все еще действителен, потому что я не вижу ни одного DropDown, содержащего целевую платформу, на странице настроек.