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


REVOKE, отмена разрешения на базу данных (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLAzure Synapse AnalyticsСистема платформы аналитики (PDW)Конечная точка SQL аналитики в Microsoft FabricХранилище в Microsoft FabricБаза данных SQL в Microsoft Fabric

Производит отзыв разрешений, предоставляющих или запрещающих доступ к базе данных.

Соглашения о синтаксисе Transact-SQL

Syntax

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ]    
    { TO | FROM } <database_principal> [ ,...n ]   
        [ CASCADE ]  
    [ AS <database_principal> ]  
  
<permission> ::=    
permission | ALL [ PRIVILEGES ]  
  
<database_principal> ::=   
      Database_user   
    | Database_role   
    | Application_role   
    | Database_user_mapped_to_Windows_User   
    | Database_user_mapped_to_Windows_Group   
    | Database_user_mapped_to_certificate   
    | Database_user_mapped_to_asymmetric_key   
    | Database_user_with_no_login    

Arguments

permission
Указывает отзываемое разрешение для базы данных. Список разрешений см. в подразделе "Примечания" далее в этом разделе.

ALL
Этот параметр не отменяет все возможные разрешения. Аргумент отмены ALL эквивалентен отмене следующих разрешений: BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE и CREATE VIEW.

PRIVILEGES
Включено для обеспечения совместимости с требованиями ISO. Не изменяет работу ALL.

ОПЦИЯ ГРАНТА
Показывает, что отменяется право на предоставление указанного разрешения другим участникам. Само разрешение отменено не будет.

Important

Если участник обладает указанным разрешением без параметра GRANT, будет отменено само разрешение.

CASCADE
Показывает, что отменяемое разрешение также отменяется для других участников, для которых оно было предоставлено или запрещено данным участником.

Caution

Каскадная отмена разрешения, предоставленного с помощью параметра WITH GRANT OPTION, приведет к отмене разрешений GRANT и DENY для этого разрешения.

AS <database_principal> Указывает субъекта, от которого субъект, выполняющий данный запрос, наследует право на отмену разрешения.

Database_user
Указывает пользователя базы данных.

Database_role
Указывает роль базы данных.

Application_role
Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL

Указывает роль приложения.

Database_user_mapped_to_Windows_User
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с пользователем Windows.

Database_user_mapped_to_Windows_Group
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с группой Windows.

Database_user_mapped_to_certificate
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с сертификатом.

Database_user_mapped_to_asymmetric_key
Область применения: SQL Server 2008 (10.0.x) и более поздних версий

Указывает пользователя базы данных, сопоставленного с асимметричным ключом.

Database_user_with_no_login
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.

Remarks

Инструкция завершится ошибкой, если параметр CASCADE не указан при отзыве разрешения у участника, который предоставлял это разрешение с указанием параметра GRANT OPTION.

База данных — это защищаемый объект, хранящийся на сервере, который является родителем базы данных в иерархии разрешений. В следующей таблице перечислены отдельные разрешения на базу данных, которые могут быть отозваны, а также общие разрешения, которые неявно их включают.

Разрешение базы данных Содержится в разрешении базы данных Подразумевается в разрешении сервера
УПРАВЛЕНИЕ МАССОВЫМИ ОПЕРАЦИЯМИ С БАЗОЙ ДАННЫХ
Область применения: База данных SQL.
CONTROL сервер управления
ALTER CONTROL ALTER ANY DATABASE (ИЗМЕНЕНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ).
ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ ПРИЛОЖЕНИЯ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ ALTER сервер управления
Изменить любой асимметричный ключ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ ALTER сервер управления
Изменить любой ключ шифрования столбца ALTER сервер управления
ИЗМЕНИТЬ ОПРЕДЕЛЕНИЕ ЛЮБОГО ГЛАВНОГО КЛЮЧА СТОЛБЦА ALTER сервер управления
ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ ПРОВЕРКУ БАЗЫ ДАННЫХ ALTER ИЗМЕНЕНИЕ ЛЮБОГО АУДИТА СЕРВЕРА
ИЗМЕНИТЬ ЛЮБОЙ ТРИГГЕР DDL БАЗЫ ДАННЫХ ALTER сервер управления
Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) ALTER ИЗМЕНЕНИЕ ЛЮБОГО УВЕДОМЛЕНИЯ О СОБЫТИИ
ИЗМЕНИТЬ ЛЮБОЙ СЕССИЮ СОБЫТИЯ БАЗЫ ДАННЫХ
Область применения: База данных SQL Azure.
ALTER ИЗМЕНИТЬ ЛЮБУЮ СЕССИЮ СОБЫТИЯ
ИЗМЕНИТЬ ЛЮБУЮ КОНФИГУРАЦИЮ В ОБЛАСТИ БАЗЫ ДАННЫХ
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL.
CONTROL сервер управления
ИЗМЕНИТЬ ЛЮБОЕ ПРОСТРАНСТВО ДАННЫХ ALTER сервер управления
ИЗМЕНЕНИЕ ЛЮБОГО ВНЕШНЕГО ИСТОЧНИКА ДАННЫХ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБОЙ ВНЕШНИЙ ФОРМАТ ФАЙЛА ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ ВНЕШНЮЮ БИБЛИОТЕКУ
Область применения: SQL Server 2017 (14.x).
CONTROL сервер управления
ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ МАСКУ CONTROL сервер управления
ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБУЮ ПОЛИТИКУ БЕЗОПАСНОСТИ
Область применения: База данных SQL Azure.
CONTROL сервер управления
ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ ALTER сервер управления
ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ ALTER сервер управления
ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ ALTER сервер управления
AUTHENTICATE CONTROL ПРОВЕРКА ПОДЛИННОСТИ СЕРВЕРА
РЕЗЕРВНОЕ КОПИРОВАНИЕ БАЗЫ ДАННЫХ CONTROL сервер управления
ЖУРНАЛ РЕЗЕРВНОГО КОПИРОВАНИЯ CONTROL сервер управления
CHECKPOINT CONTROL сервер управления
CONNECT РЕПЛИКАЦИЯ CONNECT сервер управления
РЕПЛИКАЦИЯ CONNECT CONTROL сервер управления
CONTROL CONTROL сервер управления
СОЗДАТЬ АГГРЕГАТ ALTER сервер управления
СОЗДАНИЕ СБОРКИ ИЗМЕНИТЬ ЛЮБУЮ СБОРКУ сервер управления
СОЗДАНИЕ АСИММЕТРИЧНОГО КЛЮЧА Изменить любой асимметричный ключ сервер управления
СОЗДАТЬ СЕРТИФИКАТ ИЗМЕНИТЬ ЛЮБОЙ СЕРТИФИКАТ сервер управления
Создать договор ИЗМЕНЯТЬ ЛЮБОЙ КОНТРАКТ сервер управления
СОЗДАТЬ БАЗУ ДАННЫХ CONTROL CREATE ANY DATABASE (СОЗДАНИЕ ЛЮБОЙ БАЗЫ ДАННЫХ);
СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИЯХ БАЗЫ ДАННЫХ DDL Изменение любых уведомлений о событиях базы данных (ALTER ANY DATABASE EVENT NOTIFICATION) СОЗДАНИЕ УВЕДОМЛЕНИЯ О СОБЫТИИ DDL
СОЗДАТЬ ПО УМОЛЧАНИЮ ALTER сервер управления
СОЗДАНИЕ КАТАЛОГА FULLTEXT ИЗМЕНИТЬ ЛЮБОЙ ПОЛНОТЕКСТОВЫЙ КАТАЛОГ сервер управления
СОЗДАТЬ ФУНКЦИЮ ALTER сервер управления
СОЗДАТЬ ТИП СООБЩЕНИЯ ИЗМЕНЯТЬ ЛЮБОЙ ТИП СООБЩЕНИЯ сервер управления
СОЗДАТЬ ПРОЦЕДУРУ ALTER сервер управления
СОЗДАНИЕ ОЧЕРЕДИ ALTER сервер управления
СОЗДАНИЕ ПРИВЯЗКИ К УДАЛЕННОЙ СЛУЖБЕ ИЗМЕНИТЬ ЛЮБУЮ УДАЛЕННУЮ СВЯЗЬ СЕРВИСА сервер управления
СОЗДАТЬ РОЛЬ ИЗМЕНИТЬ ЛЮБУЮ РОЛЬ сервер управления
СОЗДАТЬ МАРШРУТ ИЗМЕНИТЬ ЛЮБОЙ МАРШРУТ сервер управления
СОЗДАНИЕ ПРАВИЛА ALTER сервер управления
СОЗДАТЬ СХЕМУ ИЗМЕНИТЬ ЛЮБУЮ СХЕМУ сервер управления
Создать сервис ИЗМЕНЕНИЕ ЛЮБОЙ СЛУЖБЫ сервер управления
СОЗДАНИЕ СИММЕТРИЧНОГО КЛЮЧА ИЗМЕНИТЬ ЛЮБОЙ СИММЕТРИЧНЫЙ КЛЮЧ сервер управления
СОЗДАТЬ СИНОНИМ ALTER сервер управления
CREATE TABLE ALTER сервер управления
СОЗДАТЬ ТИП ALTER сервер управления
СОЗДАТЬ ПРЕДСТАВЛЕНИЕ ALTER сервер управления
СОЗДАТЬ КОЛЛЕКЦИЮ XML-СХЕМ ALTER сервер управления
DELETE CONTROL сервер управления
EXECUTE CONTROL сервер управления
ВЫПОЛНЕНИЕ ЛЮБОГО ВНЕШНЕГО СКРИПТА
Область применения: SQL Server 2016 (13.x).
CONTROL сервер управления
INSERT CONTROL сервер управления
Завершить подключение к базе данных
Область применения: База данных SQL Azure.
CONTROL ИЗМЕНЕНИЕ ЛЮБОГО СОЕДИНЕНИЯ
REFERENCES CONTROL сервер управления
SELECT CONTROL сервер управления
SHOWPLAN CONTROL ALTER TRACE
УВЕДОМЛЕНИЯ О ЗАПРОСЕ НА ПОДПИСКУ CONTROL сервер управления
ВОЗЬМИТЕ ОТВЕТСТВЕННОСТЬ CONTROL сервер управления
UNMASK CONTROL сервер управления
UPDATE CONTROL сервер управления
ПРОСМОТР ОПРЕДЕЛЕНИЯ КЛЮЧА ШИФРОВАНИЯ СТОЛБЦА CONTROL Просмотреть любое определение
ПРОСМОТР ОПРЕДЕЛЕНИЯ ГЛАВНОГО КЛЮЧА СТОЛБЦА CONTROL Просмотреть любое определение
ПРОСМОТР СОСТОЯНИЯ БАЗЫ ДАННЫХ CONTROL просмотр состояния сервера
ПРЕДСТАВЛЕНИЕ ОПРЕДЕЛЕНИЯ CONTROL Просмотреть любое определение

Permissions

Участник, выполняющий эту инструкцию (или участник, указанный параметром AS), должен иметь разрешение CONTROL на базу данных или разрешение более высокого уровня, которое включает это разрешение.

Если указан параметр AS, указанный участник должен быть владельцем базы данных.

Examples

A. Отмена разрешения на создание сертификатов

В следующем примере производится отмена разрешения CREATE CERTIFICATE на базу данных AdventureWorks2025 для пользователя MelanieK.

Область применения: SQL Server 2008 (10.0.x) и более поздних версий

USE AdventureWorks2022;  
REVOKE CREATE CERTIFICATE FROM MelanieK;  
GO  

B. Отмена разрешения REFERENCES для роли приложения

В следующем примере производится отмена разрешения REFERENCES на базу данных AdventureWorks2025 для роли приложения AuditMonitor.

Область применения: SQL Server 2008 (10.0.x) и более поздних версий База данных SQL

USE AdventureWorks2022;  
REVOKE REFERENCES FROM AuditMonitor;  
GO  

C. Отмена разрешения VIEW DEFINITION с параметром CASCADE

В следующем примере производится отмена разрешения VIEW DEFINITION на базу данных AdventureWorks2025 для пользователя CarmineEs и всех участников, которым CarmineEs предоставил разрешение VIEW DEFINITION.

USE AdventureWorks2022;  
REVOKE VIEW DEFINITION FROM CarmineEs CASCADE;  
GO  

См. также

sys.database_permissions (Transact-SQL)
sys.database_principals (Transact-SQL)
Grant Database Permissions (Transact-SQL)
ЗАПРЕТИТЬ разрешения базы данных (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)