DENY (Transact-SQL)

Mis à jour : 12 décembre 2006

Refuse une autorisation à une entité de sécurité. Empêche cette entité de sécurité d'hériter de l'autorisation par ses appartenances à des groupes ou à des rôles.

Syntaxe

Simplified syntax for DENY
DENY { ALL [ PRIVILEGES ] }
      | permission [ ( column [ ,...n ] ) ] [ ,...n ]
      [ ON [ class :: ] securable ] TO principal [ ,...n ] 
      [ CASCADE] [ AS principal ]

Arguments

  • ALL
    Cette option n'interdit pas toutes les autorisations possibles. Cette option revient à interdire les autorisations suivantes.

    • Si l'élément sécurisable est une base de données, l'option ALL est équivalente à BACKUP DATABASE, BACKUP LOG, CREATE DATABASE, CREATE DEFAULT, CREATE FUNCTION, CREATE PROCEDURE, CREATE RULE, CREATE TABLE et CREATE VIEW.
    • Si l'élément sécurisable est une fonction scalaire, l'option ALL est équivalente à EXECUTE et REFERENCES.
    • Si l'élément sécurisable est une fonction table, l'option ALL est équivalente à DELETE, INSERT, REFERENCES, SELECT et UPDATE.
    • Si l'élément sécurisable est une procédure stockée, l'option ALL représente EXECUTE.
    • Si l'élément sécurisable est une table, l'option ALL est équivalente à DELETE, INSERT, REFERENCES, SELECT et UPDATE.
    • Si l'élément sécurisable est une vue, l'option ALL est équivalente à DELETE, INSERT, REFERENCES, SELECT et UPDATE.
  • PRIVILEGES
    Inclus pour la compatibilité SQL-92. Ne change pas le comportement de l'option ALL.
  • permission
    Nom d'une autorisation. Les mappages valides des autorisations des éléments sécurisables sont décrits dans les sous-rubriques qui suivent.
  • column
    Spécifie le nom de la colonne d'une table à laquelle les interdictions s'appliquent. Les parenthèses "()" sont obligatoires.
  • class
    Indique la classe de l'élément sécurisable sur laquelle l'autorisation est refusée. Le qualificateur d'étendue « :: » est obligatoire.
  • securable
    Indique l'élément sécurisable sur lequel l'autorisation est refusée.
  • TO principal
    Nom d'une entité de sécurité. Les entités de sécurité auxquelles il est possible de refuser des autorisations sur un élément sécurisable varient en fonction de l'élément sécurisable. Voir les rubriques ci-dessous relatives aux éléments sécurisables pour connaître les combinaisons acceptées.
  • CASCADE
    Indique que l'autorisation est refusée à l'entité de sécurité spécifiée et à toutes les autres entités auxquelles l'entité de sécurité a accordé cette autorisation. Nécessaire lorsque l'entité de sécurité a l'autorisation avec l'option GRANT OPTION.
  • AS principal
    Spécifie une entité de sécurité dont l'entité de sécurité qui exécute cette instruction dérive son droit de refuser l'autorisation.

Notes

La syntaxe complète de l’instruction DENY est complexe. Le diagramme ci-dessus a été simplifié de façon à attirer l'attention sur sa structure. La syntaxe complète du refus des autorisations sur des éléments sécurisables particuliers est décrite dans les rubriques ci-dessous.

DENY échoue si l'argument CASCADE n'est pas spécifié lors du refus d'une autorisation à une entité de sécurité qui a accordé cette autorisation avec l'option GRANT OPTION.

Les autorisations au niveau colonne sont prioritaires par rapport aux autorisations au niveau objet. Par exemple, si un refus est appliqué à un objet de base tel qu'une table, puis une autorisation est appliquée à l'une des colonnes de l'objet de base, le bénéficiaire de l'autorisation aura accès à la colonne malgré le refus sur l'objet de base. Cependant, pour garantir que les autorisations au niveau colonne sont présentes, ces dernières doivent être appliquées après les autorisations sur l'objet de base.

ms188338.note(fr-fr,SQL.90).gifRemarque :
Dans SQL Server 2005, cette incohérence au niveau de la hiérarchie des autorisations a été conservée pour des raisons de compatibilité descendante. Elle sera supprimée dans une version ultérieure.

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.

ms188338.Caution(fr-fr,SQL.90).gifAttention :
Le refus de l'autorisation CONTROL sur une base de données refuse implicitement l'autorisation CONNECT sur la base de données. Une entité de sécurité dont l'autorisation CONTROL est refusée sur une base de données ne peut pas se connecter à cette base de données. De même, le refus de l'autorisation CONTROL SERVER refuse implicitement l'autorisation CONNECT SQL sur le serveur. Une entité de sécurité dont l'autorisation CONTROL SERVER est refusée sur un serveur ne peut pas se connecter à ce serveur.

Autorisations

L'appelant (ou l'entité de sécurité spécifiée 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. Si vous utilisez l'option AS, l'entité de sécurité spécifiée doit être propriétaire de l'élément sécurisable auquel l'autorisation est refusée.

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. 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. Les détenteurs de l'autorisation CONTROL sur un schéma peuvent refuser une autorisation sur n'importe quel objet dans ce schéma. Si vous utilisez la clause AS, l'entité de sécurité spécifiée doit être propriétaire de l'élément sécurisable auquel les autorisations sont refusées.

Exemples

Pour connaître la syntaxe des éléments sécurisables, consultez les rubriques suivantes.

Rôle d'application

DENY – refus d'autorisations d'entité de sécurité de base de données (Transact-SQL)

Assembly

DENY - Autorisations sur un assembly (Transact-SQL)

Clé asymétrique

DENY - Autorisations de clé asymétrique (Transact-SQL)

Certificat

Autorisations de certificat DENY (Transact-SQL)

Contrat

Autorisations DENY dans Service Broker (Transact-SQL)

Base de données

DENY – refus d'autorisations de base de données (Transact-SQL)

Point de terminaison

DENY – refus d'autorisations de point de terminaison (Transact-SQL)

Catalogue de texte intégral

DENY - Autorisations sur un catalogue de texte intégral (Transact-SQL)

Fonction

DENY – refus d'autorisations d'objet (Transact-SQL)

Connexion

DENY – refus d'autorisations d'entité de sécurité de serveur (Transact-SQL)

Type de message

Autorisations DENY dans Service Broker (Transact-SQL)

Objet

DENY – refus d'autorisations d'objet (Transact-SQL)

File d'attente

DENY – refus d'autorisations d'objet (Transact-SQL)

Liaisons de service distant

Autorisations DENY dans Service Broker (Transact-SQL)

Rôle

DENY – refus d'autorisations d'entité de sécurité de base de données (Transact-SQL)

Itinéraire

Autorisations DENY dans Service Broker (Transact-SQL)

Schéma

DENY (Autorisations de schéma) (Transact-SQL)

Serveur

DENY – refus d'autorisations de serveur (Transact-SQL)

Service

Autorisations DENY dans Service Broker (Transact-SQL)

Procédure stockée

DENY – refus d'autorisations d'objet (Transact-SQL)

Clé symétrique

DENY – refus d'autorisations de clé symétrique (Transact-SQL)

Synonyme

DENY – refus d'autorisations d'objet (Transact-SQL)

Objets système

DENY – refus d'autorisations d'objet système (Transact-SQL)

Table

DENY – refus d'autorisations d'objet (Transact-SQL)

Type

DENY – refus d'autorisations de type (Transact-SQL)

Utilisateur

DENY – refus d'autorisations d'entité de sécurité de base de données (Transact-SQL)

Vue

DENY – refus d'autorisations d'objet (Transact-SQL)

Collection de schémas XML

DENY – refus d'autorisations de collection de schémas XML (Transact-SQL)

Voir aussi

Référence

DENY (Transact-SQL)
REVOKE (Transact-SQL)
sp_addgroup (Transact-SQL)
sp_addlogin (Transact-SQL)
sp_adduser (Transact-SQL)
sp_changegroup (Transact-SQL)
sp_changedbowner (Transact-SQL)
sp_dropgroup (Transact-SQL)
sp_dropuser (Transact-SQL)
sp_helpgroup (Transact-SQL)
sp_helprotect (Transact-SQL)
sp_helpuser (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005

Historique des modifications

Version Historique

12 décembre 2006

Nouveau contenu :
  • Ajout de contenu clarifiant la priorité des autorisations au niveau colonne par rapport aux autorisations au niveau objet.