sp_column_privileges (Transact-SQL)

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

Fournit des informations sur les privilèges relatifs aux colonnes d'une table dans l'environnement actuel.

Conventions de la syntaxe Transact-SQL

Syntaxe

  
sp_column_privileges [ @table_name = ] 'table_name'   
     [ , [ @table_owner = ] 'table_owner' ]   
     [ , [ @table_qualifier = ] 'table_qualifier' ]   
     [ , [ @column_name = ] 'column' ]  

Arguments

[ @table_name= ] 'table_name'
Table utilisée pour retourner les informations de catalogue. table_name est sysname, sans valeur par défaut. La recherche de correspondance avec des caractères génériques n'est pas prise en charge.

[ @table_owner= ] 'table_owner'
Propriétaire de la table utilisée pour renvoyer des informations de catalogue. table_owner est sysname, avec la valeur par défaut NULL. La recherche de correspondance avec des caractères génériques n'est pas prise en charge. Si table_owner n’est pas spécifié, les règles de visibilité de table par défaut du système de gestion de base de données (SGBD) sous-jacent s’appliquent.

Si l'utilisateur actuel possède une table ayant le nom spécifié, ce sont les colonnes de cette table qui sont retournées. Si table_owner n’est pas spécifié et que l’utilisateur actuel n’est pas propriétaire d’une table avec le table_name spécifié, sp_column privilèges recherche une table avec le table_name spécifié appartenant au propriétaire de la base de données. S'il en existe une, les colonnes de cette table sont retournées.

[ @table_qualifier= ] 'table_qualifier'
Nom du qualificateur de la table. table_qualifier est sysname, avec la valeur par défaut NULL. Différents produits SGBD prennent en charge le nommage en trois parties pour les tables (qualificateur.propriétaire.nom). 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.

[ @column_name= ] 'column'
Colonne unique utilisée lorsqu'une seule colonne d'informations de catalogue est obtenue. column est nvarchar(384), avec la valeur par défaut NULL. Si la colonne n’est pas spécifiée, toutes les colonnes sont retournées. Dans SQL Server, column représente le nom de colonne tel qu’indiqué dans la table sys.columns. la colonne peut inclure des caractères génériques à l’aide de modèles de correspondance de caractères génériques du SGBD sous-jacent. Pour assurer une interopérabilité maximale, le client de la passerelle ne doit utiliser que les modèles de comparaison standard ISO (caractères génériques % et _).

Jeux de résultats

sp_column_privileges est équivalent à SQLColumnPrivileges dans ODBC. Les résultats obtenus sont triés par TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, COLUMN_NAME et PRIVILEGE.

Nom de la colonne Type de données Description
TABLE_QUALIFIER sysname Nom du qualificateur de table. 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.
COLUMN_NAME sysname Nom de colonne, pour chaque colonne de la TABLE_NAME retournée. Ce champ retourne toujours une valeur.
GRANTOR sysname Nom de l'utilisateur de base de données qui a accordé les autorisations sur cette COLUMN_NAME au GRANTEE de la liste. Dans SQL Server, cette colonne est toujours identique à la TABLE_OWNER. Ce champ retourne toujours une valeur.

La colonne GRANTOR peut être soit le propriétaire de la table (TABLE_OWNER), soit un utilisateur auquel le propriétaire de la base de données accorde 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 auquel des autorisations ont été accordées sur la colonne COLUMN_NAME par l'utilisateur GRANTOR mentionné. Dans SQL Server, cette colonne inclut toujours un utilisateur de base de données de la table sysusers. Ce champ retourne toujours une valeur.
PRIVILEGE varchar(32) L'une des autorisations sur les colonnes disponibles. Les autorisations relatives aux colonnes peuvent prendre l'une des valeurs suivantes (ou d'autres valeurs prises en charge par la source des données si leur implémentation est définie) :

SELECT = GRANTEE permet de récupérer des données pour les colonnes.

INSERT = GRANTEE peut fournir des données pour cette colonne lorsque de nouvelles lignes sont ajoutées à la table par le GRANTEE.

UPDATE = GRANTEE peut modifier des données existantes dans la colonne.

REFERENCES = GRANTEE peut faire référence à une colonne d'une table étrangère dans une relation clé primaire/clé étrangère. Les relations clé primaire/clé étrangère sont définies à l’aide de contraintes de table.
IS_GRANTABLE varchar(3) Indique si le GRANTEE (bénéficiaire) est autorisé à accorder des autorisations à d'autres utilisateurs. Il y est souvent fait référence sous le terme de « droit d'accorder ». Les valeurs possibles sont YES, NO ou NULL. Une valeur inconnue, ou NULL, fait référence à une source de données où la « transmission des droits » ne s'applique pas.

Remarques

Avec SQL Server, les autorisations sont accordées avec l’instruction GRANT et supprimées par l’instruction REVOKE.

Autorisations

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

Exemples

L'exemple suivant retourne les informations sur les privilèges d'une colonne spécifique.

USE AdventureWorks2022;  
GO  
EXEC sp_column_privileges @table_name = 'Employee'   
    ,@table_owner = 'HumanResources'  
    ,@table_qualifier = 'AdventureWorks2022'  
    ,@column_name = 'SalariedFlag';  

Voir aussi

GRANT (Transact-SQL)
REVOKE (Transact-SQL)
Procédures stockées système (Transact-SQL)