Comment vérifier les privilèges de Postgres pour l'utilisateur?

Comment vérifier les privilèges de Postgres pour l'utilisateur?
Dans SQL, un privilège fait référence à une autorisation spécifique ou à la droite à performer dans les bases de données du serveur. Par exemple, dans PostgreSQL, les privilèges peuvent inclure le privilège de se connecter au serveur pour effectuer diverses actions.

Ce tutoriel rapide vous montrera comment obtenir des informations privilégiées sur un utilisateur disponible sur le serveur.

Types de privilèges

Avant de passer à la question PostgreSQL pour des informations sur les utilisateurs, mettons en évidence les diverses autorisations et ce qu'ils permettent à l'utilisateur de leur attribuer de faire.

Les types de privilèges dans les SGBD PostgreSQL sont:

  • SÉLECTIONNER - Le privilège sélectionné permet à un utilisateur de sélectionner des valeurs dans toutes les colonnes de n'importe quel objet de type table. Les objets en forme de table dans PostgreSQL incluent une table, une vue, une vue matérialisée, etc.
  • INSÉRER - L'autorisation d'insertion permet à l'utilisateur d'insérer de nouvelles lignes dans une table. Vous pouvez également accorder le privilège d'insertion sur une colonne spécifique permettant d'insérer des lignes dans uniquement les colonnes définies.
  • MISE À JOUR - Ce type de privilège permet à l'utilisateur de set de mettre à jour les lignes dans toutes les colonnes d'une table ou d'une vue. Semblable à l'autorisation d'insertion, vous pouvez le définir sur une colonne spécifique pour permettre à l'utilisateur de mettre à jour les lignes d'une ou des colonnes spécifiques uniquement.
  • SUPPRIMER - Cela permettra à un utilisateur de supprimer / supprimer une ligne de tout objet de type table modifiable. Cela nécessite que l'utilisateur ait l'autorisation de sélection car elle doit référencer les colonnes de table pour vérifier les lignes à supprimer.
  • CONNECTER - L'autorisation Connect permet à un utilisateur de se connecter au serveur. Ce type d'autorisation est vérifié au démarrage de la connexion par le PG_HBA.fichier de confr.
  • CRÉER - Le privilège Créer permet à un utilisateur de créer soit un nouveau schéma, une table dans une base de données définie. Il peut également permettre à un utilisateur d'installer des extensions sur une base de données. Si cette autorisation est révoquée sur un utilisateur, elle ne supprime pas tous les objets existants avant le point de terminaison.
  • TRONQUER - Comme son nom l'indique, il accorde à l'utilisateur l'autorisation de tronquer une table.
  • DÉCLENCHER - Cela permet à un utilisateur de créer un déclencheur sur des objets de type table.
  • TEMPORAIRE - Permet aux utilisateurs de créer une table temporaire lorsqu'elle est connectée à une base de données définie.
  • EXÉCUTER - Exécuter l'autorisation permet à un utilisateur d'appeler des fonctions ou des procédures. C'est le seul type d'autorisation qui peut s'appliquer aux fonctions / procédures.
  • LES RÉFÉRENCES - Permet à un utilisateur de créer des contraintes de clés étrangères qui font référence à un tableau ou à des colonnes.

Comment montrer les privilèges des utilisateurs

Listing des privilèges des utilisateurs est simple. Dans PSQL, utilisez la requête \ DU + comme indiqué dans la sortie ci-dessous:

$ postgres = # \ du+

La sortie ci-dessus montre les utilisateurs postgres et temporaires avec leurs autorisations correspondantes.

Une autre façon de le faire consiste à utiliser le schéma d'information_schema et à interroger la table TABLE_PRIVILEGES comme:

$ SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES LIMIT 5;

La requête ci-dessus affichera des informations détaillées sur les privilèges des utilisateurs sur les bases de données ainsi que sur les tables.

Pour filtrer pour un utilisateur spécifique, vous pouvez ajouter la clause Where:

$ SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES où GRANEEE = 'Postgres' Limit 5;

Conclusion

Ce court tutoriel a discuté des moyens de récupérer des informations privilégiées sur les utilisateurs d'un serveur PostgreSQL.