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 rubriqueConventions de 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), sans valeur par défaut. Le filtrage par caractères génériques est pris en charge.

  • [ @table_owner = ] 'table_owner'
    Nom du propriétaire de la table utilisée pour renvoyer des informations de catalogue. table_owner est de type nvarchar(384). Sa valeur par défaut est NULL. Le filtrage par caractères génériques est pris en charge. Si le propriétaire n'est pas spécifié, les règles par défaut définissant la visibilité des tables du SGDB 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. Sa valeur par défaut est NULL. Divers produits SGDB 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 certains 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 qui sont acceptées par l'expression sont 0 (la correspondance de modèle est désactivée) et 1 (la correspondance de modèle est activée). fUsePattern est de type bit, avec 1 comme valeur par défaut.

Valeurs des codes de retour

Aucune

Jeux de résultats

Nom de 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 au GRANTEE répertorié. Dans SQL Server, cette colonne doit toujours être identique à TABLE_OWNER. Ce champ retourne toujours une valeur. D'autre part, la colonne GRANTOR représente soit le propriétaire de la table 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 la base de données qui a reçu des autorisations sur la table TABLE_NAME de l'utilisateur GRANTEE répertorié. Dans SQL Server, cette colonne inclut toujours un utilisateur de base de données provenant de la vue systèmesys.database_principals. Ce champ retourne toujours une valeur.

PRIVILEGE

sysname

Une des autorisations disponibles pour 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 extraire 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 é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 le GRANTEE à mettre à jour toutes les colonnes d'une table pour une source de données, et uniquement les colonnes pour lesquelles le GRANTOR possède le privilège UPDATE pour une autre source de données.

IS_GRANTABLE

sysname

Indique si le 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 retournés sont classés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME et PRIVILEGE.

Autorisations

Nécessite l'autorisation SELECT sur le schéma.

Exemple

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

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