30.7. column_privileges

La vue column_privileges identifie tous les privilèges octroyés sur les colonnes à l'utilisateur courant ou par l'utilisateur courant. Il existe une ligne pour chaque combinaison de colonne, de personne donnant des droits et de personne recevant des droits. Les privilèges donnés aux groupes sont identifiés dans la vue role_column_grants.

Dans PostgreSQL, vous pouvez seulement donner des privilèges sur des tables entières, pas sur des colonnes individuelles. Du coup, la vue contient les mêmes informations que table_privileges, avec une représentation d'une ligne pour chaque colonne dans chaque table appropriée mais cela couvre seulement les types privilèges où la granularité des colonnes est possible : SELECT, INSERT, UPDATE, REFERENCES. Si vous souhaitez que vos applications puissent remplir les développements futurs possibles, le bon choix est d'utiliser cette vue en tant que table_privileges si un des types privilège est concerné.

Tableau 30-5. Colonnes column_privileges

NomType de donnéesDescription
grantorsql_identifierNom de l'utilisateur ayant donné ce privilège
granteesql_identifierNom de l'utilisateur et du groupe auxquels les privilèges reviendront
table_catalogsql_identifierNom de la base de données contenant la table ayant les colonnes (toujours la base de données courante)
table_schemasql_identifierNom du schéma contenant la table et les colonnes
table_namesql_identifierNom de la table contenant la colonne
column_namesql_identifierNom de la colonne
privilege_typecharacter_data Type de privilège : SELECT, INSERT, UPDATE ou REFERENCES
is_grantablecharacter_dataYES si le privilège peut être accordé, NO sinon

Notez que la colonne grantee ne fait aucune distinction entre utilisateurs et groupes. Si vous avez des utilisateurs et des groupes du même nom, il n'y a malheureusement aucun moyen de les distinguer. Une prochaine version de PostgreSQL pourrait empêcher d'avoir des utilisateurs et des groupes de même nom.