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_OWNER colonne . 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';