Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Восстановление связи между пользователем БД и его login

Восстановление связи между пользователем БД и его login

Восстановление связи между пользователем БД и его login

По материалам статьи Neil Boyle на swynk.com "Fixing Broken Logins"
http://www.swynk.com/friends/boyle/default.asp

При переносе базы данных на новый сервер копированием-восстановлением или при переприкреплении файла базы данных, связь между login и пользователями базы данных разрывается. На новый сервер перемещается только половина информации, определяющей доступ клиента сервера к данным, которая содержится непосредственно в базе данных. Вторая половина необходимой для доступа к информации остаe:тся в таблице syslogins первоначального сервера и содержит информацию, относящуюся к logins. Из предыдущих выпусков рассылки Вы помните, что login - это не тот же самое, что пользователь базы данных.
При вводе новой учётной записи подключения к SQL серверу (login), она автоматически становится пользователем одной или более баз данных. Для иллюстрации связей, которые при этом создаются, можно выполнить представленный низе запрос:

select master..syslogins.name as login_name, sysusers.name as user_name from master..syslogins inner join sysusers on master..syslogins.suid = sysusers.suid

(Поле "Suid" - идентификатор (ID) учётной записи подключения к серверу, полученный из таблицы syslogins. Suid = 1 - администратор системы, Suid = -1 - учетная запись гостя).

Результат, который Вы получите, может различаться у разных баз и серверов, но связь logins и пользователей базы данных будет видна.
Обратите внимание, что имена пользователей и logins не обязательно совпадают, а учётная запись sa всегда соответствует пользователю базы dbo.
В рассматриваемом нами случае, пользователи перенесённой на другой сервер базы данных потеряют связь с соответствующими им учётными записями подключения. Попытка простого добавления на новом сервере недостающих logins успеха не возымеет ввиду того, что поля Suid у logins и пользователей БД всё же будут различны. Для правильного установления связи между пользователем БД и login, воспользуйтесь хранимой процедурой sp_change_users_login. Если клиент сервера баз данных не желает разглашать свой пароль доступа, Вам поможет процедура sp_addlogin.

Перевод: Александр Гладченко  2001г.



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте