Partager via


sp_column_privileges (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure 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 = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

Table utilisée pour retourner des informations de catalogue. @table_name est sysname, sans valeur par défaut. La correspondance des modèles génériques n’est pas prise en charge.

[ @table_owner = ] N’table_owner'

Propriétaire de la table utilisée pour retourner les informations du catalogue. @table_owner est sysname, avec la valeur par défaut NULL. La correspondance des modèles 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 sous-jacent (SGBD) 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 ne possède pas de table avec le @table_name spécifié, sp_column les privilèges recherchent 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 = ] 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 le nommage en trois parties pour les tables (<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.

[ @column_name = ] N’column_name'

Colonne unique utilisée quand une seule colonne d’informations de catalogue est obtenue. @column_name est nvarchar(384), avec la valeur par défaut NULL. Si @column_name n’est pas spécifié, toutes les colonnes sont retournées. Dans SQL Server, @column_name représente le nom de colonne comme indiqué dans la sys.columns table. @column_name pouvez 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 une interopérabilité maximale, le client de passerelle doit supposer uniquement la correspondance de modèle standard ISO (caractères % génériques et _ caractères génériques).

Jeu de résultats

sp_column_privileges équivaut à SQLColumnPrivileges ODBC. Les résultats retournés sont classé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 ê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.
COLUMN_NAME sysname Nom de colonne, pour chaque colonne du TABLE_NAME retour. Ce champ retourne toujours une valeur.
GRANTOR sysname Nom d’utilisateur de la base de données qui a reçu des autorisations sur celle-ci COLUMN_NAME sur la liste GRANTEE. Dans SQL Server, cette colonne est toujours la même que la TABLE_OWNERcolonne . Ce champ retourne toujours une valeur.

La GRANTOR colonne 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é des autorisations à 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 COLUMN_NAME par la liste GRANTOR. Dans SQL Server, cette colonne inclut toujours un utilisateur de base de données à partir de la sysusers table. 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 peut récupérer des données pour les colonnes.
INSERT = GRANTEE peut fournir des données pour cette colonne lorsque de nouvelles lignes sont insérées (par le GRANTEE) dans la table.
UPDATE = GRANTEE peut modifier les données existantes dans la colonne.
REFERENCES = GRANTEE peut référencer une colonne dans une table étrangère dans une relation clé primaire/clé étrangère. Les relations de clé primaire/clé étrangère sont définies à l’aide de contraintes de table.
IS_GRANTABLE varchar(3) Indique si l’autorisation GRANTEE est autorisée à accorder des autorisations à d’autres utilisateurs (souvent appelée autorisation « accorder 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

Avec SQL Server, les autorisations sont accordées à l’instruction GRANT et retiré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';