Входы пользователей и разрешения для базы данных могут оказаться неверными после восстановления базы данных

Переводы статьи Переводы статьи
Код статьи: 168001 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Проблема

Если восстанавливается дамп пользовательской базы данных SQL Server другой сервер SQL (такие как устройства горячего резервного сервера) или же SQL Server После перестроения или повторная загрузка старой версии базы данных master входы пользователей и разрешения для базы данных может быть неправильным.

Это проблема может показать себя несколькими способами:
  • При входе на сервер 6.x, пользователи могут получать следующее сообщение об ошибке:
    Msg 4002, уровень 14, состояние 1, сервер Microsoft SQL Server, строки 0
    Ошибка входа
    DB-Library: вход неправильно.
  • При входе на сервер версии 7.0, пользователи могут получать следующее сообщение об ошибке:
    Сообщение об ошибке 18456, уровень 14, состояние 1,
    Имя входа пользователю «% ls» не удалось.
  • При попытке доступа к объектам в базе данных пользователей может появиться следующее сообщение об ошибке:
    Msg 229, уровень 14, состояние 1
    Отказано в "% s" на объекте %. * s, базы данных %. * s, владелец %.*s
  • При попытке создать имя входа и предоставления доступа к Восстановление базы данных, или добавить пользователя в базу данных, может быть следующее сообщение об ошибке Получено:
    Microsoft SQL-DMO (ODBC SQLState: 42000) Ошибка 15023: Пользователь или роль «% s» уже существует в текущей базе данных.
  • Пользователи могут иметь разрешения для объектов, для которого они не ранее сделал.

Причина

Учетные данные пользователя хранятся в таблице syslogins База данных master. Изменение серверов или изменение этой информации, восстановление или восстановление старой версии базы данных master, сведения может отличаться от создания пользовательского дампа базы данных. Если не выполнить вход в систему существуют для пользователей, они получат ошибку равное «Сбой входа» при При входе в систему на сервере. Если существует входа пользователей в систему, но SUID значения (6.x) или SID значения (7.0) в образце...syslogins и sysusers Таблица в базе данных отличаются, пользователи могут иметь разные разрешения ожидаемых в базе данных.

Примечание При использовании Microsoft SQL Server 2005 syslogins таблицы и sysusers Таблица реализованы как представления совместимости. Следующие представления: sys.syslogins и sys.sysusers. Для получения дополнительных сведений о совместимости представлений в разделе «Представления совместимости (Transact-SQL)» в электронной документации по SQL Server 2005.

Временное решение

Чтобы обойти эту проблему, выполните одно из следующих:
  • Если текущие сценарии доступны для добавления вход в систему, пользователи, и разрешения, удалить и повторно создать их из сценариев. Примеры использования сценариев для передачи имен входа между серверами, см. ниже базы знаний Майкрософт статья:
    246133 ПРАКТИЧЕСКОЕ руководство: Перемещение имен пользователей и паролей между экземплярами SQL Server
    240872 Способы устранения проблем с разрешениями, при перемещении базы данных между серверами SQL Server
  • Можно использовать sp_change_users_login хранимую процедуру, чтобы повторно сопоставить связи между syslogins, sysusers и sysalternates таблицы. Однако процедура выполняется лучше оценок по связи и разрешить пользователю больше прав доступа, чем планировалось. Запуск процедуры с параметром отчета сначала создает список Пользователи, которые будут изменены. Впоследствии, стоит убедиться, что затронутые пользователи имеют соответствующие разрешения. Кроме того, имейте в виду, процедура sp_change_users_login не решает проблемы разрешения, производные от входа и пользователей, созданные в другом порядке на базе которой резервного копирования восстанавливается.
  • Восстановить дамп базы данных master из времени дамп базы данных пользователя на сервер Перед загрузкой пользовательской базы данных. Это гарантирует, что все сведения о пользователе в пользователя базы данных соответствует правильно с главной таблице syslogins.

    ПРЕДУПРЕЖДЕНИЕ: Главная база данных содержит информацию уровня сервера и влияет на все базы данных на сервере. При восстановлении базы данных master, вы можете возникли дополнительные пользовательские идентификаторы и/или баз данных, которые были утеряны или имеют неправильный разрешения. Образец изменения, произошедшие со времени резервной копии, будут потеряны. Только этот метод используется при том архивации версия базы данных master содержит точные сведения для пользователя базы данных и всех других баз данных на сервере.
  • Средства переноса Руководитель (6.x) или DTS (для версии 7.0) для копирования имен входа. Имейте в виду, что пароли не будет передано с помощью этого метода.
  • Контакт в техническую поддержку.

Свойства

Код статьи: 168001 - Последний отзыв: 3 июня 2011 г. - Revision: 4.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Ключевые слова: 
kbprb kbusage kbmt KB168001 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:168001

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com