REVOKE (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLAzure Synapse AnalyticsAnalytics Platform System (PDW)Punto de conexión de SQL Analytics en Microsoft FabricAlmacén en Microsoft FabricBase de datos SQL en Microsoft Fabric

Quita un permiso concedido o denegado previamente.

Convenciones de sintaxis de Transact-SQL

Syntax

Sintaxis para SQL Server, Azure SQL Database y Fabric SQL Database

-- Simplified syntax for REVOKE  
REVOKE [ GRANT OPTION FOR ]  
      {   
        [ ALL [ PRIVILEGES ] ]  
        |  
                permission [ ( column [ ,...n ] ) ] [ ,...n ]  
      }  
      [ ON [ class :: ] securable ]   
      { TO | FROM } principal [ ,...n ]   
      [ CASCADE] [ AS principal ]  

Sintaxis para Azure Synapse Analytics, Almacenamiento de datos paralelos y almacenamiento de Microsoft Fabric

REVOKE
    <permission> [ ,...n ]  
    [ ON [ <class_type> :: ] securable ]   
    [ FROM | TO ] principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class_type> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

Arguments

GRANT OPCIÓN PARA
Indica que se revocará la capacidad de conceder el permiso especificado. Se requiere cuando se utiliza el argumento CASCADE.

Important

Si el principal tiene el permiso especificado sin la GRANT opción, el permiso será revocado.

ALL
Se aplica a: SQL Server 2008 (10.0.x) y versiones posteriores

Esta opción no revoca todos los permisos posibles. Revocar ALL es equivalente a revocar los siguientes permisos.

  • Si el seguro es una base de datos, ALL significa BACKUP, LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, , y CREATE VIEW. BACKUPDATABASE

  • Si el elemento protegible es una función escalar, ALL significa EXECUTE y REFERENCES.

  • Si el asegurable es una función con valores de tabla, ALL significa DELETE, INSERT, REFERENCIAS, SELECT y UPDATE.

  • Si el elemento protegible es un procedimiento almacenado, ALL significa EXECUTE.

  • Si el seguro es una tabla, ALL significa DELETE, INSERT, REFERENCIAS, SELECT y UPDATE.

  • Si el securable es una vista, ALL significa DELETE, INSERT, REFERENCIAS, SELECT y UPDATE.

Note

La REVOKE sintaxis ALL está obsoleta. Esta característica se quitará en una versión futura de SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan. En su lugar, revoque permisos concretos.

PRIVILEGES
Incluido por compatibilidad con ISO. No cambia el comportamiento de ALL.

permission
Es el nombre de un permiso. Las asignaciones válidas de permisos a elementos protegibles se describen en los temas de la sección Sintaxis específica de los elementos protegibles, más adelante en este tema.

column
Especifica el nombre de una columna de una tabla en la que se van a revocar los permisos. Es obligatorio utilizar paréntesis.

class
Especifica la clase del elemento protegible para el que se va a revocar el permiso. El calificador de ámbito :: es obligatorio.

securable
Especifica el elemento protegible para el que se va a revocar el permiso.

TO | DEL director
Es el nombre de una entidad de seguridad. Las entidades de seguridad de las que se pueden revocar permisos para un elemento protegible varían según el elemento. Para más información sobre las combinaciones válidas, vea los temas que se muestran en Sintaxis específica de los elementos protegibles más adelante en este tema.

CASCADE
Indica que el permiso que se va a revocar también se revocará de otras entidades de seguridad a las que se han concedido permisos por esta entidad de seguridad. Cuando usas el argumento CASCADE, también debes incluir el GRANT argumento OPTION FOR.

Caution

Una revocación en cascada de un permiso concedido CON GRANT OPCIÓN revocará tanto GRANT como DENY a ese permiso.

Director AS
Use la cláusula AS principal para indicar que se va a revocar un permiso que ha sido concedido por una entidad de seguridad distinta de usted. Por ejemplo, imagine que la usuaria María tiene el valor principal_id 12 y el usuario Raúl tiene el valor principal_id 15. Tanto María como Raúl conceden el mismo permiso a un usuario llamado Carlos. La tabla sys.database_permissions indicará los permisos dos veces, pero cada uno tendrá un valor de grantor_principal_id diferente. María podría revocar el permiso mediante la cláusula AS RAUL para quitar la concesión del permiso de Raúl.

El uso de AS en esta instrucción no implica la capacidad de suplantar a otro usuario.

Remarks

La sintaxis completa de la REVOKE instrucción es compleja. El diagrama de sintaxis anterior se ha simplificado para concentrar la atención en su estructura. La sintaxis completa para revocar permisos en elementos protegibles específicos se describe en los temas que se muestran en Sintaxis específica de los elementos protegibles más adelante en este tema.

La REVOKE instrucción se puede usar para quitar permisos concedidos y la DENY instrucción se puede usar para evitar que una entidad de seguridad obtenga un permiso específico a través de .GRANT

Conceder un permiso quita DENY o REVOKE de ese permiso en el elemento protegible especificado. Si se deniega el mismo permiso en un ámbito superior que contiene el elemento protegible, DENY tiene prioridad. Pero tenga en cuenta que revocar el permiso concedido en un ámbito superior no tiene prioridad.

Caution

Un nivel DENY de tabla no tiene prioridad sobre un nivel GRANTde columna . Se ha conservado esta incoherencia en la jerarquía de permisos para mantener la compatibilidad con versiones anteriores. Se eliminará en una próxima versión.

El procedimiento almacenado del sistema sp_helprotect informa de los permisos sobre un elemento protegible en el nivel de base de datos.

La REVOKE declaración fallará si CASCADE no se especifica cuando estás revocando un permiso de un principal que recibió ese permiso con GRANT OPTION especificado.

Permissions

Las entidades de seguridad con el permiso CONTROL para un elemento protegible pueden revocar permisos para ese elemento. Los propietarios de objetos pueden revocar permisos en los objetos que poseen.

Los receptores del permiso CONTROL SERVER, como los miembros del rol fijo de servidor sysadmin, pueden revocar los permisos en cualquier elemento protegible en el servidor. Los receptores del permiso CONTROL en una base de datos, como los miembros del rol fijo de base de datos db_owner, pueden revocar los permisos en cualquier elemento protegible en la base de datos. Los receptores del permiso CONTROL en un esquema pueden revocar los permisos en cualquier objeto del esquema.

Sintaxis específica de los seguros

En esta tabla se enumeran los elementos protegibles y los temas donde se describe la sintaxis específica de los mismos.

Securable Topic
Rol de aplicación REVOKE Permisos principales de base de datos (Transact-SQL)
Assembly REVOKE Permisos de ensamblaje (Transact-SQL)
Clave asimétrica REVOKE Permisos de clave asimétrica (Transact-SQL)
Grupo de disponibilidad REVOKE Permisos de grupos de disponibilidad (Transact-SQL)
Certificate REVOKE Permisos de Certificados (Transact-SQL)
Contract REVOKE Permisos de Service Broker (Transact-SQL)
Database REVOKE Permisos de base de datos (Transact-SQL)
Endpoint REVOKE Permisos de punto de conexión (Transact-SQL)
Credencial de ámbito de base de datos REVOKE Credencial con alcance de base de datos (Transact-SQL)
Catálogo de texto completo REVOKE Full-Text Permisos (Transact-SQL)
Full-Text Lista de paradas REVOKE Full-Text Permisos (Transact-SQL)
Function REVOKE Permisos de objeto (Transact-SQL)
Login REVOKE Permisos del principal del servidor (Transact-SQL)
Tipo de mensaje REVOKE Permisos de Service Broker (Transact-SQL)
Object REVOKE Permisos de objeto (Transact-SQL)
Queue REVOKE Permisos de objeto (Transact-SQL)
Enlace de servicio remoto REVOKE Permisos de Service Broker (Transact-SQL)
Role REVOKE Permisos principales de base de datos (Transact-SQL)
Route REVOKE Permisos de Service Broker (Transact-SQL)
Schema REVOKE Permisos de esquema (Transact-SQL)
Lista de propiedades de búsqueda REVOKE Permisos de búsqueda en la lista de propiedades (Transact-SQL)
Server REVOKE Permisos de servidor (Transact-SQL)
Service REVOKE Permisos de Service Broker (Transact-SQL)
Procedimiento almacenado REVOKE Permisos de objeto (Transact-SQL)
Clave simétrica REVOKE Permisos de clave simétrica (Transact-SQL)
Synonym REVOKE Permisos de objeto (Transact-SQL)
Objetos del sistema REVOKE Permisos de objeto del sistema (Transact-SQL)
Table REVOKE Permisos de objeto (Transact-SQL)
Type REVOKE Permisos de Tipo (Transact-SQL)
User REVOKE Permisos principales de base de datos (Transact-SQL)
View REVOKE Permisos de objeto (Transact-SQL)
Colección de esquemas XML REVOKE Permisos de Colección de Esquemas XML (Transact-SQL)

Examples

A. Concesión y revocación

Se aplica a: SQL Server, SQL Database

En el ejemplo siguiente se crea un esquema, un usuario de base de datos independiente y un nuevo rol en una base de datos de usuario. Agrega el usuario al rol, concede el permiso SELECT al rol en el esquema y quita (REVOKE) ese permiso al rol.

CREATE SCHEMA Sales;  
GO
CREATE USER Joe without login;
GO
CREATE ROLE Vendors;
GO
ALTER ROLE Vendors ADD MEMBER Joe; 
GO
GRANT SELECT ON SCHEMA :: Sales TO Vendors;
GO
REVOKE SELECT ON SCHEMA :: Sales TO Vendors;
GO
 

Véase también

Jerarquía de permisos (motor de base de datos)
DENY (Transact-SQL)
GRANT (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)