Управление именами входа и заданиями после переключения ролей (SQL Server)
Область применения: SQL Server
При развертывании решения высокого уровня доступности или аварийного восстановления для базы данных SQL Server важно воспроизвести соответствующие сведения, хранящиеся для базы данных в базах данных master или msdb . Обычно к таким данным относятся задания базы данных-источника или основной базы данных, а также имена входа пользователей или процессов, которым требуется подключаться к базе данных. Эти сведения следует дублировать в любом экземпляре SQL Server, на котором размещена база данных-получатель или зеркальное отображение. После переключения ролей рекомендуется по возможности программно воспроизвести эти данные в новой базе данных-источнике или основной базе данных.
Имена входа
На каждом экземпляре сервера, где размещена копия базы данных, следует воспроизвести имена входа, имеющие разрешения на доступ к основной базе данных. При переключении ролей базы данных-источника или основной базы данных доступ к новой базе данных-источнику или основной базе данных будет только у тех пользователей, имена входа которых есть в этой базе данных. Пользователи, имена входа которых не определены в новой базе данных-источнике или основном экземпляре базы данных, утратят связь со своими учетными записями и не смогут обращаться к этой базе данных.
Если пользователь утратил связь с учетной записью, создайте имя пользователя на новом экземпляре сервера-источника или основного сервера и выполните хранимую процедуру sp_change_users_login. Дополнительные сведения см. в статье Диагностика пользователей, утративших связь с учетной записью (SQL Server).
Имена входа для приложений, использующих проверку подлинности SQL Server или локальное имя входа Windows
Если приложение использует проверку подлинности SQL Server или локальное имя входа Windows, несогласованные идентификаторы SID могут предотвратить разрешение входа приложения на удаленном экземпляре SQL Server. Несоответствие идентификаторов безопасности вызывает утрату связи с учетной записью на удаленном экземпляре сервера. Эта проблема может возникать при подключении приложения к зеркальной базе данных или базе данных доставки журналов после отработки отказа либо к базе данных подписчика репликации, которая была инициализирована из резервной копии.
Чтобы предотвратить эту проблему, рекомендуется принять профилактические меры при настройке такого приложения для использования базы данных, размещенной удаленным экземпляром SQL Server. Предотвращение включает передачу имен входа и паролей из локального экземпляра SQL Server в удаленный экземпляр SQL Server. Дополнительные сведения о том, как предотвратить возникновение этой проблемы, см. в статье базы знаний 918992 Как передавать имена входа и пароли между экземплярами SQL Server).
Примечание.
Эта проблема затрагивает локальные учетные записи Windows на разных компьютерах. Для доменных учетных записей эта проблема не возникает, поскольку идентификатор безопасности там один для всех компьютеров.
Дополнительные сведения см. в записи Пользователи, утратившие связь с учетной записью при работе с зеркальным отображением базы данных и доставкой журналов (блог Database Engine).
Работы
Некоторые задания, например задания резервного копирования, следует рассмотреть особо. Обычно после переключения ролей владельцу базы данных или системному администратору приходится создавать повторно задания для новой базы данных-источника или основной базы данных.
Когда доступен бывший экземпляр основного или основного сервера, необходимо удалить исходные задания на этом экземпляре SQL Server. Обратите внимание, что задания в текущей зеркальной базе данных завершатся ошибкой, поскольку она находится в состоянии RESTORING и недоступна.
Примечание.
Разные экземпляры SQL Server могут быть настроены по-разному, с различными буквами диска или такими буквами. Задания для каждого участника должны допускать подобные различия.
См. также
Управление метаданными при создании базы данных в другом экземпляре сервера (SQL Server)
Диагностика потерянных пользователей (SQL Server)