У меня есть экземпляр SQL Server 2008 R2 Express Edition дома, а другой - на сервере в помещении клиента, который я использую для разработки приложения с использованием Access в качестве внешнего интерфейса. Это приложение имеет 5 отдельных имен входа, которые я могу использовать в строке подключения (в зависимости от группы доступа, в которой находится пользователь). Домашний экземпляр имеет несколько баз данных, некоторые из которых не имеют ничего общего с этими приложениями.
Я вручную создал логины в каждом экземпляре с течением времени (и, вероятно, в другом порядке).
Я надеюсь, что смогу (более одного раза) взять резервную копию с моего домашнего компьютера базы данных, над которой я работаю, и загрузить ее на экземпляр в клиентских помещениях с помощью восстановления, просто переместив файлы в наборе резервных копий на фактическое файлы, используемые на этом сервере во время процесса восстановления. Часть, которую я не понимаю, это отображение между пользователем базы данных и логином.
Я думал, что соответствия имени должно быть достаточно, но, пытаясь решить проблему, из-за которой пользователи восстановленной базы данных, казалось, не были сопоставлены с именем входа на сервер, я наткнулся на инструкцию Transact-SQL ALTER USER и, в частности, его ссылка на использование WITH LOGIN и некоторое обсуждение "SID".
Поскольку (я предполагаю) имена входа в систему сервера имеют разные идентификаторы безопасности в каждом экземпляре, означает ли это, что после загрузки резервной копии между экземплярами мне необходимо повторно подключить сопоставление с помощью серии команд ALTER USER WITH LOGIN?
источник