sp_column_privileges (Transact-SQL)

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

Icône Lien de rubriqueConventions de syntaxe de 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 de type sysname, sans valeur par défaut. Les filtres de comparaison génériques ne sont pas 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 sysname. Sa valeur par défaut est NULL. Les filtres de comparaison génériques ne sont pas pris en charge. Si la valeur de table_owner n'est pas spécifiée, les règles définissant par défaut la visibilité des tables dans le système de gestion de base de données (SGBD) sous-jacent sont utilisées.

    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 la valeur de table_owner n'est pas spécifiée et que l'utilisateur actuel ne possède pas de table dont la valeur table_name est spécifiée, la procédure sp_column privileges 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. S'il en existe une, c'est cette table qui sera utilisée.

  • [ @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 SGBD, elle représente le nom (au sens 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 de type nvarchar(384), avec la valeur NULL par défaut. Si l'argument column n'est pas spécifié, toutes les colonnes sont retournées. Dans SQL Server, column représente le nom de colonne indiqué dans la table sys.columns. column peut comprendre des caractères génériques basés sur les modèles de comparaison 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 colonne

Type de données

Description

TABLE_QUALIFIER

sysname

Nom du qualificateur de la 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 doit toujours être identique à 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 va toujours inclure un utilisateur de la base de données figurant dans 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 grâce à des contraintes portant sur les tables.

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.

Notes

Avec SQL Server, les autorisations sont accordées par l'instruction GRANT et révoquées par l'instruction REVOKE.

Autorisations

Requiert une autorisation SELECT sur le schéma.

Exemple

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

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