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

S’APPLIQUE À : OuiSQL Server OuiAzure SQL Database OuiAzure Synapse Analytics (SQL DW) OuiParallel Data Warehouse APPLIES TO: YesSQL Server YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) YesParallel Data Warehouse

Refuse une autorisation à un principal.Denies a permission to a principal. Empêche ce principal d'hériter de l'autorisation par ses appartenances à des groupes ou à des rôles.Prevents that principal from inheriting the permission through its group or role memberships. DENY est prioritaire par rapport à toutes les autres autorisations, sauf qu’elle ne s’applique pas aux propriétaires d’objets ou aux membres du rôle serveur fixe sysadmin.DENY takes precedence over all permissions, except that DENY does not apply to object owners or members of the sysadmin fixed server role. Note de sécurité Les membres du rôle serveur fixe sysadmin et les propriétaires d’objets ne peuvent pas se voir refuser des autorisations.Security Note Members of the sysadmin fixed server role and object owners cannot be denied permissions."

Icône Lien de rubrique Conventions de la syntaxe Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SyntaxeSyntax

-- 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  
}  

ArgumentsArguments

ALLALL
Cette option n'interdit pas toutes les autorisations possibles.This option does not deny all possible permissions. Cette option revient à interdire les autorisations suivantes.Denying ALL is equivalent to denying the following permissions.

  • Si l'élément sécurisable est une base de données, ALL représente BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE et 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 l'élément sécurisable est une fonction scalaire, ALL représente EXECUTE et REFERENCES.If the securable is a scalar function, ALL means EXECUTE and REFERENCES.

  • Si l'élément sécurisable est une fonction table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.If the securable is a table-valued function, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Si l'élément sécurisable est une procédure stockée, ALL représente EXECUTE.If the securable is a stored procedure, ALL means EXECUTE.

  • Si l'élément sécurisable est une table, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.If the securable is a table, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

  • Si l'élément sécurisable est une vue, ALL représente DELETE, INSERT, REFERENCES, SELECT et UPDATE.If the securable is a view, ALL means DELETE, INSERT, REFERENCES, SELECT, and UPDATE.

Notes

La syntaxe DENY ALL est déconseillée.The DENY ALL syntax is deprecated. Cette fonctionnalité est en mode de maintenance et risque d’être supprimée dans une prochaine version de Microsoft SQL Server.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Refusez des autorisations spécifiques à la place.Deny specific permissions instead.

PRIVILEGESPRIVILEGES
Inclus pour la conformité aux normes ISO.Included for ISO compliance. Ne change pas le comportement de l'option ALL.Does not change the behavior of ALL.

permissionpermission
Nom d'une autorisation.Is the name of a permission. Les mappages valides des autorisations des éléments sécurisables sont décrits dans les sous-rubriques qui suivent.The valid mappings of permissions to securables are described in the sub-topics listed below.

columncolumn
Spécifie le nom de la colonne d'une table à laquelle les interdictions s'appliquent.Specifies the name of a column in a table on which permissions are being denied. Les parenthèses () sont requises.The parentheses () are required.

classclass
Indique la classe de l'élément sécurisable sur laquelle l'autorisation est refusée.Specifies the class of the securable on which the permission is being denied. Le qualificateur d’étendue :: est obligatoire.The scope qualifier :: is required.

securablesecurable
Indique l'élément sécurisable sur lequel l'autorisation est refusée.Specifies the securable on which the permission is being denied.

TO principalTO principal
Nom d’un principal.Is the name of a principal. Les principaux auxquels il est possible de refuser des autorisations sur un élément sécurisable varient en fonction de l'élément sécurisable.The principals to which permissions on a securable can be denied vary, depending on the securable. Voir les rubriques ci-dessous relatives aux éléments sécurisables pour connaître les combinaisons acceptées.See the securable-specific topics listed below for valid combinations.

CASCADECASCADE
Indique que l'autorisation est refusée au principal spécifié et à tous les autres principaux auxquels le principal a accordé cette autorisation.Indicates that the permission is denied to the specified principal and to all other principals to which the principal granted the permission. Nécessaire lorsque le principal a l'autorisation avec l'option GRANT OPTION.Required when the principal has the permission with GRANT OPTION.

AS principalAS principal
Spécifie le principal à partir duquel le principal qui exécute cette requête dérive son droit de refuser l'autorisation.Specifies the principal from which the principal executing this query derives its right to deny the permission. Utilisez la clause AS principal pour indiquer que le principal enregistré comme entité refusant l’autorisation doit être un principal autre que la personne qui exécute l’instruction.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. Supposez par exemple que l’utilisateur Mary est le principal_id 12 et que l’utilisateur Raul est le principal 15.For example, presume that user Mary is principal_id 12 and user Raul is principal 15. Mary exécute DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul;. Maintenant, la table sys.database_permissions indique que le grantor_prinicpal_id de l’instruction deny était 15 (Raul), même si l’instruction a été exécutée par l’utilisateur 13 (Mary).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).

L’utilisation de AS dans cette instruction n’implique pas la possibilité d’emprunter l’identité d’un autre utilisateur.The use of AS in this statement does not imply the ability to impersonate another user.

NotesRemarks

La syntaxe complète de l'instruction DENY est complexe.The full syntax of the DENY statement is complex. Le diagramme de syntaxe ci-dessus a été simplifié pour attirer l'attention sur sa structure.The syntax diagram above was simplified to draw attention to its structure. La syntaxe complète du refus des autorisations sur des éléments sécurisables particuliers est décrite dans les rubriques ci-dessous.Complete syntax for denying permissions on specific securables is described in the topics listed below.

DENY échoue si CASCADE n'est pas spécifié lors du refus d'une autorisation à un principal auquel cette autorisation a été accordée avec 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.

La procédure système stockée sp_helprotect répertorie les autorisations sur un élément sécurisable au niveau base de données.The sp_helprotect system stored procedure reports permissions on a database-level securable.

Attention

Une instruction DENY de niveau table n'a pas la priorité sur une instruction GRANT de niveau colonne.A table-level DENY does not take precedence over a column-level GRANT. Cette incohérence dans la hiérarchie des autorisations a été conservée pour des raisons de compatibilité descendante.This inconsistency in the permissions hierarchy has been preserved for the sake of backward compatibility. Elle sera supprimée dans une version ultérieure.It will be removed in a future release.

Attention

Le refus de l'autorisation CONTROL sur une base de données refuse implicitement l'autorisation CONNECT sur la base de données.Denying CONTROL permission on a database implicitly denies CONNECT permission on the database. Un principal dont l'autorisation CONTROL est refusée sur une base de données ne pourra pas se connecter à cette base de données.A principal that is denied CONTROL permission on a database will not be able to connect to that database.

Attention

Le refus de l'autorisation CONTROL SERVER entraîne implicitement le refus de l'autorisation CONNECT SQL sur le serveur.Denying CONTROL SERVER permission implicitly denies CONNECT SQL permission on the server. Un principal auquel l'autorisation CONTROL SERVER est refusée sur un serveur ne pourra pas se connecter à ce serveur.A principal that is denied CONTROL SERVER permission on a server will not be able to connect to that server.

AutorisationsPermissions

L'appelant (ou le principal spécifié avec l'option AS) doit avoir l'autorisation CONTROL sur l'élément sécurisable ou une autorisation plus élevée qui implique cette autorisation.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 vous utilisez l'option AS, le principal spécifié doit être propriétaire de l'élément sécurisable auquel l'autorisation est refusée.If using the AS option, the specified principal must own the securable on which a permission is being denied.

Les détenteurs de l'autorisation CONTROL SERVER, tels que les membres du rôle de serveur fixe sysadmin, peuvent refuser une autorisation sur n'importe quel élément sécurisable du serveur.Grantees of CONTROL SERVER permission, such as members of the sysadmin fixed server role, can deny any permission on any securable in the server. Les détenteurs de l'autorisation CONTROL sur la base de données, tels que les membres du rôle de base de données fixe db_owner, peuvent refuser une autorisation sur n'importe quel élément sécurisable de la base de données.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. Les détenteurs de l'autorisation CONTROL sur un schéma peuvent refuser une autorisation sur n'importe quel objet dans ce schéma.Grantees of CONTROL permission on a schema can deny any permission on any object in the schema. Si vous utilisez la clause AS, le principal spécifié doit être propriétaire de l'élément sécurisable auquel les autorisations sont refusées.If the AS clause is used, the specified principal must own the securable on which permissions are being denied.

ExemplesExamples

Le tableau suivant répertorie les éléments sécurisables et les rubriques qui décrivent leur syntaxe.The following table lists the securables and the topics that describe the securable-specific syntax.

Rôle d'applicationApplication Role DENY - Refuser des autorisations à un principal de base de données (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
AssemblyAssembly REVOKE - Révoquer des autorisations sur un assembly (Transact-SQL)DENY Assembly Permissions (Transact-SQL)
Clé asymétriqueAsymmetric Key DENY - Refuser des autorisations sur une clé asymétrique (Transact-SQL)DENY Asymmetric Key Permissions (Transact-SQL)
Groupe de disponibilitéAvailability Group DENY - Refuser des autorisations sur un groupe de disponibilité (Transact-SQL)DENY Availability Group Permissions (Transact-SQL)
CertificatCertificate DENY - Refuser des autorisations sur un certificat (Transact-SQL)DENY Certificate Permissions (Transact-SQL)
ContratContract DENY - Refuser des autorisations dans Service Broker (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
Base de donnéesDatabase DENY - Refuser des autorisations sur une base de données (Transact-SQL)DENY Database Permissions (Transact-SQL)
Informations d’identification délimitées à la base de donnéesDatabase Scoped Credential DENY - Refuser des autorisations sur des informations d’identification délimitées à la base de données (Transact-SQL)DENY Database Scoped Credential (Transact-SQL)
Point de terminaisonEndpoint DENY - Refuser des autorisations sur un point de terminaison (Transact-SQL)DENY Endpoint Permissions (Transact-SQL)
Catalogue de texte intégralFull-Text Catalog DENY - Refuser des autorisations sur un texte intégral (Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
Liste de mots vides de texte intégralFull-Text Stoplist DENY - Refuser des autorisations sur un texte intégral (Transact-SQL)DENY Full-Text Permissions (Transact-SQL)
FonctionFunction DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
ConnexionLogin DENY - Refuser des autorisations à un principal du serveur (Transact-SQL)DENY Server Principal Permissions (Transact-SQL)
Type de messageMessage Type DENY - Refuser des autorisations dans Service Broker (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
ObjectObject DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
File d'attenteQueue DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
Liaisons de service distantRemote Service Binding DENY - Refuser des autorisations dans Service Broker (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
RoleRole DENY - Refuser des autorisations à un principal de base de données (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
RoutageRoute DENY - Refuser des autorisations dans Service Broker (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
schémaSchema DENY - Refuser des autorisations sur un schéma (Transact-SQL)DENY Schema Permissions (Transact-SQL)
Liste de propriétés de rechercheSearch Property List DENY - Refuser des autorisations sur une liste de propriétés de recherche (Transact-SQL)DENY Search Property List Permissions (Transact-SQL)
ServeurServer DENY - Refuser des autorisations sur un serveur (Transact-SQL)DENY Server Permissions (Transact-SQL)
ServiceService DENY - Refuser des autorisations dans Service Broker (Transact-SQL)DENY Service Broker Permissions (Transact-SQL)
Procédure stockéeStored Procedure DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
Clé symétriqueSymmetric Key DENY - Refuser des autorisations sur une clé symétrique (Transact-SQL)DENY Symmetric Key Permissions (Transact-SQL)
SynonymeSynonym DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
Objets systèmeSystem Objects DENY - Refuser des autorisations sur un objet système (Transact-SQL)DENY System Object Permissions (Transact-SQL)
Table de charge de travailTable DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
TypeType DENY - Refuser des autorisations sur un type (Transact-SQL)DENY Type Permissions (Transact-SQL)
UtilisateurUser DENY - Refuser des autorisations à un principal de base de données (Transact-SQL)DENY Database Principal Permissions (Transact-SQL)
AffichageView DENY - Refuser des autorisations sur un objet (Transact-SQL)DENY Object Permissions (Transact-SQL)
Collection de schémas XMLXML Schema Collection DENY – Refuser des autorisations sur une collection de schémas (Transact-SQL)DENY XML Schema Collection Permissions (Transact-SQL)

Voir aussiSee 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)