Compartir a través de


DENY (permisos de servidor de Transact-SQL)

Deniega permisos en un servidor.

Se aplica a: SQL Server (desde SQL Server 2008 hasta la versión actual).

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

DENY permission [ ,...n ] 
    TO <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 denegar en un servidor. Para obtener una lista de permisos, vea la sección Comentarios más adelante en este tema.

  • 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.

  • TO <server_principal>
    Especifica la entidad de seguridad de la que se va a denegar 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 denegar el 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.

Comentarios

Los permisos del ámbito del servidor solamente pueden denegarse cuando la base de datos actual es master..

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. Puede ver la información acerca de 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 denegarse 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 (desde SQL Server 2012 hasta 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 (desde SQL Server 2012 hasta 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 (desde SQL Server 2014 hasta la versión actual).

CONTROL SERVER

CONNECT SQL

CONTROL SERVER

CONTROL SERVER

CONTROL SERVER

CREATE ANY DATABASE

ALTER ANY DATABASE

CREATE AVAILABILITY GROUP

Se aplica a: SQL Server (desde SQL Server 2012 hasta 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 (desde SQL Server 2012 hasta 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 (desde SQL Server 2014 hasta la versión actual).

CONTROL SERVER

SELECT ALL USER SECURABLES

Se aplica a: SQL Server (desde SQL Server 2014 hasta 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

Comentarios

Los tres permisos de servidor siguientes se agregaron en SQL Server 2014.

  • Permiso CONNECT ANY DATABASE
    Conceda CONNECT ANY DATABASE a un inicio de sesión que debe conectarse a todas las bases de datos que existen actualmente y a todas las bases de datos nuevas que puedan crearse en futuro. No concede ningún permiso en ninguna base de datos más allá de conexión. Combínelo con SELECT ALL USER SECURABLES o con VIEW SERVER STATE para permitir que un proceso de auditoría vea todos los datos o todos los estados de base de datos de la instancia de SQL Server.

  • Permiso IMPERSONATE ANY LOGIN
    Cuando se concede, permite que un proceso de nivel intermedio suplante la cuenta de los clientes que se conecten a él, a medida que se conecta a las bases de datos. Cuando se deniega, se puede impedir que un inicio de sesión con un alto nivel de privilegios suplante a otros inicios de sesión. Por ejemplo, es posible bloquear un inicio de sesión con el permiso CONTROL SERVER para impedir que suplante a otros inicios de sesión.

  • Permiso SELECT ALL USER SECURABLES
    Cuando se concede, un inicio de sesión como un auditor puede ver los datos de todas las bases de datos a las que el usuario puede conectarse. Cuando se deniega, impide el acceso a objetos a menos que estén en el esquema sys.

Permisos

Requiere el permiso CONTROL SERVER o la propiedad del elemento protegible. Si utiliza la cláusula AS, la entidad de seguridad especificada debe ser propietaria del elemento protegible para el que se deniegan los permisos.

Ejemplos

A.Denegar el permiso CONNECT SQL para un inicio de sesión de SQL Server y las entidades de seguridad para las que el inicio de sesión ha vuelto a concederlo

En el siguiente ejemplo se deniega el permiso CONNECT SQL al inicio de sesión Annika de SQL Server y a las entidades de seguridad a las que ha concedido el permiso.

USE master;
DENY CONNECT SQL TO Annika CASCADE;
GO

B.Denegar el permiso CREATE ENDPOINT a un inicio de sesión de SQL Server utilizando la opción AS

En el siguiente ejemplo se deniega el permiso CREATE ENDPOINT al usuario ArifS. En el ejemplo se utiliza la opción AS para especificar MandarP como la entidad de seguridad desde la que la entidad de seguridad que ejecuta la consulta deriva la autoridad para hacerlo.

USE master;
DENY CREATE ENDPOINT TO ArifS AS MandarP;
GO

Vea también

Referencia

GRANT (Transact-SQL)

DENY (Transact-SQL)

DENY (permisos de servidor de Transact-SQL)

REVOKE (permisos de servidor de Transact-SQL)

sys.fn_builtin_permissions (Transact-SQL)

sys.fn_my_permissions (Transact-SQL)

HAS_PERMS_BY_NAME (Transact-SQL)

Conceptos

Jerarquía de permisos (motor de base de datos)