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

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

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

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

Синтаксис

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    

Аргументы

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

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

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

GRANT OPTION
Показывает, что отменяется право на предоставление указанного разрешения другим участникам. Само разрешение отменено не будет.

Внимание

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

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

Внимание

Каскадная отмена разрешения, предоставленного с помощью параметра 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
Указывает пользователя базы данных, не сопоставленного с субъектом серверного уровня.

Замечания

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

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

Разрешение в базе данных Содержится в разрешении базы данных Подразумевается в разрешении сервера
ADMINISTER DATABASE BULK OPERATIONS
Область применения: База данных SQL.
ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ИЗМЕНИТЬ ПРОИЗВОДИТЕЛЬНОСТИ ALTER ANY DATABASE
ALTER ANY APPLICATION ROLE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY ASSEMBLY ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY ASYMMETRIC KEY ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY CERTIFICATE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY COLUMN ENCRYPTION KEY ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY COLUMN MASTER KEY DEFINITION ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY CONTRACT ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY DATABASE AUDIT ИЗМЕНИТЬ ALTER ANY SERVER AUDIT
ALTER ANY DATABASE DDL TRIGGER ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY DATABASE EVENT NOTIFICATION ИЗМЕНИТЬ ALTER ANY EVENT NOTIFICATION
ALTER ANY DATABASE EVENT SESSION
Область применения: База данных SQL Azure.
ИЗМЕНИТЬ ALTER ANY EVENT SESSION
ALTER ANY DATABASE SCOPED CONFIGURATION
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL.
ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ALTER ANY DATASPACE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY EXTERNAL DATA SOURCE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY EXTERNAL FILE FORMAT ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY EXTERNAL LIBRARY
Область применения: SQL Server 2017 (14.x).
ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ALTER ANY FULLTEXT CATALOG ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY MASK ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ALTER ANY MESSAGE TYPE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY REMOTE SERVICE BINDING ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY ROLE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY ROUTE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY SCHEMA ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY SECURITY POLICY
Область применения: База данных SQL Azure.
ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ALTER ANY SERVICE ИЗМЕНИТЬ CONTROL SERVER
ALTER ANY SYMMETRIC KEY ИЗМЕНИТЬ CONTROL SERVER
ИЗМЕНИТЬ ПОЛЬЗОВАТЕЛЯ ИЗМЕНИТЬ CONTROL SERVER
AUTHENTICATE ПРОИЗВОДИТЕЛЬНОСТИ AUTHENTICATE SERVER
BACKUP DATABASE ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
BACKUP LOG ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
CHECKPOINT ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ПОДКЛЮЧЕНИЕ CONNECT REPLICATION CONTROL SERVER
CONNECT REPLICATION ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
CREATE AGGREGATE ИЗМЕНИТЬ CONTROL SERVER
CREATE ASSEMBLY ALTER ANY ASSEMBLY CONTROL SERVER
CREATE ASYMMETRIC KEY ALTER ANY ASYMMETRIC KEY CONTROL SERVER
CREATE CERTIFICATE ALTER ANY CERTIFICATE CONTROL SERVER
CREATE CONTRACT ALTER ANY CONTRACT CONTROL SERVER
СОЗДАТЬ БАЗУ ДАННЫХ ПРОИЗВОДИТЕЛЬНОСТИ CREATE ANY DATABASE
CREATE DATABASE DDL EVENT NOTIFICATION ALTER ANY DATABASE EVENT NOTIFICATION CREATE DDL EVENT NOTIFICATION
CREATE DEFAULT ИЗМЕНИТЬ CONTROL SERVER
CREATE FULLTEXT CATALOG ALTER ANY FULLTEXT CATALOG CONTROL SERVER
CREATE FUNCTION ИЗМЕНИТЬ CONTROL SERVER
CREATE MESSAGE TYPE ALTER ANY MESSAGE TYPE CONTROL SERVER
СОЗДАТЬ ПРОЦЕДУРУ ИЗМЕНИТЬ CONTROL SERVER
CREATE QUEUE ИЗМЕНИТЬ CONTROL SERVER
CREATE REMOTE SERVICE BINDING ALTER ANY REMOTE SERVICE BINDING CONTROL SERVER
CREATE ROLE ALTER ANY ROLE CONTROL SERVER
CREATE ROUTE ALTER ANY ROUTE CONTROL SERVER
CREATE RULE ИЗМЕНИТЬ CONTROL SERVER
CREATE SCHEMA ALTER ANY SCHEMA CONTROL SERVER
CREATE SERVICE ALTER ANY SERVICE CONTROL SERVER
CREATE SYMMETRIC KEY ALTER ANY SYMMETRIC KEY CONTROL SERVER
CREATE SYNONYM ИЗМЕНИТЬ CONTROL SERVER
СОЗДАТЬ ТАБЛИЦУ ИЗМЕНИТЬ CONTROL SERVER
СОЗДАТЬ ТИП ИЗМЕНИТЬ CONTROL SERVER
СОЗДАТЬ ПРЕДСТАВЛЕНИЕ ИЗМЕНИТЬ CONTROL SERVER
CREATE XML SCHEMA COLLECTION ИЗМЕНИТЬ CONTROL SERVER
DELETE ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
Выполнение  ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ВЫПОЛНЕНИЕ ЛЮБОГО ВНЕШНЕГО СКРИПТА
Область применения: SQL Server 2016 (13.x).
ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
ВСТАВИТЬ ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
KILL DATABASE CONNECTION
Область применения: База данных SQL Azure.
ПРОИЗВОДИТЕЛЬНОСТИ ALTER ANY CONNECTION
ССЫЛКИ ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
SELECT ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
SHOWPLAN ПРОИЗВОДИТЕЛЬНОСТИ ALTER TRACE
SUBSCRIBE QUERY NOTIFICATIONS ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
TAKE OWNERSHIP ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
UNMASK ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
UPDATE ПРОИЗВОДИТЕЛЬНОСТИ CONTROL SERVER
VIEW ANY COLUMN ENCRYPTION KEY DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW ANY DEFINITION
VIEW ANY COLUMN MASTER KEY DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW ANY DEFINITION
ПРОСМОТР СОСТОЯНИЯ БАЗЫ ДАННЫХ ПРОИЗВОДИТЕЛЬНОСТИ VIEW SERVER STATE
VIEW DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW ANY DEFINITION

Разрешения

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

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

Примеры

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

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

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

USE AdventureWorks2022;  
REVOKE CREATE CERTIFICATE FROM MelanieK;  
GO  

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

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

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

USE AdventureWorks2022;  
REVOKE REFERENCES FROM AuditMonitor;  
GO  

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

В следующем примере производится отмена разрешения VIEW DEFINITION на базу данных AdventureWorks2022 для пользователя 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)
DENY Database Permissions (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)