понедельник, 26 ноября 2012 г.

Изменение логина для юзера в MS SQL Server

Мне это обычно бывает нужно после восстановления БД из бэкапа на другом сервере. В поднятой БД юзеры оказываются не привязанными ни к каким логинам. Если открыть свойства, видим, что поле "Имя входа" (логин) пустое.

Интересно, что предварительное создание на другом сервере таких же логинов, которые были на исходном, не помогает. Юзеры в поднимаемой БД сами к ним не привязываются.

Итак, хотим привязать некоторого уже существующего юзера в БД к некоторому существующему имени входа (логину) сервера. Делается просто:

EXEC sp_change_users_login 'Update_One',
  'YourUserName', 'YourLoginName';

Здесь 'Update_One' — константа, задающая нужный режим работы процедуры.