Управление именами входа и заданиями после переключения ролей (SQL Server)

Применимо к:SQL Server

При развертывании решения по обеспечению высокой доступности или аварийного восстановления для базы данных SQL Server важно воспроизвести значимые данные, хранящиеся в этой базе данных, в базе данных master или msdb. Обычно к таким данным относятся задания базы данных-источника или основной базы данных, а также имена входа пользователей или процессов, которым требуется подключаться к базе данных. Эти данные следует скопировать на экземпляр SQL Server , где размещена база данных-получатель или зеркальная база данных. После переключения ролей рекомендуется по возможности программно воспроизвести эти данные в новой базе данных-источнике или основной базе данных.

Имена входа

На каждом экземпляре сервера, где размещена копия базы данных, следует воспроизвести имена входа, имеющие разрешения на доступ к основной базе данных. При переключении ролей базы данных-источника или основной базы данных доступ к новой базе данных-источнику или основной базе данных будет только у тех пользователей, имена входа которых есть в этой базе данных. Пользователи, имена входа которых не определены в новой базе данных-источнике или основном экземпляре базы данных, утратят связь со своими учетными записями и не смогут обращаться к этой базе данных.

Если пользователь утратил связь с учетной записью, создайте имя пользователя на новом экземпляре сервера-источника или основного сервера и выполните хранимую процедуру sp_change_users_login. Дополнительные сведения см. в статье Диагностика пользователей, утративших связь с учетной записью (SQL Server).

Имена входа для приложений, использующих проверку подлинности SQL Server или локальное имя входа Windows

Если приложение использует проверку подлинности SQL Server или локальное имя входа Windows, то несоответствие идентификаторов безопасности может привести к ошибке входа на удаленный экземпляр SQL Server. Несоответствие идентификаторов безопасности вызывает утрату связи с учетной записью на удаленном экземпляре сервера. Эта проблема может возникать при подключении приложения к зеркальной базе данных или базе данных доставки журналов после отработки отказа либо к базе данных подписчика репликации, которая была инициализирована из резервной копии.

Во избежание этой проблемы рекомендуется предпринять профилактические меры во время настройки такого приложения на использование базы данных, размещенной на удаленном экземпляре SQL Server. Среди таких мер — перенос имен входа и паролей с локального экземпляра SQL Server на удаленный экземпляр SQL Server. Дополнительные сведения о том, как предотвратить возникновение этой проблемы, см. в статье базы знаний 918992 Как передавать имена входа и пароли между экземплярами SQL Server).

Примечание

Эта проблема затрагивает локальные учетные записи Windows на разных компьютерах. Для доменных учетных записей эта проблема не возникает, поскольку идентификатор безопасности там один для всех компьютеров.

Дополнительные сведения см. в записи Пользователи, утратившие связь с учетной записью при работе с зеркальным отображением базы данных и доставкой журналов (блог Database Engine).

Задания

Некоторые задания, например задания резервного копирования, следует рассмотреть особо. Обычно после переключения ролей владельцу базы данных или системному администратору приходится создавать повторно задания для новой базы данных-источника или основной базы данных.

Если бывший экземпляр сервера-источника или основного сервера доступен, то требуется также удалить исходные задания на этом экземпляре SQL Server. Обратите внимание, что задания в текущей зеркальной базе данных завершатся ошибкой, поскольку она находится в состоянии RESTORING и недоступна.

Примечание

Разные экземпляры SQL Server могут быть настроены по-разному, например, могут различаться буквы, обозначающие диски. Задания для каждого участника должны допускать подобные различия.

См. также:

Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера (SQL Server)
Диагностика пользователей, утративших связь с учетной записью (SQL Server)