sp_table_privileges (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Retourne une liste d’autorisations de table (par INSERTexemple, , DELETE, UPDATESELECT, REFERENCES) pour la table ou les tables spécifiées.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

[ @table_name = ] N’table_name'

Table utilisée pour retourner des informations de catalogue. @table_name est nvarchar(384), sans valeur par défaut. La recherche de correspondance avec des caractères génériques est prise en charge.

[ @table_owner = ] N’table_owner'

Propriétaire de la table utilisée pour retourner les informations du catalogue. @table_owner est nvarchar(384), avec la valeur par défaut NULL. 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 de visibilité de table par défaut du SGBD sous-jacent s’appliquent.

Si l'utilisateur actuel est propriétaire d'une table portant le nom spécifié, les colonnes de cette table sont renvoyées. Si le propriétaire n’est pas spécifié et que l’utilisateur actuel ne possède pas de table portant le nom spécifié, cette procédure recherche une table avec le table_name spécifié 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 = ] N’table_qualifier'

Nom du qualificateur de table. @table_qualifier est sysname, avec la valeur par défaut NULL. Différents produits SGBD prennent en charge la dénomination des tables 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 les caractères de soulignement (_), de pourcentage (%) et de crochet ([ou]) sont interprétés comme des caractères génériques carte. Les valeurs valides sont 0 (la mise en correspondance des modèles est désactivée) et 1 (la mise en correspondance des modèles est activée). @fUsePattern est bit, avec la valeur par défaut 1.

Valeurs des codes de retour

Aucune

Jeu 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 être 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 d’utilisateur de la base de données qui a accordé des autorisations sur cette TABLE_NAME valeur à la liste GRANTEE. Dans SQL Server, cette colonne est toujours la même que la TABLE_OWNERcolonne . Ce champ retourne toujours une valeur. En outre, la colonne GRANTOR peut être le propriétaire de la base de données (TABLE_OWNER) ou un utilisateur auquel le propriétaire de la base de données a accordé l’autorisation à l’aide de la WITH GRANT OPTION clause dans l’instruction GRANT .
GRANTEE sysname Nom d’utilisateur de la base de données qui a reçu des autorisations sur cela TABLE_NAME par la liste GRANTOR. Dans SQL Server, cette colonne inclut toujours un utilisateur de base de données à partir de la sys.database_principalssystem vue. 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 des colonnes.

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

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

DELETE = GRANTEE peut supprimer des lignes de la table.

REFERENCES = GRANTEE peut référencer une colonne dans une table étrangère dans une relation clé primaire/clé étrangère. Dans SQL Server, les relations de clé primaire/clé étrangère sont définies avec des contraintes de table.

L’étendue de l’action GRANTEE donnée par un privilège de table donné dépend de la source de données. Par exemple, le UPDATE privilège peut autoriser la GRANTEE mise à jour de toutes les colonnes d’une table sur une source de données et uniquement les colonnes pour lesquelles le GRANTOR privilège est UPDATE associé à une autre source de données.
IS_GRANTABLE sysname Indique si l’autorisation GRANTEE est autorisée ou non à accorder des autorisations à d’autres utilisateurs (souvent appelée « octroi avec octroi »). Peut être YES, NO ou NULL. Une valeur inconnue (ou NULL) fait référence à une source de données pour laquelle « accorder avec octroi » n’est pas applicable.

Notes

La sp_table_privileges procédure stockée est équivalente à SQLTablePrivileges ODBC. Les résultats retournés sont classés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAMEet PRIVILEGE.

Autorisations

Nécessite l’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 AdventureWorks2022;
GO
EXEC sp_table_privileges @table_name = 'Contact%';