Share via


sp_table_privileges (Transact-SQL)

Retourne la liste des autorisations de table (telles que INSERT, DELETE, UPDATE, SELECT, REFERENCES) pour la ou les tables spécifiées.

Icône Lien de rubrique Conventions de la syntaxe de Transact-SQL

Syntaxe

sp_table_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ] 
     [ , [ @table_qualifier = ] 'table_qualifier' ] 
     [ , [ @fUsePattern = ] 'fUsePattern' ]

Arguments

  • [ @table\_name= ] 'table_name'
    Table utilisée pour retourner les informations de catalogue. table_name est de type nvarchar(384) et n'a pas de valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge.

  • [ @table\_owner= ] 'table_owner'
    Propriétaire de la table utilisée pour renvoyer des informations de catalogue. table_ownerest de type nvarchar(384), avec NULL comme valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge. Si le propriétaire n'est pas spécifié, les règles par défaut définissant la visibilité des tables du SGBD sous-jacent sont utilisées.

    Si l'utilisateur actuel est propriétaire d'une table portant le nom spécifié, les colonnes de cette table sont renvoyées. Si la valeur de owner n'est pas spécifiée et que l'utilisateur actuel ne possède pas de table dont la valeur name est spécifiée, cette procédure recherche une table, avec la valeur table_name spécifiée, qui soit possédée par le propriétaire de la base de données. Si la recherche de la table aboutit, ce sont les colonnes de cette dernière qui sont retournées.

  • [ @table\_qualifier= ] 'table_qualifier'
    Nom du qualificateur de la table. table_qualifier est de type sysname, avec NULL comme valeur par défaut. Certains produits SGBD prennent en charge les noms de table en trois parties (qualifier.owner.name). Dans SQL Server, cette colonne représente le nom de la base de données. Dans d'autres produits, elle représente le nom du serveur de l'environnement de base de données de la table.

  • [ @fUsePattern= ] 'fUsePattern'
    Détermine si le signe de soulignement (_), le signe de pourcentage (%) et les caractères entre crochets ([ or ]) sont interprétés comme des caractères génériques. Les valeurs valides sont 0 (critères spéciaux désactivés) et 1 (critères spéciaux activés). fUsePattern est de type bit, avec 1 comme valeur par défaut.

Valeurs des codes de retour

Aucune

Jeux de résultats

Nom de la colonne

Type de données

Description

TABLE_QUALIFIER

sysname

Nom du qualificateur de la table. Dans SQL Server, cette colonne représente le nom de la base de données. Ce champ peut contenir la valeur NULL.

TABLE_OWNER

sysname

Nom du propriétaire de la table. Ce champ retourne toujours une valeur.

TABLE_NAME

sysname

Nom de la table. Ce champ retourne toujours une valeur.

GRANTOR

sysname

Nom de l'utilisateur de la base de données qui a accordé des autorisations sur la table TABLE_NAME à l'utilisateur GRANTEE répertorié. Dans SQL Server, cette colonne est toujours identique à TABLE_OWNER. Ce champ retourne toujours une valeur. D'autre part, la colonne GRANTOR représente soit le propriétaire de la base de données (TABLE_OWNER), soit un utilisateur auquel le propriétaire de la base de données a accordé des autorisations à l'aide de la clause WITH GRANT OPTION de l'instruction GRANT.

GRANTEE

sysname

Nom de l'utilisateur de base de données qui a obtenu les autorisations nécessaires sur la table TABLE_NAME, accordées par l'utilisateur GRANTOR répertorié. Dans SQL Server, cette colonne va toujours inclure un utilisateur de base de données figurant dans la vue système sys.database_principals. Ce champ retourne toujours une valeur.

PRIVILEGE

sysname

L'une des autorisations disponibles sur la table. Les autorisations sur les tables peuvent prendre l'une des valeurs suivantes (ou d'autres valeurs prises en charge par la source de données si leur mise en œuvre est définie) :

SELECT = GRANTEE peut récupérer des données pour une ou plusieurs colonnes.

INSERT = GRANTEE peut fournir des données à une ou plusieurs colonnes en rajoutant de nouvelles lignes.

UPDATE = GRANTEE peut modifier des données existantes dans une ou plusieurs colonnes.

DELETE = GRANTEE peut supprimer des lignes de la table.

REFERENCES = GRANTEE peut faire référence à une colonne d'une table source contenant une clé étrangère dans une relation clé primaire/clé étrangère. Dans SQL Server, les relations clé primaire/clé étrangère sont définies grâce à des contraintes portant sur les tables.

Le rayon d'action qu'un privilège de table particulier accorde à l'utilisateur GRANTEE dépend de la source de données. Par exemple, le privilège UPDATE peut autoriser l'utilisateur GRANTEE à mettre à jour toutes les colonnes d'une table pour une source de données, et uniquement les colonnes pour lesquelles l'utilisateur GRANTOR possède le privilège UPDATE pour une autre source de données.

IS_GRANTABLE

sysname

Indique si l'utilisateur GRANTEE est autorisé ou non à accorder des autorisations à d'autres utilisateurs. Il y est souvent fait référence sous le terme « transmission des droits ». Les valeurs possibles sont YES, NO ou NULL. Une valeur inconnue (ou NULL) fait référence à une source de données à laquelle la « transmission des droits » ne s'applique pas.

Notes

La procédure stockée sp_table_privileges est équivalente à SQLTablePrivileges dans ODBC. Les résultats obtenus sont triés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME et PRIVILEGE.

Autorisations

Nécessite une autorisation SELECT sur le schéma.

Exemples

Cet exemple retourne des informations de privilège sur toutes les tables dont le nom commence par le mot Contact.

USE AdventureWorks2012;
GO
EXEC sp_table_privileges 
   @table_name = 'Contact%';

Voir aussi

Référence

Procédures stockées de catalogue (Transact-SQL)

Procédures stockées système (Transact-SQL)