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


REVOKE, отмена разрешения на системные объекты (Transact-SQL)

Отменяет для участника разрешения на системные объекты (например, хранимые процедуры, расширенные хранимые процедуры, функции и представления).

Значок ссылки на разделСинтаксические обозначения в 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