«Неразрешенная ссылка на пользователь» после импорта в виде проекта VS DB

dba.stackexchange https://dba.stackexchange.com/questions/107556

Вопрос

Я просто импортировал существующую базу данных продукции SQL Server 2008R2 в проект баз данных VS 2013.

Теперь я получаю ряд ошибок вдоль линий

Error       SQL71501: User: [mydbuser] has an unresolved reference to Login [mydbuser].
.

Мне не очень нужен мой Project Project для управления пользователями, но я обеспокоен тем, что он попытался бы удалить их при развертывании, если они не были там.

сами файлы генерируются как

CREATE USER [mydbuser] FOR LOGIN [mydbuser];
.

или

CREATE USER [mydomainuser] FOR LOGIN [MYDOMAIN\mydomainuser];
.

Ошибка маркера показывает, что он специально для логин . Как это объект уровня системы, я могу понять, что он находится за пределами объема проекта БД.

предпочтительно, чтобы я меняю их все, чтобы

CREATE USER [mydbuser] WITHOUT LOGIN;
.

или добавьте пункт CREATE LOGIN в начало каждого файла?

Удаление ссылки на вход в систему, кажется, проще и удаляет пользователей в целом будет простейшим.

Я хочу убедиться, что я использую инструмент, как он был предназначен. Будут ли какие-либо проблемы в повторном публикации любого из них вернулись к производству? Какая правильная процедура для добавления пользователя / входа в систему через проект?

Это было полезно?

Решение

Самый простой способ - не управлять пользователями через SSDT (большинство людей).Таким образом, вы можете просто отбросить их и не развернуть логины или пользователей.

Есть три способа:

    .
  • Новые возможности игнорировать пользователей / logins
  • Написать вкладчик развертывания, чтобы вытащить их
  • Используйте мой вкладчик развертывания http://agilesqlclub.codeplex.com

ed

Другие советы

У меня была такая же проблема и нашел эту ссылку

пользователь имеет неразрешенную ссылку на логин

Если вы создаете конкретные входа в приложение (которые должны) тогда вы собираемся наступить по этой ошибке при попытке построить решение. Чтобы исправить эту ошибку, выберите «Включить» Типы объектов не приложение-Scoped в параметрах (значок шестерни на Вершина) Когда вы делаете схему сравнения (щелкните правой кнопкой мыши проект базы данных до Найти схему сравнить). Затем вы можете просто импортировать логины в свой Регулярный проект и ссылки сортируются. Примечание: если вы нажмете Вкладка типов объектов и закрывает диалог (который он сделал для меня), Вместо этого используйте клавишу Tab, пока не будет выделено нанесение нанести приложение, то Нажмите стрелку вниз, чтобы выделить не приложение-Scoped и нажмите космический бар. Теперь вы должны иметь возможность нажать OK и увидеть логины.

Видимо, эта проблема все еще происходит на проектах баз данных VS2017.

Мне удалось решить его, сначала создавая логин, а затем создать пользователя.

    -- Windows Account
    CREATE LOGIN [Domain\Username]
    FROM WINDOWS WITH DEFAULT_LANGUAGE = [us_english];

    GO

    CREATE USER [Domain\Username] FOR LOGIN [Domain\Username];
    GO

    -- Sql Acccount

    CREATE LOGIN [sql_account] WITH PASSWORD = 'Ch@ngeth1spA$swurD'
    GO

    CREATE USER [sql_account]
    FROM LOGIN [sql_account]
    WITH DEFAULT_SCHEMA = dbo

    GO


    -- Then set the sql file Build Action to "Build"
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с dba.stackexchange
scroll top