32.7. column_privileges

La vue column_privileges identifie tous les droits 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 droits donnés aux groupes sont identifiés dans la vue role_column_grants.

Dans PostgreSQL, vous pouvez seulement donner des droits 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 droits 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 droit est concerné.

Tableau 32-5. Colonnes de column_privileges

NomType de donnéesDescription
grantorsql_identifierNom de l'utilisateur ayant donné ce droit
granteesql_identifierNom de l'utilisateur et du groupe auxquels les droits 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 droit : SELECT, INSERT, UPDATE ou REFERENCES
is_grantablecharacter_dataYES si le droit 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.