Partager 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 rubriqueConventions 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'

Indique la table utilisée pour retourner les informations de catalogue. L'argument table_name est du type nvarchar(384), sans valeur par défaut. Le filtrage par caractères génériques est pris en charge.

[ @table_owner =] 'table_owner'

Propriétaire de la table utilisée pour retourner les informations de catalogue. L'argument table_ownerest du type nvarchar(384), avec NULL comme valeur par défaut. 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, dans SQL Server 2005, l'utilisateur actuel est propriétaire d'une table portant le nom spécifié, les colonnes de cette table sont retournées. Si owner n'est pas spécifié et que l'utilisateur actuel ne possède pas de table du nom name spécifié, cette procédure recherche une table portant le nom de table table_name spécifié et appartenant au 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. L'argument table_qualifier est du type sysname, avec NULL comme valeur par défaut. Divers produits de SGBD prennent en charge la dénomination 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 valides sont 0 (critères spéciaux désactivés) et 1 (critères spéciaux activés). L'argument fUsePattern est du type bit, avec 1 comme valeur par défaut.

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 à 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 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 également un utilisateur de base de données provenant de la vue système sys.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 lorsqu'il rajoute 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 accordé au GRANTEE par un privilège de table donné 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.

Valeurs des codes retournés

Aucune

Exemple

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

USE AdventureWorks;
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)

Aide et Informations

Assistance sur SQL Server 2005