Maison >développement back-end >Tutoriel Python >Comment créer une base de données et toujours s'y connecter dans PostgreSQL sans avoir besoin d'un accès superutilisateur

Comment créer une base de données et toujours s'y connecter dans PostgreSQL sans avoir besoin d'un accès superutilisateur

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-27 04:48:20705parcourir

How to Create a Database and Always Connect to It in PostgreSQL Without Needing Superuser Access

Dans ce guide, nous passerons en revue les étapes pour créer une base de données dans PostgreSQL en tant que non-superutilisateur, attribuer les privilèges nécessaires et garantir que vous pouvez connectez-vous toujours à votre base de données nouvellement créée sans avoir besoin de vous connecter en tant que superutilisateur.

Ceci est utile pour les développeurs ou les utilisateurs qui souhaitent gérer leurs propres bases de données dans PostgreSQL sans avoir besoin d'autorisations administratives pour chaque action.

Ce que nous réaliserons :

1.Créer une nouvelle base de données (tortue-demo).
2.Accordez des autorisations à un rôle non-superutilisateur (testuser) pour créer et accéder à la base de données.
3.Passez à la base de données (tortoise-demo) de manière transparente sans avoir besoin de passer d'abord au superutilisateur.
4.Configurez PostgreSQL pour qu'il se connecte toujours automatiquement à tortoise-demo lors de la connexion en tant qu'utilisateur de test.

Étape 1 : Accorder les autorisations nécessaires à l'utilisateur test

Avant de pouvoir créer une base de données en tant que non-superutilisateur, vous devez vous assurer que votre rôle (dans ce cas, testuser) dispose des autorisations appropriées pour créer des bases de données.

Octroi des privilèges CREATEDB

Par défaut, un rôle PostgreSQL nouvellement créé n'a pas l'autorisation de créer des bases de données. Si vous êtes connecté en tant que superutilisateur (comme postgres), vous pouvez accorder les autorisations nécessaires au rôle testuser.

1.Connectez-vous en tant que superutilisateur (par exemple, postgres) :

   psql -U postgres

2.Accordez le privilège CREATEDB à l'utilisateur test :

Exécutez la requête SQL suivante pour permettre à l'utilisateur de test de créer de nouvelles bases de données :

   GRANT CREATEDB TO "testuser";

Cela permettra à l'utilisateur test de créer des bases de données sans avoir besoin des privilèges de superutilisateur.

3.Quitter la session superutilisateur :

   \q

Étape 2 : Connectez-vous en tant qu'utilisateur test et créez une base de données

Maintenant que le rôle testuser dispose du privilège CREATEDB, vous pouvez vous connecter en tant qu'utilisateur test et créer une nouvelle base de données.

Connectez-vous en tant qu'utilisateur test :

Pour vous connecter en tant que rôle testuser, exécutez la commande suivante :

psql -U "testuser" -d postgres -W
  • L'option -U "testuser" spécifie l'utilisateur.
  • L'option -d postgres vous connecte à la base de données postgres (une base de données administrative par défaut).
  • L'option -W vous demande le mot de passe que vous avez défini pour l'utilisateur de test (par exemple, 1234567890).

Créez la base de données tortoise-demo :

Une fois connecté, créez la nouvelle base de données tortoise-demo :

CREATE DATABASE "tortoise-demo";

Cette commande crée une nouvelle base de données appelée tortoise-demo.

Définir la propriété (facultatif) :

Si vous souhaitez vous assurer que l'utilisateur test a un contrôle total sur la base de données, vous pouvez attribuer la propriété de la base de données à l'utilisateur test :

   psql -U postgres

Cette étape est facultative, mais elle garantit que le rôle testuser a un contrôle administratif total sur la base de données tortoise-demo.

Étape 3 : Basculez vers la base de données tortoise-demo

Après avoir créé la base de données, vous souhaiterez peut-être passer à la base de données nouvellement créée (tortoise-demo) et commencer à travailler avec elle.

Pour vous connecter à tortoise-demo, exécutez :

   GRANT CREATEDB TO "testuser";

La commande c bascule la session en cours vers la base de données tortoise-demo. À partir de ce point, vous pouvez exécuter des requêtes SQL et gérer la base de données.

Étape 4 : Automatisez la connexion à tortoise-demo sans avoir besoin de changer à chaque fois

Maintenant que vous avez créé et basculé avec succès vers la base de données tortoise-demo, l'étape suivante consiste à automatiser ce processus. Plus précisément, nous souhaitons configurer PostgreSQL pour qu'à chaque fois que vous vous connectez en tant que folasayoolayemi, il vous connecte automatiquement à la base de données tortoise-demo sans avoir besoin de changer explicitement.

Option 1 : définir la variable d'environnement PGDATABASE

Un moyen simple de vous assurer que vous vous connectez toujours à la base de données tortoise-demo consiste à définir la variable d'environnement PGDATABASE. Cette variable indique à PostgreSQL quelle base de données utiliser par défaut lors de la connexion.

1.Définissez PGDATABASE pour la session en cours :

Vous pouvez définir la variable d'environnement dans votre session de terminal actuelle comme ceci :

   \q

Cela garantira que toutes les commandes psql suivantes que vous exécuterez se connecteront automatiquement à tortoise-demo par défaut.

2.Rendre le changement permanent :

Pour rendre cette modification persistante au fil des sessions de terminal, ajoutez la commande d'exportation au fichier de configuration de votre shell (.bashrc, .zshrc, etc.).

Par exemple, si vous utilisez bash, ajoutez la ligne suivante à votre fichier ~/.bashrc :

psql -U "testuser" -d postgres -W

Ensuite, exécutez :

CREATE DATABASE "tortoise-demo";

Cela garantira qu'à chaque fois que vous ouvrirez une nouvelle session de terminal, PostgreSQL se connectera automatiquement à tortoise-demo sans avoir besoin de spécifier la base de données.

Option 2 : toujours spécifier la base de données dans la commande de connexion

Si vous préférez ne pas utiliser la variable d'environnement PGDATABASE, vous pouvez toujours spécifier le nom de la base de données dans la commande de connexion psql :

ALTER DATABASE "tortoise-demo" OWNER TO "testuser";

De cette façon, vous spécifiez directement la base de données tortoise-demo à chaque fois que vous vous connectez, ce qui élimine le besoin de modifier la configuration.

Étapes clés :

1.Accorder le privilège CREATEDB : assurez-vous que le rôle d'utilisateur test dispose des privilèges nécessaires pour créer des bases de données.
2.Créer la base de données : Connectez-vous en tant qu'utilisateur test et créez la base de données tortoise-demo.
3.Basculez vers la base de données : utilisez la commande c pour passer à tortoise-demo.
4.Automatiser la connexion à la base de données : définissez la variable d'environnement PGDATABASE pour qu'elle se connecte toujours à tortoise-demo par défaut ou spécifiez explicitement le nom de la base de données dans la commande psql.

Conclusion:

En suivant ces étapes, vous pouvez créer et gérer vos propres bases de données dans PostgreSQL en tant que non-superutilisateur, sans avoir besoin de privilèges de superutilisateur à chaque fois que vous devez créer une nouvelle base de données. La possibilité de se connecter automatiquement à une base de données spécifique rendra votre flux de travail plus efficace, en particulier pour les développeurs qui travaillent sur des projets ou des applications spécifiques.

Merci d'avoir lu...
Bon codage !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn