Создание входа в SQL для внешнего домена - PullRequest
0 голосов
/ 15 августа 2011

Задача

Возможно ли каким-либо образом создать имя входа для проверки подлинности 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 в моем случае.

Ответы [ 2 ]

1 голос
/ 16 августа 2011

Примечание. DBProjects лучше всего подходят для управления и контроля версий вашей SCHEMA, а не ваших данных.

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

Если вы хотите лучше управлять развивающимися схемами ваших баз данных, тогда использование DBProjects может быть вашим лучшим выбором.

FWIW, если вы перепроектируете БД в DBProj, вы можетезатем запустите сценарий для замены DomainB \ known-user на DomainA \ known-user до развертывания в DomainA, нет?

0 голосов
/ 05 сентября 2012

Нет, потому что SQL должен знать Windows SID (некрасивый GUID) пользователя во время его создания.

Обратите внимание, что вы можете, однако, создать пользователя SQL или Windows с тем же именем и паролем, что и у вашего удаленного пользователя SQL, компьютера или домена, и он сможет войти в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...