DENY (Transact-SQL)DENY (Transact-SQL)

SE APLICA A: síSQL Server síAzure SQL Database síAzure Synapse Analytics (SQL DW) síAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Deniega un permiso a una entidad de seguridad.Denies a permission to a principal. Evita que la entidad de seguridad herede permisos por su pertenencia a grupos o roles.Prevents that principal from inheriting the permission through its group or role memberships. DENY tiene prioridad sobre todos los permisos, salvo que DENY no se aplique a los propietarios de objetos o miembros del rol fijo de servidor sysadmin.DENY takes precedence over all permissions, except that DENY does not apply to object owners or members of the sysadmin fixed server role. Nota de seguridad No se pueden denegar permisos a los miembros del rol fijo de servidor sysadmin y a los propietarios de objetos.Security Note Members of the sysadmin fixed server role and object owners cannot be denied permissions."

Icono de vínculo de tema Convenciones de sintaxis de Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintaxisSyntax

-- Syntax for SQL Server and Azure SQL Database  
  
-- Simplified syntax for DENY  
DENY   { ALL [ PRIVILEGES ] } 
     | <permission>  [ ( column [ ,...n ] ) ] [ ,...n ]  
    [ ON [ <class> :: ] securable ] 
    TO principal [ ,...n ]   
    [ CASCADE] [ AS principal ]  
[;]

<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{ see the tables below }  
-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse  
  
DENY   
    <permission> [ ,...n ]  
    [ ON [ <class_> :: ] securable ]   
    TO principal [ ,...n ]  
    [ CASCADE ]  
[;]  
  
<permission> ::=  
{ see the tables below }  
  
<class> ::=  
{  
      LOGIN  
    | DATABASE  
    | OBJECT  
    | ROLE  
    | SCHEMA  
    | USER  
}  

ArgumentosArguments

ALLALL
Esta opción no deniega todos los permisos posibles.This option does not deny all possible permissions. Al denegar ALL se deniegan los permisos siguientes.Denying ALL is equivalent to denying the following permissions.

  • Si el elemento protegible es una base de datos, ALL significa BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE y CREATE VIEW.If the securable is a database, ALL means BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE, and CREATE VIEW.

  • Si el elemento protegible es una función escalar, ALL significa EXECUTE y REFERENCES.If the securable is a scalar function, ALL means EXECUTE and REFERENCES.

  • Si el elemento protegible es una función con valores de tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.If the securable is a table-valued function, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Si el elemento protegible es un procedimiento almacenado, ALL significa EXECUTE.If the securable is a stored procedure, ALL means EXECUTE.

  • Si el elemento protegible es una tabla, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.If the securable is a table, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Si el elemento protegible es una vista, ALL significa DELETE, INSERT, REFERENCES, SELECT y UPDATE.If the securable is a view, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

Nota

La sintaxis de DENY ALL está desusada.The DENY ALL syntax is deprecated. Esta característica está en modo de mantenimiento y es posible que no se incluya en una versión futura de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. En su lugar, deniegue permisos concretos.Deny specific permissions instead.

PRIVILEGESPRIVILEGES
Incluido por compatibilidad con ISO.Included for ISO compliance. No cambia el comportamiento de ALL.Does not change the behavior of ALL.

permissionpermission
Es el nombre de un permiso.Is the name of a permission. Las asignaciones de permisos válidas a elementos protegibles se describen en los subtemas que se muestran a continuación.The valid mappings of permissions to securables are described in the sub-topics listed below.

columncolumn
Especifica el nombre de una columna de una tabla para la que se deniegan los permisos.Specifies the name of a column in a table on which permissions are being denied. Los paréntesis () son obligatorios.The parentheses () are required.

classclass
Especifica la clase de elemento protegible para el que se deniega el permiso.Specifies the class of the securable on which the permission is being denied. El calificador de ámbito :: es obligatorio.The scope qualifier :: is required.

securablesecurable
Especifica el elemento protegible para el que se deniega el permiso.Specifies the securable on which the permission is being denied.

TO principalTO principal
Es el nombre de una entidad de seguridad.Is the name of a principal. Las entidades de seguridad para las que se pueden denegar permisos sobre un elemento protegible varían en función de este elemento protegible.The principals to which permissions on a securable can be denied vary, depending on the securable. Vea los temas sobre elementos protegibles enumerados más abajo para obtener combinaciones válidas.See the securable-specific topics listed below for valid combinations.

CASCADECASCADE
Indica que el permiso se deniega para la entidad de seguridad especificada y para el resto de entidades de seguridad a las que ésta concedió el permiso.Indicates that the permission is denied to the specified principal and to all other principals to which the principal granted the permission. Es obligatorio cuando la entidad de seguridad tiene el permiso con GRANT OPTION.Required when the principal has the permission with GRANT OPTION.

AS principalAS principal
Especifica la entidad de seguridad de la que la entidad de seguridad que ejecuta esta consulta deriva su derecho de denegar el permiso.Specifies the principal from which the principal executing this query derives its right to deny the permission. Use la cláusula AS de la entidad de seguridad para indicar que la entidad de seguridad registrada como el denegador del permiso debe ser una entidad de seguridad distinta de la persona que ejecuta la instrucción.Use the AS principal clause to indicate that the principal recorded as the denier of the permission should be a principal other than the person executing the statement. Por ejemplo, suponga que la usuaria María tiene el principal_id 12 y el usuario Raúl tiene el principal_id 15.For example, presume that user Mary is principal_id 12 and user Raul is principal 15. María ejecuta DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul;. Ahora bien, la tabla sys.database_permissions indicará que grantor_principal_id de la instrucción DENY fue 15 (Raul), aunque la instrucción realmente la ejecutó el usuario 13 (María).Mary executes DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; Now the sys.database_permissions table will indicate that the grantor_prinicpal_id of the deny statement was 15 (Raul) even though the statement was actually executed by user 13 (Mary).

El uso de AS en esta instrucción no implica la capacidad de suplantar a otro usuario.The use of AS in this statement does not imply the ability to impersonate another user.

ObservacionesRemarks

La sintaxis completa de la instrucción DENY es compleja.The full syntax of the DENY statement is complex. El diagrama de sintaxis anterior se ha simplificado para concentrar la atención en su estructura.The syntax diagram above was simplified to draw attention to its structure. La sintaxis completa para denegar permisos sobre elementos protegibles específicos se describe en los temas enumerados más adelante.Complete syntax for denying permissions on specific securables is described in the topics listed below.

DENY producirá un error si CASCADE no se especifica al denegar un permiso a una entidad de seguridad a la que se concedió ese permiso con GRANT OPTION.DENY will fail if CASCADE is not specified when denying a permission to a principal that was granted that permission with GRANT OPTION specified.

El procedimiento almacenado del sistema sp_helprotect informa de los permisos sobre un elemento protegible en el nivel de base de datos.The sp_helprotect system stored procedure reports permissions on a database-level securable.

Precaución

Un permiso DENY de nivel de tabla no tiene prioridad sobre uno GRANT de nivel de columna.A table-level DENY does not take precedence over a column-level GRANT. Esta incoherencia en la jerarquía de permisos se ha mantenido por motivos de compatibilidad con versiones anteriores.This inconsistency in the permissions hierarchy has been preserved for the sake of backward compatibility. Se eliminará en una próxima versión.It will be removed in a future release.

Precaución

Si se deniega el permiso CONTROL para una base de datos, se deniega implícitamente el permiso CONNECT para la misma.Denying CONTROL permission on a database implicitly denies CONNECT permission on the database. Una entidad de seguridad a la que se deniega el permiso CONTROL para una base de datos no podrá conectarse a esa base de datos.A principal that is denied CONTROL permission on a database will not be able to connect to that database.

Precaución

Si se deniega el permiso CONTROL SERVER, se deniega implícitamente el permiso CONNECT SQL para el servidor.Denying CONTROL SERVER permission implicitly denies CONNECT SQL permission on the server. Una entidad de seguridad a la que se deniega el permiso CONTROL SERVER para un servidor no podrá conectarse a ese servidor.A principal that is denied CONTROL SERVER permission on a server will not be able to connect to that server.

PermisosPermissions

El autor de la llamada (o la entidad de seguridad especificada en la opción AS) debe tener el permiso CONTROL sobre el elemento protegible o un permiso superior que implique el permiso CONTROL sobre el elemento protegible.The caller (or the principal specified with the AS option) must have either CONTROL permission on the securable, or a higher permission that implies CONTROL permission on the securable. Si utiliza la opción AS, la entidad de seguridad especificada debe poseer el elemento protegible sobre el que se deniega un permiso.If using the AS option, the specified principal must own the securable on which a permission is being denied.

Los beneficiarios del permiso CONTROL SERVER, por ejemplo, los miembros del rol fijo de servidor sysadmin, pueden denegar cualquier permiso sobre cualquier elemento protegible en el servidor.Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can deny any permission on any securable in the server. Los beneficiarios del permiso CONTROL en la base de datos, por ejemplo, los miembros del rol fijo de base de datos db_owner, pueden denegar cualquier permiso sobre cualquier elemento protegible en la base de datos.Grantees of CONTROL permission on the database, such as members of the db_owner fixed database role, can deny any permission on any securable in the database. Los beneficiarios del permiso CONTROL sobre un esquema pueden denegar cualquier permiso sobre cualquier objeto en el esquema.Grantees of CONTROL permission on a schema can deny any permission on any object in the schema. Si se usa la cláusula AS, la entidad de seguridad especificada debe ser propietaria del elemento protegible cuyos permisos que se van a denegar.If the AS clause is used, the specified principal must own the securable on which permissions are being denied.

EjemplosExamples

En esta tabla se enumeran los elementos protegibles y los temas donde se describe la sintaxis específica de los mismos.The following table lists the securables and the topics that describe the securable-specific syntax.

Rol de aplicaciónApplication Role DENY (permisos de entidad de seguridad de base de datos de Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
AssemblyAssembly DENY (permisos de ensamblado de Transact-SQL)DENY Assembly Permissions (Transact-SQL)
Clave asimétricaAsymmetric Key DENY (permisos de clave asimétrica de Transact-SQL)DENY Asymmetric Key Permissions (Transact-SQL)
Grupo de disponibilidadAvailability Group DENY (permisos de grupo de disponibilidad de Transact-SQL)DENY Availability Group Permissions (Transact-SQL)
CertificadoCertificate DENY (permisos de certificado de Transact-SQL)DENY Certificate Permissions (Transact-SQL)
ContratoContract DENY (permisos de Service Broker de Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
Base de datosDatabase DENY (permisos de base de datos de Transact-SQL)DENY Database Permissions (Transact-SQL)
Credencial de ámbito de base de datosDatabase Scoped Credential DENY (credencial de ámbito de base de datos de Transact-SQL)DENY Database Scoped Credential (Transact-SQL)
Punto de conexiónEndpoint DENY (permisos de extremo de Transact-SQL)DENY Endpoint Permissions (Transact-SQL)
Catálogo de texto completoFull-Text Catalog DENY (permisos de texto completo de Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
Lista de palabras irrelevantes de texto completoFull-Text Stoplist DENY (permisos de texto completo de Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
FunciónFunction DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
Inicio de sesiónLogin DENY (permisos de entidad de seguridad de servidor de Transact-SQL)DENY Server Principal Permissions (Transact-SQL)
Tipo de mensajeMessage Type DENY (permisos de Service Broker de Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
ObjectObject DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
ColaQueue DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
Enlace de servicio remotoRemote Service Binding DENY (permisos de Service Broker de Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
RoleRole DENY (permisos de entidad de seguridad de base de datos de Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
EnrutarRoute DENY (permisos de Service Broker de Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
SchemaSchema DENY (permisos de esquema de Transact-SQL)DENY Schema Permissions (Transact-SQL)
Lista de propiedades de búsquedaSearch Property List GRANT (permisos de lista de propiedades de búsqueda de Transact-SQL)DENY Search Property List Permissions (Transact-SQL)
ServerServer DENY (permisos de servidor de Transact-SQL)DENY Server Permissions (Transact-SQL)
ServicioService DENY (permisos de Service Broker de Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
Procedimiento almacenadoStored Procedure DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
Clave simétricaSymmetric Key DENY (permisos de clave simétrica de Transact-SQL)DENY Symmetric Key Permissions (Transact-SQL)
Synonym (Sinónimo)Synonym DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
Objetos de sistemaSystem Objects DENY (permisos de objeto de sistema de Transact-SQL)DENY System Object Permissions (Transact-SQL)
TablaTable DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
TipoType DENY (permisos de tipo de Transact-SQL)DENY Type Permissions (Transact-SQL)
UsuarioUser DENY (permisos de entidad de seguridad de base de datos de Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
VerView DENY (permisos de objeto de Transact-SQL)DENY Object Permissions (Transact-SQL)
Colección de esquemas XMLXML Schema Collection DENY (permisos de colección de esquemas XML de Transact-SQL)DENY XML Schema Collection Permissions (Transact-SQL)

Consulte tambiénSee Also

REVOKE (Transact-SQL) REVOKE (Transact-SQL)
sp_addlogin (Transact-SQL) sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL) sp_adduser (Transact-SQL)
sp_changedbowner (Transact-SQL) sp_changedbowner (Transact-SQL)
sp_dropuser (Transact-SQL) sp_dropuser (Transact-SQL)
sp_helprotect (Transact-SQL) sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)sp_helpuser (Transact-SQL)