DENY (permisos de entidad de seguridad de servidor de Transact-SQL)

Deniega permisos concedidos en un inicio de sesión de SQL Server.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

DENY permission [ ,...n ] } 
    ON LOGIN :: SQL_Server_login
    TO <server_principal> [ ,...n ]
    [ CASCADE ]
    [ AS SQL_Server_login ] 

<server_principal> ::= 
        SQL_Server_login
    | SQL_Server_login_from_Windows_login 
    | SQL_Server_login_from_certificate 
    | SQL_Server_login_from_AsymKey   

Argumentos

  • permission
    Especifica un permiso que se puede denegar en un inicio de sesión de SQL Server. Para obtener una lista de permisos, vea la sección Notas que se muestra posteriormente en este tema.

  • LOGIN :: SQL_Server_login
    Especifica el inicio de sesión de SQL Server en el que se deniega el permiso. Se requiere el calificador de ámbito (::).

  • TO SQL_Server_login
    Especifica el inicio de sesión de SQL Server para el que se va a denegar el permiso.

  • SQL_Server_login
    Especifica el nombre de un inicio de sesión de SQL Server.

  • SQL_Server_login_from_Windows_login
    Especifica el nombre de un inicio de sesión de SQL Server creado desde un inicio de sesión de Windows.

  • SQL_Server_login_from_certificate
    Especifica el nombre de un inicio de sesión de SQL Server asignado a un certificado.

  • SQL_Server_login_from_AsymKey
    Especifica el nombre de un inicio de sesión de SQL Server asignado a una clave asimétrica.

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

  • AS SQL_Server_login
    Especifica el inicio de sesión de SQL Server del que la entidad de seguridad que ejecuta esta consulta deriva su derecho de denegar el permiso.

Notas

Los permisos del ámbito del servidor sólo pueden denegarse si la base de datos actual es master.

Puede ver la información acerca de los permisos de servidor en la vista de catálogo sys.server_permissions. Puede ver la información acerca de las entidades de seguridad de servidor en la vista de catálogo sys.server_principals.

Se producirá un error en la instrucción si no se especifica CASCADE para denegar un permiso a una entidad de seguridad a la que se concedió dicho permiso con GRANT OPTION.

Un inicio de sesión de SQL Server es un elemento que puede protegerse en el nivel de servidor. La mayoría de permisos limitados y específicos que se pueden denegar en un inicio de sesión de SQL Server se muestran en la siguiente tabla, junto con permisos más generales que los incluyen por implicación.

Permiso de inicio de sesión de SQL Server

Implicado por el permiso de inicio de sesión de SQL Server

Implicado por el permiso de servidor

CONTROL

CONTROL

CONTROL SERVER

IMPERSONATE

CONTROL

CONTROL SERVER

VIEW DEFINITION

CONTROL

VIEW ANY DEFINITION

ALTER

CONTROL

ALTER ANY LOGIN

Permisos

Requiere el permiso CONTROL en el inicio de sesión o el permiso ALTER ANY LOGIN en el servidor.

Ejemplos

A. Denegar el permiso IMPERSONATE en un inicio de sesión

En el siguiente ejemplo se deniega el permiso IMPERSONATE en el inicio de sesión WanidaBenshoof de SQL Server para un inicio de sesión de SQL Server creado desde el usuario de Windows AdvWorks\YoonM.

USE master;
DENY IMPERSONATE ON LOGIN::WanidaBenshoof TO [AdvWorks\YoonM];
GO

B. Denegar el permiso VIEW DEFINITION con CASCADE

En el siguiente ejemplo se deniega el permiso VIEW DEFINITION en el inicio de sesión EricKurjan de SQL Server para el inicio de sesión RMeyyappan de SQL Server. La opción CASCADE indica que el permiso VIEW DEFINITION en EricKurjan también se denegará a las entidades de seguridad a las que RMeyyappan concedió este permiso.

USE master;
DENY VIEW DEFINITION ON LOGIN::EricKurjan TO RMeyyappan 
    CASCADE;
GO