Я только что импортировал существующую производственную базу данных SQL Server 2008r2 в проект базы данных VS 2013.
Теперь я получаю ряд ошибок по линии
Error SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].
Мне действительно не нужен мой проект VS DB для управления пользователями, но я обеспокоен тем, что он попытается удалить их при развертывании, если их там не было.
Сами файлы генерируются как
CREATE USER [mydbuser] FOR LOGIN [mydbuser];
или
CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];
Маркер ошибки показывает, что это специально для входа в систему . Поскольку это объект системного уровня, я могу понять, что он выходит за рамки проекта db.
Желательно ли изменить их все на
CREATE USER [mydbuser] WITHOUT LOGIN;
или добавить CREATE LOGIN
пункт в начале каждого файла?
Удаление ссылки на логин кажется более простым, а удаление пользователей вообще будет самым простым.
Я хочу убедиться, что я использую инструмент так, как он был предназначен. Будут ли какие-либо проблемы в переиздании любого из тех назад к производству? Как правильно добавить пользователя / логин через проект?
Ответы:
Самый простой способ - не управлять пользователями через ssdt (большинство людей этого не делают). Таким образом, вы можете просто удалить их и не развертывать логины или пользователей.
Есть три способа:
издание
источник
У меня была такая же проблема и нашел эту ссылку
У пользователя есть неразрешенная ссылка на Логин
источник
По-видимому, эта проблема все еще возникает в проектах баз данных VS2017.
Мне удалось решить это, сначала создав логин, а затем создав пользователя.
источник