Introduction aux utilisateurs de la liste PostgreSQL
Dans n’importe quelle base de données, nous devons créer et avoir plusieurs utilisateurs qui peuvent accéder à la base de données. Chaque utilisateur doit avoir certains privilèges d’accès et doit être autorisé, l’utilisateur. Par défaut, dans PostgreSQL, le serveur de base de données a un utilisateur par défaut nommé Postgres. C’est le superutilisateur qui dispose de tous les droits et privilèges accordés pour toutes les bases de données et tables. Il peut lui-même créer de nouveaux utilisateurs et leur attribuer des rôles, accorder et révoquer des autorisations à d’autres utilisateurs, etc. Souvent, le superutilisateur ou l’administrateur de base de données doit connaître tous les utilisateurs présents sur le serveur de base de données actuel. Dans cet article, nous allons apprendre comment répertorier tous les utilisateurs présents sur notre serveur de base de données actuel. Commençons par étudier où les données relatives à l’utilisateur sont stockées et manipulées dans la base de données.
Utilisateurs de la liste PostgreSQL
Voici les trois utilisateurs de la Liste différents:
Commencez Votre Cours Gratuit De Science Des Données
Hadoop, Science Des Données, Statistiques & autres
1. Données utilisateur dans PostgreSQL
Toutes les données relatives à l’utilisateur sont stockées dans la table nommée pg_user, qui appartient au schéma nommé pg_catalog. Cette table comprend toutes les informations telles que username, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil et useconfig. Username, usesysid et passwd sont le nom, l’identifiant et le mot de passe stockés dans le système de cryptage de hachage md5 de l’utilisateur. Simultanément, tous les autres paramètres sont des paramètres booléens qui spécifient si l’utilisateur a ce privilège, tels que usesuper, qui spécifie si cet utilisateur est un superutilisateur ou non. Si oui, il contient la valeur t qui signifie true sinon f qui signifie false. Voyons ce que tous les autres champs récupérés signifient en pratique.
- Usecreatedb : Ce champ nous indique si cet utilisateur particulier peut créer une nouvelle base de données et a le privilège de le faire.
- Userepl : Nous pouvons créer des réplications d’une seule table dans de nombreuses autres bases de données. Seul un utilisateur spécifique disposant de ce privilège peut le faire. Par conséquent, si l’utilisateur a le privilège de créer de nouvelles répliques, ce champ est défini sur true.
- Usebypassrls: Ce champ est défini sur true uniquement si l’utilisateur est autorisé à contourner le RLS
Nous verrons d’abord comment récupérer les informations relatives à l’utilisateur dans la table pg_user. Nous devrons construire notre requête de la manière suivante – Code
:
SELECT * FROM pg_catalog.pg_user;
Sortie:
Si vous souhaitez uniquement obtenir la liste des utilisateurs contenant ses noms, vous pouvez lancer la requête suivante.Code
:
SELECT usename FROM pg_catalog.pg_user;
Sortie:
2. L’utilisation de métacommandes
PostgreSQL nous fournit un utilitaire merveilleux nommé psql, où nous pouvons utiliser des métacommandes. Les métacommandes sont les utilitaires courts prêts à l’emploi disponibles, ce qui rend le travail d’administrateur de base de données très facile. Pour récupérer les données liées à l’utilisateur \, du est la méta-commande qui peut être utilisée. Pour cela, vous devrez utiliser l’invite de commande psql dans PostgreSQL. Déclenchons cette commande et voyons que c’est le résultat que nous obtenons: Code
:
\du
Sortie:
- Ici, le nom du rôle est le nom de l’utilisateur. Liste des rôles, c’est-à-dire attributs qui sont les rôles qu’un utilisateur particulier a pour lui-même. Superutilisateur, Créer un rôle, Créer une base de données, Réplication, Contourner les RLS sont des règles attribuées au superutilisateur, ce qui signifie que le superutilisateur peut créer les nouveaux rôles et utilisateurs, créer de nouvelles bases de données, effectuer des réplications des objets existants et contourner les RLS.Le champ
- » Membre de » spécifie si l’utilisateur est membre d’un groupe quelconque. Dans PostgreSQL, l’administrateur de base de données peut créer plusieurs groupes et ajouter différents utilisateurs à différents groupes, ce qui l’aide à gérer correctement les utilisateurs lors de la grille et de la révocation des autorisations. S’il existe de tels groupes et que cet utilisateur particulier appartient à un groupe particulier, le nom de ce groupe est affiché devant cet utilisateur dans le champ Membre de la colonne.
- Cette métaCommande déclenche en interne une requête sur la table pg_catalog.pg_user pour récupérer les informations utilisateur. Ici, nous obtenons le nom du rôle comme nom de l’utilisateur, et une liste d’attributs de rôles nous aide à savoir quels privilèges sont accordés à cet utilisateur particulier tandis qu’un membre du champ nous indique si l’utilisateur est membre d’un groupe particulier s’il est présent. La requête qui se déclenche en interne après l’utilisation de la métacommande \du est quelque peu similaire à l’instruction de requête ci-dessous:
Code:
SELECT u.usename AS "Role name",
CASE WHEN u.usesuper AND u.usecreatedb THEN CAST('Create DB, Superuser' AS pg_catalog.text)
WHEN u.usesuper THEN CAST('Superuser' AS pg_catalog.text) WHEN u.usecreatedb THEN CAST('Create DB' AS pg_catalog.text)
ELSE CAST('' AS pg_catalog.text) END AS "Attributes"
FROM pg_catalog.pg_user u ORDER BY 1;
3. En utilisant pg_shadow
Une autre façon d’obtenir la liste des utilisateurs est d’utiliser la table pg_shadow qui contient également des informations sur les utilisateurs du serveur PostgreSQL. Cette table est conservée pour la compatibilité descendante des versions de PostgreSQL antérieures à la version 8.1. Cette table stocke les rôles qui peuvent se connecter et marquer rolcanlogin comme 1 dans la table pg_authid. Pg_user est la vue créée sur la table de base pg_shadow table, qui est disponible publiquement. pg_shadow n’est accessible que par le superutilisateur. la vue pg_user contient le champ de mot de passe vide pour maintenir la sécurité. La table pg_ shadow contient les champs username, usesysid, usecreatedb, usesuper, userepl, usebypassrls, passwd, valuntil et useconfig pour tous les utilisateurs du serveur de base de données.Code
:
SELECT * FROM pg_shadow;
Sortie:
select usesysid as "Id of User", usename as "User Name",
usesuper as "Whether User Is SuperUser", passwd as "Md5 Encrypted Password", valuntil as "Expiry of Password"
from pg_shadow order by usename;
Sortie:
Conclusion
Dans le serveur de base de données PostgreSQL, nous pouvons récupérer les informations de l’utilisateur en récupérant les enregistrements de la table pg_user appartenant au schéma pg_catalog. Une autre façon consiste à utiliser la méta-commande \du, qui déclenche en interne la requête sur la table pg_user elle-même. En dehors de cela, il existe une autre table nommée pg_shadow, qui stocke des informations sur les utilisateurs et peut être utilisée pour répertorier tous les utilisateurs du serveur de base de données PostgreSQL. Notez que la portée de toutes ces méthodes est l’ensemble du serveur de base de données.
Articles recommandés
Ceci est un guide pour les utilisateurs de la liste PostgreSQL. Nous discutons ici des données utilisateur, de la métacommande utilisateur et de l’utilisateur pg_shadow avec des exemples à implémenter. Vous pouvez également consulter nos autres articles connexes pour en savoir plus –
- Recherche PostgreSQL
- Clé étrangère dans PostgreSQL
- Table PostgreSQL
- Requêtes PostgreSQL /Introduction/Exemples
- PostgreSQL REGEXP_MATCHES()
- Guide de l’expression régulière SQL