Поделиться через


Хранимая процедура sp_certify_removable (Transact-SQL)

Проверяет, правильно ли настроена база данных для установочного или съемного носителя, и сообщает обо всех проблемах пользователю.

ms188785.note(ru-ru,SQL.90).gifВажно!
В будущей версии Microsoft SQL Server эта возможность будет удалена. Избегайте использования этой возможности в новых разработках и запланируйте изменение существующих приложений, в которых она применяется. Рекомендуется использовать инструкцию CREATE DATABASE.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

sp_certify_removable [ @dbname= ] 'dbname'
          [ , [ @autofix = ] 'auto' ]

Аргументы

  • [ @dbname=] 'dbname'
    Указывает проверяемую базу данных. Аргумент dbname имеет тип sysname.
  • [ @autofix=] 'auto'
    Делает системного администратора владельцем базы данных и всех ее объектов, а также удаляет все разрешения, не соответствующие разрешениям по умолчанию, и всех пользователей базы данных, созданных пользователями. Аргумент auto имеет тип nvarchar(4) и значение по умолчанию NULL.

Значения кодов возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Замечания

Если база данных настроена правильно, процедура sp_certify_removable выполняет следующее:

  • Переводит базу данных в автономный режим, чтобы позволить копировать файлы.
  • Обновляет статистику по всем таблицам и сообщает обо всех проблемах, связанных с владельцами и пользователями.
  • Помечает файловые группы данных как «только для чтения», чтобы эти файлы можно было скопировать на носители, предназначенные только для чтения.

Владельцем базы данных и всех объектов базы данных должен быть системный администратор. Системный администратор — это пользователь, существующий на всех серверах под управлением Microsoft SQL Server. Ожидается, что он будет существовать после распространения и установки базы данных.

Если хранимая процедура sp_certify_removable запускается без значения auto, она возвращает любое из следующих состояний:

  • Системный администратор не является владельцем базы данных.
  • Существует хотя бы один пользователь, созданный пользователем.
  • Системный администратор не является владельцем всех объектов базы данных.
  • Были предоставлены разрешения, не соответствующие разрешениям по умолчанию.

Эти состояния можно исправить следующими способами:

  • Использовать инструменты и процедуры SQL Server, а затем снова запустить процедуру sp_certify_removable.
  • Просто запустить процедуру sp_certify_removable со значением auto.

Обратите внимание, что эта хранимая процедура проверяет только пользователей и разрешения пользователей. К базе данных можно добавить группы и предоставить им разрешения. Дополнительные сведения см. в разделе Инструкция GRANT (Transact-SQL).

Разрешения

Разрешения на выполнение ограничены членами фиксированной серверной роли sysadmin.

Примеры

Следующий пример подтверждает, что база данных inventory готова к удалению.

EXEC sp_certify_removable inventory, AUTO

См. также

Справочник

sp_create_removable (Transact-SQL)
ALTER DATABASE (Transact-SQL)
sp_dbremove (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)

Другие ресурсы

Присоединение и отсоединение баз данных

Справка и поддержка

Получение помощи по SQL Server 2005