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


REVOKE, отмена разрешения (Transact-SQL)

Область применения: SQL Server Управляемый экземпляр SQL Azure

Отменяет разрешения на таблицу, представление, возвращающую табличное значение функцию, хранимую процедуру, расширенную хранимую процедуру, скалярную функцию, агрегатную функцию, очередь обслуживания или синоним.

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

Синтаксис

REVOKE [ GRANT OPTION FOR ] <permission> [ ,...n ] ON   
    [ OBJECT :: ][ schema_name ]. object_name [ ( column [ ,...n ] ) ]  
        { FROM | TO } <database_principal> [ ,...n ]   
    [ CASCADE ]  
    [ AS <database_principal> ]  
  
<permission> ::=  
    ALL [ PRIVILEGES ] | permission [ ( column [ ,...n ] ) ]  
  
<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 не отменяет все возможные разрешения. Отмена ALL эквивалентна отмене всех разрешений ANSI-92, применимых к указанному объекту. Значение ALL различается для разных типов объектов

Разрешения на скалярные функции: EXECUTE, REFERENCES.

Разрешения на возвращающую табличное значение функцию: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Разрешения на хранимые процедуры: EXECUTE.

Разрешения на таблицы: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

Разрешения на представления: DELETE, INSERT, REFERENCES, SELECT, UPDATE.

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

column
Указывает имя столбца в таблице, представлении или функции с табличным значением, для которого отменяется разрешение. Указание круглых скобок ( ) обязательно. Для столбца можно запрещать только разрешения SELECT, REFERENCES и UPDATE. Аргумент column может быть указан в предложении PERMISSIONS или после имени защищаемого объекта.

ON [ OBJECT :: ] [ schema_name ] . object_name
Указывает объект, для которого отменяется разрешение. Фраза OBJECT необязательна, если указан аргумент schema_name. Если же она указана, указание квалификатора области (::) обязательно. Если не указан аргумент schema_name, подразумевается схема по умолчанию. Если указан аргумент schema_name, обязательно указание квалификатора области схемы (.).

{ FROM | TO } <database_principal> Задает субъект, у которого отменяется разрешение.

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

Внимание

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

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

Внимание

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

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

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

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

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

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

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

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

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

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

Замечания

Сведения об объектах доступны через различные представления каталога. Дополнительные сведения см. в разделе Представления каталога объектов (Transact-SQL).

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

Разрешение объекта Содержится в разрешении объекта Содержится в разрешении схемы
ИЗМЕНИТЬ ПРОИЗВОДИТЕЛЬНОСТИ ИЗМЕНИТЬ
ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ
DELETE ПРОИЗВОДИТЕЛЬНОСТИ DELETE
Выполнение  ПРОИЗВОДИТЕЛЬНОСТИ Выполнение 
ВСТАВИТЬ ПРОИЗВОДИТЕЛЬНОСТИ ВСТАВИТЬ
ПРИЕМ ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ
ССЫЛКИ ПРОИЗВОДИТЕЛЬНОСТИ ССЫЛКИ
SELECT ПРИЕМ SELECT
TAKE OWNERSHIP ПРОИЗВОДИТЕЛЬНОСТИ ПРОИЗВОДИТЕЛЬНОСТИ
UPDATE ПРОИЗВОДИТЕЛЬНОСТИ UPDATE
VIEW CHANGE TRACKING ПРОИЗВОДИТЕЛЬНОСТИ VIEW CHANGE TRACKING
VIEW DEFINITION ПРОИЗВОДИТЕЛЬНОСТИ VIEW DEFINITION

Разрешения

Необходимо разрешение CONTROL для данного объекта.

При использовании предложения AS указанный участник должен быть владельцем объекта, разрешения на который отменяются.

Примеры

А. Отмена разрешения SELECT для таблицы

Следующий пример отменяет разрешение SELECT у пользователя RosaQdM для таблицы Person.Address в базе данных AdventureWorks2022.

USE AdventureWorks2022;  
REVOKE SELECT ON OBJECT::Person.Address FROM RosaQdM;  
GO  

B. Отмена разрешения EXECUTE для хранимой процедуры

Следующий пример отменяет разрешение EXECUTE для хранимой процедуры HumanResources.uspUpdateEmployeeHireInfo у роли приложения с именем Recruiting11.

USE AdventureWorks2022;  
REVOKE EXECUTE ON OBJECT::HumanResources.uspUpdateEmployeeHireInfo  
    FROM Recruiting11;  
GO   

C. Отмена разрешения REFERENCES для представления с CASCADE

Следующий пример отменяет разрешение REFERENCES для столбца BusinessEntityID в представлении HumanResources.vEmployee у пользователя Wanida с CASCADE.

USE AdventureWorks2022;  
REVOKE REFERENCES (BusinessEntityID) ON OBJECT::HumanResources.vEmployee   
    FROM Wanida CASCADE;  
GO  

См. также

GRANT, предоставление разрешений на объект (Transact-SQL)
Deny Object Permissions (Transact-SQL)
Представления каталога объектов (Transact-SQL)
Разрешения (ядро СУБД)
Субъекты (ядро СУБД)
Защищаемые объекты
sys.fn_builtin_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)