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


sp_certify_removable (Transact-SQL)

Область применения: SQL Server

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

Внимание

Эта функция будет удалена в будущей версии SQL Server. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте CREATE DATABASE .

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_certify_removable
    [ @dbname = ] N'dbname'
    [ , [ @autofix = ] N'autofix' ]
[ ; ]

Аргументы

[ @dbname = ] N'dbname'

Указывает проверяемую базу данных. @dbname — sysname.

[ @autofix = ] N'autofix'

Делает системного администратора владельцем базы данных и всех ее объектов, а также удаляет все разрешения, не соответствующие разрешениям по умолчанию, и всех пользователей базы данных, созданных пользователями. @autofix — nvarchar(4), с значением по умолчаниюNULL.

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

0 (успешно) или 1 (сбой).

Замечания

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

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

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

При выполнении sp_certify_removable AUTO без значения и возвращается информация о любом из следующих условий:

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

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

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

Эта хранимая процедура проверяет только разрешения пользователей и пользователей. К базе данных можно добавить группы и предоставить им разрешения. Дополнительные сведения см. в статье GRANT.

Разрешения

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

Примеры

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

EXEC sp_certify_removable inventory, AUTO;