sp_table_privileges (Transact-SQL)
S’applique à : SQL Server
Azure SQL Database
Azure SQL Managed Instance
Retourne une liste d’autorisations de table (par INSERT
exemple, , DELETE
, UPDATE
SELECT
, 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. 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_OWNER colonne . 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_NAME
et 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%';