REVOKE (permisos de servidor de Transact-SQL)

Se aplica a: SQL Server Azure SQL Managed Instance

Quita los permisos de nivel de servidor GRANT y DENY.

Convenciones de sintaxis de Transact-SQL

Sintaxis

REVOKE [ GRANT OPTION FOR ] permission  [ ,...n ]   
    { TO | FROM } <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  

Argumentos

permission
Especifica un permiso que se puede conceder para un servidor. Para obtener una lista de permisos, vea la sección Comentarios que se muestra posteriormente en este tema.

{ TO | FROM } <grantee_principal> especifica la entidad de seguridad a la que se revoca el permiso.

AS <grantor_principal> Especifica la entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de revocar el permiso.

GRANT OPTION FOR
Indica que se revocará el derecho de conceder el permiso especificado a otras entidades de seguridad. No se revocará el permiso.

Importante

Si la entidad de seguridad dispone del permiso especificado sin la opción GRANT, se revocará el permiso.

CASCADE
Indica que el permiso que se va a revocar también se revocará de otras entidades de seguridad a las que esta entidad de seguridad ha concedido o denegado permisos.

Precaución

Una revocación en cascada de un permiso concedido WITH GRANT OPTION revocará tanto GRANT como DENY de dicho permiso.

SQL_Server_login
Especifica un inicio de sesión de SQL Server.

SQL_Server_login_mapped_to_Windows_login
Especifica un inicio de sesión de SQL Server asignado a un inicio de sesión de Windows.

SQL_Server_login_mapped_to_Windows_group
Especifica un inicio de sesión de SQL Server asignado a un grupo de Windows.

SQL_Server_login_mapped_to_certificate
Especifica un inicio de sesión de SQL Server asignado a un certificado.

SQL_Server_login_mapped_to_asymmetric_key
Especifica un inicio de sesión de SQL Server asignado a una clave asimétrica.

server_role
Especifica un rol de servidor definido por el usuario.

Observaciones

Los permisos del ámbito del servidor solamente pueden revocarse si la base de datos actual es maestra.

REVOKE quita los permisos GRANT y DENY.

Utilice REVOKE GRANT OPTION FOR para revocar el derecho a volver a conceder el permiso especificado. Si la entidad de seguridad dispone del permiso con derecho a concederlo, se revocará el derecho a conceder el permiso, pero no se revocará el permiso. Pero si la entidad de seguridad dispone del permiso especificado sin la opción GRANT, se revocará el permiso.

Puede ver información acerca de los permisos del servidor en la vista de catálogo sys.server_permissions, mientras que la información acerca de las entidades de seguridad de servidor puede verse en la vista de catálogo sys.server_principals. Encontrará información sobre la pertenencia de roles de servidor en la vista de catálogo sys.server_role_members.

Un servidor ocupa el nivel más alto en la jerarquía de permisos. En la siguiente tabla se muestran los permisos más específicos y limitados que pueden revocarse en un servidor.

Permiso de servidor Implícito en el permiso de servidor
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual).
CONTROL SERVER
ALTER ANY CONNECTION CONTROL SERVER
ALTER ANY CREDENTIAL CONTROL SERVER
ALTER ANY DATABASE CONTROL SERVER
ALTER ANY ENDPOINT CONTROL SERVER
ALTER ANY EVENT NOTIFICATION CONTROL SERVER
ALTER ANY EVENT SESSION CONTROL SERVER
ALTER ANY LINKED SERVER CONTROL SERVER
ALTER ANY LOGIN CONTROL SERVER
ALTER ANY SERVER AUDIT CONTROL SERVER
ALTER ANY SERVER ROLE

Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
CONNECT ANY DATABASE

Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
Crear grupo de disponibilidad

Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual).
ALTER ANY AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
CREATE ENDPOINT ALTER ANY ENDPOINT
CREATE SERVER ROLE

Se aplica a: SQL Server (SQL Server 2012 (11.x) a través de la versión actual).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual).
CONTROL SERVER
SELECT ALL USER SECURABLES

Se aplica a: SQL Server (SQL Server 2014 (12.x) a través de la versión actual).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW SERVER STATE ALTER SERVER STATE

Permisos

Debe disponer del permiso CONTROL SERVER o pertenecer al rol fijo de servidor sysadmin.

Ejemplos

A. Revocar un permiso de un inicio de sesión

En el siguiente ejemplo se revoca el permiso VIEW SERVER STATE del inicio de sesión de SQL Server de WanidaBenshoof.

USE master;  
REVOKE VIEW SERVER STATE FROM WanidaBenshoof;  
GO  

B. Revocar la opción WITH GRANT

En el siguiente ejemplo se revoca el derecho a conceder CONNECT SQL del inicio de sesión de SQL Server de JanethEsteves.

USE master;  
REVOKE GRANT OPTION FOR CONNECT SQL FROM JanethEsteves;  
GO  

El inicio de sesión todavía dispone del permiso CONNECT SQL, pero ya no puede conceder el permiso a otras entidades de seguridad.

Consulte también

GRANT (Transact-SQL)
DENY (Transact-SQL)
DENY (permisos de servidor de Transact-SQL)
REVOKE (permisos de servidor de Transact-SQL)
Jerarquía de permisos (motor de base de datos)
sys.fn_builtin_permissions (Transact-SQL)
sys.fn_my_permissions (Transact-SQL)
HAS_PERMS_BY_NAME (Transact-SQL)