Подтвердить что ты не робот

Visual Studio 2010 - проект базы данных с импортированной базой данных не создан

Я смотрю проект базы данных в VS2010, идея в том, что я хочу что-то, что я могу использовать, чтобы отслеживать схему базы данных (в исходном управлении) и возможность генерировать сценарии "новой установки" и изменять сценарии,

Когда я создаю новый мастер проектов базы данных и импортирую существующую схему базы данных, он не будет "строить". Я получаю сообщение об ошибке:

SQL03006: Пользователь: [сканер] имеет неразрешенная ссылка на Login [Сканер].

SQL, который генерирует эту ошибку:

СОЗДАТЬ ПОЛЬЗОВАТЕЛЬ [сканер] ДЛЯ ВХОДА [Сканер];

Пользовательский "сканер" - это логин, указанный в импортируемой базе данных. Я понятия не имею, что это такое, и Google не сильно подбрасывает. Любые идеи?

4b9b3361

Ответ 1

Вход в систему фактически определен в основной базе данных установки сервера. Оператор CREATE USER должен указывать на существующий логин, иначе он будет ошибкой. Проект Database Project не знает о Login на уровне сервера. Либо вы можете создать серверный проект для обработки логинов, либо вы можете отключить проверку объектов безопасности в проекте базы данных. См. Ответ Demetri M для более подробной информации: http://social.msdn.microsoft.com/Forums/eu/vstsdb/thread/1f8226fe-b791-4344-8735-3d38307e8664

Ответ 2

Я использую Visual Studio 2012 для проекта базы данных SQL Server 2008 R2. Опции, перечисленные @Judah, больше не работают.

Теперь они отображаются как настройки, которые вы настраиваете при выполнении сравнения схем:

Проект базы данных правой кнопкой мыши > Выберите "Сравнить схемы" > Выберите значок шестеренки "Настройки" > Выберите вкладку "Типы объектов" >

Логены не привязаны к приложениям. Роли базы данных, разрешения, членство в ролях и пользователи - это все области приложений.

К сожалению, единственный способ, который я могу найти для их сохранения, - сохранить сравнение схемы. Это может быть немного неудобно, если вы делитесь этим в команде и хотите, чтобы параметры проекта/базы данных (или сервера) были сопоставлены с любой схемой.

Выполняется эта работа.

Ответ 3

Вы можете изменить сценарии создания пользователей для создания ролей. Поэтому вместо "Создать пользовательское имя пользователя для login loginName;"

использовать "Создать роль [имя_пользователя] авторизация dbo;"

Это взломать, но пока вам не приходится иметь дело с пользователями и ролями в вашем проекте, вы можете с радостью сделать следующее:

ГРАНТ ВЫПОЛНИТЬ   ON OBJECT:: [dbo]. [Sp_name] TO [имя_пользователя];