Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Отзывает разрешения на сервере.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DENY permission [ ,...n ]
TO <grantee_principal> [ ,...n ]
[ CASCADE ]
[ AS <grantor_principal> ]
<grantee_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
<grantor_principal> ::= SQL_Server_login
| SQL_Server_login_mapped_to_Windows_login
| SQL_Server_login_mapped_to_Windows_group
| SQL_Server_login_mapped_to_certificate
| SQL_Server_login_mapped_to_asymmetric_key
| server_role
Аргументы
permission
Указывает разрешение, которое может быть запрещено на сервере. Список разрешений см. в подразделе "Примечания" далее в этом разделе.
CASCADE
Обозначает, что разрешение запрещается для указанного участника и всех других участников, которым этот участник предоставил разрешение. Требуется, если у доверителя есть разрешение с GRANT ОПЦИЕЙ.
К server_principal <>
Указывает участника, для которого запрещается разрешение.
КАК <grantor_principal>
Указывает участника, от которого участник, выполняющий данный запрос, получает право на запрещение разрешения.
Используйте предложение субъекта AS, чтобы указать, что субъект, записанный как объект, отзывающий разрешение, должен быть субъектом, отличным от пользователя, выполняющего инструкцию. Предположим, что пользователь Мария — это участник 12, пользователь Павел — участник 15. Мэри выполняет DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Теперь таблица sys.database_permissions будет указывать на то, что grantor_principal_id заявления об отказе было 15 (Raul), несмотря на то, что заявление было на самом деле выполнено пользователем 13 (Мэри).
AS в данной инструкции не дает возможность олицетворять другого пользователя.
SQL_Server_login
Указывает имя входа SQL Server.
SQL_Server_login_mapped_to_Windows_login
Указывает имя входа SQL Server, сопоставленное с именем входа Windows.
SQL_Server_login_mapped_to_Windows_group
Указывает имя входа SQL Server, сопоставленное с группой Windows.
SQL_Server_login_mapped_to_certificate
Указывает имя входа SQL Server, сопоставленное с сертификатом.
SQL_Server_login_mapped_to_asymmetric_key
Указывает имя входа SQL Server, сопоставленное с асимметричным ключом.
server_role
Указывает роль сервера.
Замечания
Разрешения в области сервера могут запрещаться только в том случае, если текущей базой данных является master.
Сведения о разрешениях для сервера можно просмотреть в представлении каталога sys.server_permissions, а сведения о субъектах на уровне сервера — в представлении каталога sys.server_principals. Сведения о членстве ролей сервера можно просмотреть в представлении каталога sys.server_role_members.
Сервер является наивысшим уровнем в иерархии разрешений. Наиболее часто указываемые и ограниченные разрешения, которые могут быть запрещены на сервере, перечислены в следующей таблице.
| Разрешение сервера | Подразумевается в разрешении сервера |
|---|---|
| АДМИНИСТРИРОВАНИЕ МАССОВЫХ ОПЕРАЦИЙ | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО AVAILABILITY GROUP Применимо к: SQL Server (SQL Server 2012 (11.x) до текущей версии. |
сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО CREDENTIAL | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО DATABASE | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО ENDPOINT | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО EVENT SESSION | сервер управления |
| ИЗМЕНИТЬ ЛЮБОЙ ПОДКЛЮЧЕННЫЙ СЕРВЕР | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО LOGIN | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SERVER AUDIT | сервер управления |
| ИЗМЕНЕНИЕ ЛЮБОГО SERVER ROLE Применимо к: SQL Server (SQL Server 2012 (11.x) до текущей версии. |
сервер управления |
| ИЗМЕНИТЬ РЕСУРСЫ | сервер управления |
| Изменить состояние сервера (ALTER SERVER STATE) | сервер управления |
| ИЗМЕНИТЬ НАСТРОЙКИ | сервер управления |
| ALTER TRACE (изменение трассировки) | сервер управления |
| АУТЕНТИФИЦИРУЙТЕ СЕРВЕР | сервер управления |
| ПОДКЛЮЧЕНИЕ ЛЮБОГО DATABASE Область применения: SQL Server (SQL Server 2014 (12.x) до текущей версии. |
сервер управления |
| CONNECT SQL | сервер управления |
| сервер управления | сервер управления |
| СОЗДАНИЕ ЛЮБОГО DATABASE | ИЗМЕНЕНИЕ ЛЮБОГО DATABASE |
| CREATE AVAILABILITY GROUP Применимо к: SQL Server (SQL Server 2012 (11.x) до текущей версии. |
ИЗМЕНЕНИЕ ЛЮБОГО AVAILABILITY GROUP |
| СОЗДАТЬ DDL EVENT NOTIFICATION | ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION |
| CREATE ENDPOINT | ИЗМЕНЕНИЕ ЛЮБОГО ENDPOINT |
| CREATE SERVER ROLE Применимо к: SQL Server (SQL Server 2012 (11.x) до текущей версии. |
ИЗМЕНЕНИЕ ЛЮБОГО SERVER ROLE |
| СОЗДАТЬ ТРАССЁР EVENT NOTIFICATION | ИЗМЕНЕНИЕ ЛЮБОГО EVENT NOTIFICATION |
| ВНЕШНИЙ ДОСТУП ASSEMBLY | сервер управления |
| ОЛИЦЕТВОРЕНИЯ ЛЮБОГО LOGIN Область применения: SQL Server (SQL Server 2014 (12.x) до текущей версии. |
сервер управления |
| ВЫБЕРИТЕ ВСЕ USER ЗАЩИЩАЕМЫЕ ОБЪЕКТЫ Область применения: SQL Server (SQL Server 2014 (12.x) до текущей версии. |
сервер управления |
| SHUTDOWN | сервер управления |
| НЕБЕЗОПАСНО ASSEMBLY | сервер управления |
| VIEW ЛЮБОЙ DATABASE | VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
| VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ | сервер управления |
|
VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ ПРОИЗВОДИТЕЛЬНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
|
VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ БЕЗОПАСНОСТИ Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW ЛЮБОЕ ОПРЕДЕЛЕНИЕ |
|
VIEW СОСТОЯНИЕ ПРОИЗВОДИТЕЛЬНОСТИ СЕРВЕРА Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW СОСТОЯНИЕ СЕРВЕРА |
|
VIEW СОСТОЯНИЕ БЕЗОПАСНОСТИ СЕРВЕРА Область применения: SQL Server 2022 (16.x) и более поздних версий. |
VIEW СОСТОЯНИЕ СЕРВЕРА |
| VIEW СОСТОЯНИЕ СЕРВЕРА | Изменить состояние сервера (ALTER SERVER STATE) |
В SQL Server 2014 (12.x) добавлены следующие три разрешения сервера.
ПОДКЛЮЧИТЬ ЛЮБОЙ DATABASE Разрешение
Дайте CONNECT ANY DATABASE к логину, который должен подключаться ко всем существующим базам данных, а также к новым базам, которые могут быть созданы в будущем. Не предоставляет каких-либо разрешений в базах данных за пределами соединения. Комбинируйте с SELECT ALL USER SECURABLES или VIEW SERVER STATE, чтобы аудит мог просматривать все данные или все состояния базы данных на экземпляре SQL Server.
ИМИТИРУЙТЕ ЛЮБОГО LOGIN Разрешение
После предоставления разрешает процессу среднего уровня олицетворять учетную запись клиентов, подключающихся к ней, так как она подключается к базам данных. При запрещении имени входа с высоким уровнем прав может быть запрещено олицетворение других имен входа. Например, имени входа с разрешением CONTROL SERVER можно запретить олицетворение других имен входа.
ВЫБЕРИТЕ ВСЕХ USER Разрешение на ГАРАНТИРУЕМЫЕ
После предоставления имя входа, например аудитор, сможет просматривать данные во всех базах данных, к которым может подключаться пользователь. При запрещении предотвращает доступ к объектам, если они не будут находиться в схеме sys.
Разрешения
Необходимо иметь разрешение CONTROL SERVER или быть владельцем защищаемого объекта. При использовании предложения AS указанный участник должен быть владельцем защищаемого объекта, разрешения на который у него запрещены.
Примеры
А. Запрет разрешения CONNECT SQL для пользователя SQL Server с указанным именем входа и участников, которым этот пользователь его предоставил
В следующем примере запрещается CONNECT SQL разрешение на вход Annika SQL Server и субъекты, которым она предоставила разрешение.
USE master;
DENY CONNECT SQL TO Annika CASCADE;
GO
B. Отказ CREATE ENDPOINT в разрешении входа на SQL Server с помощью опции AS
В следующем примере разрешение CREATE ENDPOINT запрещается для пользователя ArifS. Пример использует параметр AS для указания пользователя MandarP в качестве участника, от которого текущий участник получает права для выполнения.
USE master;
DENY CREATE ENDPOINT TO ArifS AS MandarP;
GO
См. также
GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY Разрешения сервера (Transact-SQL)
REVOKE Разрешения сервера (Transact-SQL)
Иерархия разрешений (ядро СУБД)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)