Хранимая процедура 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 выполняет следующее:
- Переводит базу данных в автономный режим, чтобы позволить копировать файлы.
- Обновляет статистику по всем таблицам и сообщает обо всех проблемах, связанных с владельцами и пользователями.
- Помечает файловые группы данных как «только для чтения», чтобы эти файлы можно было скопировать на носители, предназначенные только для чтения.
Владельцем базы данных и всех объектов базы данных должен быть системный администратор. Системный администратор — это пользователь, существующий на всех серверах под управлением 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)
Другие ресурсы
Присоединение и отсоединение баз данных