Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Запрещает разрешения для системных объектов, например хранимых процедур, расширенных хранимых процедур, функций и представлений.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DENY { SELECT | EXECUTE } ON [ sys. ] system_object TO principal
Аргументы
[ sys. ]
Квалификатор sys
требуется только в том случае, если вы ссылаетесь на представления каталога и динамические административные представления.
system_object
Указывает объект, для которого запрещается разрешение.
основной
Задает участника, у которого отменяется разрешение.
Замечания
Эту инструкцию можно использовать для запрета разрешений для определенных хранимых процедур, расширенных хранимых процедур, табличных функций, скалярных функций, представлений каталога, представлений совместимости, INFORMATION_SCHEMA
представлений, динамических административных представлений и системных таблиц, установленных SQL Server. Каждый из этих системных объектов существует как уникальная запись в базе данных ресурсов (mssqlsystemresource
). Она доступна только для чтения. Ссылка на объект предоставляется в виде записи в схеме sys
каждой базы данных.
Разрешение имен по умолчанию устраняет проблему неправомочных имен процедур в базе данных ресурсов.
sys
Поэтому квалификатор требуется только при указании представлений каталога и динамических административных представлений.
Внимание
Запрет разрешений на системные объекты приводит к сбою приложений, зависящих от них. СРЕДА SQL Server Management Studio использует представления каталога и может не работать должным образом, если изменить разрешения по умолчанию для представлений каталога.
Запрет разрешений на триггеры и столбцы системных объектов не поддерживается.
Разрешения на системные объекты сохраняются во время обновления SQL Server.
Системные объекты отображаются в представлении каталога sys.system_objects. Разрешения на системные объекты отображаются в представлении каталога sys.database_permissions в master
базе данных.
В результате выполнения следующего запроса извлекаются данные о разрешениях на доступ к системным объектам:
SELECT *
FROM master.sys.database_permissions AS dp
INNER JOIN sys.system_objects AS so
ON dp.major_id = so.object_id
WHERE dp.class = 1
AND so.parent_object_id = 0;
GO
Разрешения
Требуется разрешение CONTROL SERVER
.
Примеры
В следующем примере запрещено EXECUTE
разрешение xp_cmdshell
на доступ к общедоступному доступу.
DENY EXECUTE ON sys.xp_cmdshell TO PUBLIC;
GO