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.
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 retournés
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 à 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.
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%';