После восстановления базы данных в SQL Server 2005 выполнение инструкции или модуля, содержащего предложение EXECUTE AS, невозможно.

Ошибка No: 397455 (SQLBUDT)

Проблемы

При запуске инструкции или модуля, включающего предложение EXECUTE AS в Microsoft SQL Server 2005, может появиться следующее сообщение об ошибке:

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

Эта проблема возникает, если выполняются все указанные ниже условия.

  • Создание резервной копии базы данных из экземпляра SQL Server 2005. Затем вы восстанавливаете базу данных в экземпляре SQL Server 2005, установленном на другом компьютере.

  • Оператор или модуль выполняется как пользователь dbo (владелец базы данных).

  • Владелец базы данных — это пользователь домена или логин SQL Server Authorization. Примечания.

    • Если пользователь домена владеет базой данных, то на компьютере, на котором вы восстанавливаете базу данных, невозможно получить доступ к домену.

    • Если имя пользователя для авторизации SQL Server владеет базой данных, оно не будет существовать в новом экземпляре SQL Server 2005.

Причина

Эта проблема возникает из-за того, что SQL Server 2005 не может получить информацию о контексте при попытке олицетворения пользователя базы данных для выполнения инструкции или модуля. SQL Server не может получить сведения о контексте, для которого вы пытаетесь олицетворить условия, указанные в разделе "проблема". Если вы олицетворяем учетной записи авторизации SQL Server, SQL Server не может найти имя пользователя, совпадающее с идентификатором безопасности (SID) олицетворяемого пользователя. Если вы олицетворяем пользователя домена, контроллер домена не может найти сведения о конкретном пользователе, который соответствует SID олицетворяемого пользователя.

Обходное решение

Чтобы обойти эту проблему, измените владельца базы данных на действующее имя пользователя или домен. Для этого выполните указанные ниже инструкции.

USE <DatabaseName>GOsp_changedbowner '<NewLogin>'

Обратите внимание , <DatabaseName> представляет имя базы данных. <NewLogin> — имя учетной записи, которую вы хотите настроить.

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Нужна дополнительная помощь?

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединение к программе предварительной оценки Майкрософт

Были ли сведения полезными?

Спасибо за ваш отзыв!

×