Задача
Возможно ли каким-либо образом создать имя входа для проверки подлинности Windows для базы данных SQL без проверки пользователя во время создания?
Пример
Рассмотрим ServerA
, который существует в нашем DomainA
, и ServerB
, который существует в DomainB
клиента. Будучи отдельными компаниями, DomainA
и DomainB
никогда не делят ресурсы. Но, если мы сделаем резервную копию с ServerB
и восстановим до ServerA
, мы сможем увидеть существующие логины SQL для пользователей с DomainB
, и даже изменить и кодировать эти логины. Это хорошо, потому что мы можем разработать схему базы данных на сервере ServerA, а затем опубликовать на сервере B.
Но, если я хочу добавить нового пользователя для этой базы данных и работаю над ServerA
в DomainA
, следующая команда выдаст ошибку:
CREATE USER [DomainB\User];
Windows NT user or group 'DomainB\User' not found. Check the name again. (Microsoft SQL Server, Error: 15401)
Это плохо, потому что мы больше не можем разрабатывать на ServerA, используя ту же схему, что и ServerB.
Предыстория
Я пытаюсь перевести схему базы данных нашего приложения на основе базы данных в систему управления версиями с помощью проекта базы данных Visual Studio 2010. Для меня важно, чтобы это работало достаточно хорошо, чтобы убедить начальника не продолжать использовать резервные копии базы данных объемом 60 ГБ в zip-файле в качестве средства «контроля версий» (тем более что это только для схемы, а не для процедуры резервного копирования) , Проекты БД VS2010 используют сценарии для создания / изменения баз данных, поэтому они не могут создавать пользователей WinNT для неизвестного домена. Чтобы получить выгоду от босса, мы должны быть в состоянии соответствовать возможностям восстановления резервной копии, а это означает возможность воссоздать пользователей для доменов, к которым у нас нет доступа.
Использование SQL Server 2008 в моем случае.