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


sp_certify_removable (Transact-SQL)

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

Важное примечаниеВажно!

В будущей версии 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 выполняет следующее:

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

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

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

Владельцем базы данных и всех объектов базы данных должен быть системный администратор. Системный администратор — это пользователь, существующий на всех серверах под управлением MicrosoftSQL 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