REVOKE, отмена разрешения на системные объекты (Transact-SQL)
Отменяет для участника разрешения на системные объекты (например, хранимые процедуры, расширенные хранимые процедуры, функции и представления).
Синтаксис
REVOKE { SELECT | EXECUTE } ON [sys.]system_object FROM principal
Аргументы
[sys.] .
Квалификатор sys требуется только тогда, когда имеется ссылка на представления каталога и динамические административные представления.system_object
Задает объект, для которого отменяется разрешение.principal
Задает участника, у которого отменяется разрешение.
Замечания
Эта инструкция предназначена для отмены разрешений на хранимые процедуры, расширенные хранимые процедуры, возвращающие табличное значение и скалярные функции, представления, представления каталога, представления совместимости, представления INFORMATION_SCHEMA, динамические административные представления и системные таблицы, которые устанавливаются в составе SQL Server. Каждый из этих системных объектов существует в виде уникальной записи в базе данных ресурсов (mssqlsystemresource), которая доступна только для чтения. Ссылка на объект представлена в виде записи в схеме sys каждой базы данных.
Разрешение имен по умолчанию устраняет проблему неполных имен процедур в базе данных ресурсов. Поэтому квалификатор sys. требуется только при указании представлений каталога или динамических административных представлений.
Внимание! |
---|
Отмена разрешений на системные объекты приводит к прекращению работы приложений, которые их используют. Например, среда Среда SQL Server Management Studio использует представления каталога, и поэтому после изменения разрешений, установленных по умолчанию, она может перестать правильно работать. |
Отмена разрешений на триггеры и столбцы системных объектов не поддерживается.
Разрешения системных объектов будут сохранены при обновлении SQL Server.
Системные объекты отображаются в представлении каталога sys.system_objects.
Разрешения
Требует разрешения CONTROL SERVER.
Примеры
В следующем примере производится отмена разрешения EXECUTE на процедуру sp_addlinkedserver у роли public.
REVOKE EXECUTE ON sys.sp_addlinkedserver FROM public;
GO