sp_column_privileges (Transact-SQL)
Fournit des informations sur les privilèges relatifs aux colonnes d'une table dans l'environnement actuel.
Conventions de la 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 et n'a pas de 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 de type sysname, avec NULL comme valeur par défaut. La recherche de correspondance avec des caractères génériques n'est pas prise 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 table_owner n'est pas spécifiée et que l'utilisateur actuel ne possède pas de table dont la valeur table_name, sp_column privileges est spécifiée, la procédure recherche une table, avec la valeur table_name spécifiée, qui est possédée par le 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 de type sysname, avec NULL comme valeur par défaut. Divers produits SGBD 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.[ @column\_name= ] 'column'
Colonne unique utilisée lorsqu'une seule colonne d'informations de catalogue est obtenue. column est de type nvarchar(384), avec NULL comme valeur 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 tel qu'il figure 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 la 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 chacun des TABLE_NAME retournés. Ce champ retourne toujours une valeur. |
GRANTOR |
sysname |
Nom de l'utilisateur de base de données qui a accordé les autorisations sur ce COLUMN_NAME au GRANTEE mentionné. Dans SQL Server, cette colonne est toujours identique à TABLE_OWNER. Ce champ retourne toujours une valeur. La colonne GRANTOR peut être soit le propriétaire de la base de données 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 auquel des autorisations ont été accordées sur ce COLUMN_NAME par le GRANTOR mentionné. Dans SQL Server, cette colonne inclut toujours 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 GRANTEE. UPDATE = GRANTEE peut modifier des données existantes dans la colonne. REFERENCES = GRANTEE peut faire référence à une colonne d'une table source contenant une clé é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 GRANTEE est autorisé à accorder des autorisations à d'autres utilisateurs. Il y est souvent fait référence sous le terme de « 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 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 AdventureWorks2012;
GO
EXEC sp_column_privileges @table_name = 'Employee'
,@table_owner = 'HumanResources'
,@table_qualifier = 'AdventureWorks2012'
,@column_name = 'SalariedFlag';