DENY Autorisations serveur (Transact-SQL)

S’applique à :SQL ServerAzure SQL Managed Instance

Permet de refuser des autorisations sur un serveur.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

autorisation

Spécifie une autorisation qui peut être refusée sur un serveur. Pour obtenir la liste des autorisations, reportez-vous à Remarques.

CASCADE

Indique que l'autorisation est refusée au principal spécifié et à tous les autres principaux auxquels le principal a accordé cette autorisation. Obligatoire lorsque le principal a la permission avec GRANT OPTION.

À <server_principal>

Spécifie le principal pour lequel l'autorisation doit être refusée.

EN <grantor_principal>

Spécifie le principal à partir duquel le principal qui exécute cette requête dérive son droit de refuser l'autorisation.

Utilisez la AS clause principale pour indiquer que le mandant enregistré comme déniant l’autorisation doit être un mandant autre que la personne qui a signé la déclaration. Par exemple, supposons que l’utilisatrice Mary a principal_id 12 ans et que l’utilisateur Raul est le principal 15. Mary exécute DENY SELECT ON OBJECT::X TO Steven WITH GRANT OPTION AS Raul; maintenant le sys.database_permissions tableau indiquera que le grantor_principal_id de l’instruction de refus était 15 (Raul) alors que l’instruction a en réalité été exécutée par l’utilisateur 13 (Mary).

SQL_Server_login

Spécifie une connexion SQL Server.

SQL_Server_login_mapped_to_Windows_login

Spécifie une connexion SQL Server mappée sur une connexion Windows.

SQL_Server_login_mapped_to_Windows_group

Spécifie une connexion SQL Server mappée sur un groupe Windows.

SQL_Server_login_mapped_to_certificate

Spécifie un compte de connexion SQL Server mappé à un certificat.

SQL_Server_login_mapped_to_asymmetric_key

Spécifie un compte de connexion SQL Server mappé à une clé asymétrique.

server_role

Spécifie un rôle de serveur.

Notes

Les permissions à l’échelle du serveur ne peuvent être refusées que lorsque la base de données actuelle est master.

Les informations sur les autorisations de serveur peuvent être consultées dans la vue de catalogue sys.server_permissions, tandis que les informations sur les principaux de serveur peuvent être consultées dans la vue de catalogue sys.server_principals. Des informations sur l’appartenance des rôles de serveur peuvent être consultées dans la vue de catalogue sys.server_role_members.

Dans Azure SQL Database, GRANT, REVOKE, et DENY des permissions au niveau serveur ne sont pas prises en charge.

Un serveur représente le plus haut niveau de la hiérarchie des autorisations. Les autorisations les plus spécifiques et limitées qu'il est possible de refuser sur un serveur sont répertoriées dans le tableau ci-dessous.

Autorisation de serveur Déduite d'une autorisation de serveur
ADMINISTER BULK OPERATIONS CONTROL SERVER
ALTER ANY AVAILABILITY GROUP

S'applique à: SQL Server (SQL Server 2012 (11.x) via la version actuelle).
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

S'applique à: SQL Server (SQL Server 2012 (11.x) via la version actuelle).
CONTROL SERVER
ALTER RESOURCES CONTROL SERVER
ALTER SERVER STATE CONTROL SERVER
ALTER SETTINGS CONTROL SERVER
ALTER TRACE CONTROL SERVER
AUTHENTICATE SERVER CONTROL SERVER
CONNECTER N’IMPORTE QUEL DATABASE

S'applique à: SQL Server (SQL Server 2014 (12.x) via la version actuelle).
CONTROL SERVER
CONNECT SQL CONTROL SERVER
CONTROL SERVER CONTROL SERVER
CREATE ANY DATABASE ALTER ANY DATABASE
CREATE AVAILABILITY GROUP

S'applique à: SQL Server (SQL Server 2012 (11.x) via la version actuelle).
MODIFIER TOUT AVAILABILITY GROUP
CREATE DDL EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
CREATE ENDPOINT ALTER ANY ENDPOINT
CREATE SERVER ROLE

S'applique à: SQL Server (SQL Server 2012 (11.x) via la version actuelle).
ALTER ANY SERVER ROLE
CREATE TRACE EVENT NOTIFICATION ALTER ANY EVENT NOTIFICATION
EXTERNAL ACCESS ASSEMBLY CONTROL SERVER
IMPERSONATE ANY LOGIN

S'applique à: SQL Server (SQL Server 2014 (12.x) via la version actuelle).
CONTROL SERVER
SELECT ALL USER SECURABLES

S'applique à: SQL Server (SQL Server 2014 (12.x) via la version actuelle).
CONTROL SERVER
SHUTDOWN CONTROL SERVER
UNSAFE ASSEMBLY CONTROL SERVER
VIEW ANY DATABASE VIEW ANY DEFINITION
VIEW ANY DEFINITION CONTROL SERVER
VIEW ANY PERFORMANCE DEFINITION

S’applique à : SQL Server 2022 (16.x) et versions ultérieures.
VIEW ANY DEFINITION
VIEW ANY SECURITY DEFINITION

S’applique à : SQL Server 2022 (16.x) et versions ultérieures.
VIEW ANY DEFINITION
VIEW SERVER PERFORMANCE STATE

S’applique à : SQL Server 2022 (16.x) et versions ultérieures.
VIEW SERVER STATE
VIEW SERVER SECURITY STATE

S’applique à : SQL Server 2022 (16.x) et versions ultérieures.
VIEW SERVER STATE
VIEW SERVER STATE ALTER SERVER STATE

Les trois autorisations de serveur suivantes ont été ajoutées dans SQL Server 2014 (12.x).

  • CONNECT ANY DATABASE autorisation

    • Accorder CONNECT ANY DATABASE à un accès qui doit se connecter à toutes les bases de données existantes et à toute nouvelle base de données qui pourrait être créée à l’avenir. N'accorde pas d'autorisation dans une base de données au-delà de la connexion. Combinez avec SELECT ALL USER SECURABLES ou VIEW SERVER STATE pour permettre à un processus d’audit de visualiser toutes les données ou tous les états de la base de données sur l’instance de SQL Server.
  • IMPERSONATE ANY LOGIN autorisation

    • Lorsque cette autorisation est accordée, elle permet à un processus de niveau intermédiaire d'emprunter l'identité du compte des clients qui se connectent, à mesure qu'il se connecte aux bases de données. Si cette autorisation est refusée, une connexion dotée de privilèges élevés peut être bloquée à partir de l'emprunt d'identité d'autres connexions. Par exemple, une connexion avec CONTROL SERVER autorisation peut être bloquée pour l’usurpation d’identité d’autres connexions.
  • SELECT ALL USER SECURABLES autorisation

    • Lorsque cette autorisation est accordée, une connexion telle qu'un auditeur peut afficher les données de toutes les bases de données auxquelles l'utilisateur se connecte. Lorsqu’il est refusé, empêche l’accès aux objets sauf s’ils se trouvent dans le sys schéma.

Autorisations

Requiert l'autorisation CONTROL SERVER ou la propriété de l'élément sécurisable. Si vous utilisez la clause AS, le principal spécifié doit posséder l'élément sécurisable sur lequel les autorisations doivent être refusées.

Exemples

R. Refuser la permission SQL de CONNECT à une connexion SQL Server et aux principes auxquels la connexion a été réaccordée

Dans l'exemple ci-dessous, l'autorisation CONNECT SQL est refusée à la connexion SQL ServerTest et aux principaux auxquels elle a accordé l'autorisation.

USE master;  
DENY CONNECT SQL TO Test CASCADE;  
GO  

B. Refuser CREATE ENDPOINT l’autorisation d’une connexion SQL Server en utilisant l’option AS

Dans l'exemple ci-dessous, l'autorisation CREATE ENDPOINT est refusée à l'utilisateur Test1. L'exemple utilise l'option AS pour spécifier Test2 comme principal à partir duquel le principal en charge dérive l'autorité d'agir ainsi.

USE master;  
DENY CREATE ENDPOINT TO Test1 AS Test2;  
GO