Heim > Backend-Entwicklung > Python-Tutorial > So erstellen Sie eine Datenbank und stellen in PostgreSQL immer eine Verbindung zu ihr her, ohne Superuser-Zugriff zu benötigen

So erstellen Sie eine Datenbank und stellen in PostgreSQL immer eine Verbindung zu ihr her, ohne Superuser-Zugriff zu benötigen

Mary-Kate Olsen
Freigeben: 2024-12-27 04:48:20
Original
711 Leute haben es durchsucht

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

In dieser Anleitung gehen wir die Schritte durch, um eine Datenbank in PostgreSQL als Nicht-Superuser zu erstellen, die erforderlichen Berechtigungen zuzuweisen und sicherzustellen, dass Sie dazu in der Lage sind Stellen Sie immer eine Verbindung zu Ihrer neu erstellten Datenbank her, ohne sich als Superuser anmelden zu müssen.

Dies ist nützlich für Entwickler oder Benutzer, die ihre eigenen Datenbanken in PostgreSQL verwalten möchten, ohne für jede Aktion Administratorrechte zu benötigen.

Was wir erreichen werden:

1.Erstellen Sie eine neue Datenbank (Schildkröten-Demo).
2.Gewähren Sie einer Nicht-Superuser-Rolle (Testbenutzer) Berechtigungen, um die Datenbank zu erstellen und darauf zuzugreifen.
3.Wechseln Sie nahtlos zur Datenbank (tortoise-demo), ohne zuerst zum Superuser wechseln zu müssen.
4.Konfigurieren Sie PostgreSQL so, dass immer automatisch eine Verbindung zu tortoise-demo hergestellt wird, wenn Sie sich als Testbenutzer anmelden.

Schritt 1: Erteilen Sie dem Testbenutzer die erforderlichen Berechtigungen

Bevor Sie als Nicht-Superuser eine Datenbank erstellen können, müssen Sie sicherstellen, dass Ihre Rolle (in diesem Fall Testbenutzer) über die entsprechenden Berechtigungen zum Erstellen von Datenbanken verfügt.

Gewährung von CREATEDB-Berechtigungen

Standardmäßig verfügt eine neu erstellte PostgreSQL-Rolle nicht über die Berechtigung zum Erstellen von Datenbanken. Wenn Sie als Superuser angemeldet sind (wie Postgres), können Sie der Testuser-Rolle die erforderlichen Berechtigungen erteilen.

1.Als Superuser anmelden (z. B. Postgres):

   psql -U postgres
Nach dem Login kopieren
Nach dem Login kopieren

2.Gewähren Sie CREATEDB-Berechtigungen an Testbenutzer:

Führen Sie die folgende SQL-Abfrage aus, um dem Testbenutzer das Erstellen neuer Datenbanken zu ermöglichen:

   GRANT CREATEDB TO "testuser";
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch kann der Testbenutzer Datenbanken erstellen, ohne Superuser-Rechte zu benötigen.

3.Superuser-Sitzung verlassen:

   \q
Nach dem Login kopieren
Nach dem Login kopieren

Schritt 2: Melden Sie sich als Testbenutzer an und erstellen Sie eine Datenbank

Da die Testbenutzerrolle nun über die CREATEDB-Berechtigung verfügt, können Sie sich als Testbenutzer anmelden und eine neue Datenbank erstellen.

Als Testbenutzer anmelden:

Um sich als Testbenutzer anzumelden, führen Sie den folgenden Befehl aus:

psql -U "testuser" -d postgres -W
Nach dem Login kopieren
Nach dem Login kopieren
  • Die Option -U „testuser“ gibt den Benutzer an.
  • Die Option -d postgres verbindet Sie mit der Postgres-Datenbank (einer standardmäßigen Verwaltungsdatenbank).
  • Die Option -W fordert zur Eingabe des Passworts auf, das Sie für den Testbenutzer festgelegt haben (z. B. 1234567890).

Erstellen Sie die tortoise-demo-Datenbank:

Sobald Sie angemeldet sind, erstellen Sie die neue Datenbank tortoise-demo:

CREATE DATABASE "tortoise-demo";
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Befehl erstellt eine neue Datenbank namens tortoise-demo.

Besitz festlegen (optional):

Wenn Sie sicherstellen möchten, dass testuser die volle Kontrolle über die Datenbank hat, können Sie testuser:
den Besitz der Datenbank zuweisen

   psql -U postgres
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Schritt ist optional, stellt jedoch sicher, dass die Testbenutzerrolle die vollständige administrative Kontrolle über die Tortoise-Demo-Datenbank hat.

Schritt 3: Wechseln Sie zur tortoise-demo-Datenbank

Nachdem Sie die Datenbank erstellt haben, möchten Sie möglicherweise zur neu erstellten Datenbank wechseln (tortoise-demo) und damit beginnen, damit zu arbeiten.

Um eine Verbindung zu tortoise-demo herzustellen, führen Sie Folgendes aus:

   GRANT CREATEDB TO "testuser";
Nach dem Login kopieren
Nach dem Login kopieren

Der c-Befehl schaltet die aktuelle Sitzung auf die Tortoise-Demo-Datenbank um. Von hier aus können Sie SQL-Abfragen ausführen und die Datenbank verwalten.

Schritt 4: Automatisieren Sie die Verbindung zu tortoise-demo, ohne jedes Mal wechseln zu müssen

Nachdem Sie die Tortoise-Demo-Datenbank erfolgreich erstellt und darauf umgestellt haben, besteht der nächste Schritt darin, diesen Prozess zu automatisieren. Konkret möchten wir PostgreSQL so konfigurieren, dass es Sie jedes Mal, wenn Sie sich als folasayoolayemi anmelden, automatisch mit der Tortoise-Demo-Datenbank verbindet, ohne dass Sie explizit wechseln müssen.

Option 1: Legen Sie die PGDATABASE-Umgebungsvariable fest

Eine einfache Möglichkeit, sicherzustellen, dass Sie immer eine Verbindung zur Tortoise-Demo-Datenbank herstellen, besteht darin, die Umgebungsvariable PGDATABASE festzulegen. Diese Variable teilt PostgreSQL mit, welche Datenbank beim Herstellen der Verbindung standardmäßig verwendet werden soll.

1.PGDATABASE für die aktuelle Sitzung festlegen:

Sie können die Umgebungsvariable in Ihrer aktuellen Terminalsitzung wie folgt festlegen:

   \q
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird sichergestellt, dass alle nachfolgenden psql-Befehle, die Sie ausführen, standardmäßig automatisch eine Verbindung zu tortoise-demo herstellen.

2.Machen Sie die Änderung dauerhaft:

Um diese Änderung über Terminalsitzungen hinweg dauerhaft zu machen, fügen Sie den Exportbefehl zur Konfigurationsdatei Ihrer Shell (.bashrc, .zshrc usw.) hinzu.

Wenn Sie beispielsweise bash verwenden, fügen Sie die folgende Zeile zu Ihrer ~/.bashrc-Datei hinzu:

psql -U "testuser" -d postgres -W
Nach dem Login kopieren
Nach dem Login kopieren

Dann führen Sie Folgendes aus:

CREATE DATABASE "tortoise-demo";
Nach dem Login kopieren
Nach dem Login kopieren

Dadurch wird sichergestellt, dass PostgreSQL jedes Mal, wenn Sie eine neue Terminalsitzung öffnen, automatisch eine Verbindung zu tortoise-demo herstellt, ohne dass die Datenbank angegeben werden muss.

Option 2: Geben Sie immer die Datenbank im Verbindungsbefehl an

Wenn Sie die Umgebungsvariable PGDATABASE lieber nicht verwenden möchten, können Sie jederzeit den Datenbanknamen im psql-Verbindungsbefehl angeben:

ALTER DATABASE "tortoise-demo" OWNER TO "testuser";
Nach dem Login kopieren

Auf diese Weise geben Sie bei jeder Verbindung direkt die Tortoise-Demo-Datenbank an, sodass keine Konfigurationsänderungen erforderlich sind.

Wichtige Schritte:

1.Erteilen Sie CREATEDB-Berechtigungen: Stellen Sie sicher, dass die Testbenutzerrolle über die erforderlichen Berechtigungen zum Erstellen von Datenbanken verfügt.
2.Erstellen Sie die Datenbank: Melden Sie sich als Testbenutzer an und erstellen Sie die Tortoise-Demo-Datenbank.
3.Wechseln Sie zur Datenbank: Wechseln Sie mit dem c-Befehl zu tortoise-demo.
4.Datenbankverbindung automatisieren: Stellen Sie die Umgebungsvariable PGDATABASE so ein, dass standardmäßig immer eine Verbindung zu tortoise-demo hergestellt wird, oder geben Sie den Datenbanknamen explizit im psql-Befehl an.

Abschluss:

Wenn Sie diese Schritte befolgen, können Sie als Nicht-Superuser Ihre eigenen Datenbanken in PostgreSQL erstellen und verwalten, ohne jedes Mal Superuser-Rechte zu benötigen, wenn Sie eine neue Datenbank erstellen müssen. Die Möglichkeit, automatisch eine Verbindung zu einer bestimmten Datenbank herzustellen, macht Ihren Arbeitsablauf effizienter, insbesondere für Entwickler, die mit bestimmten Projekten oder Anwendungen arbeiten.

Danke fürs Lesen...
Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine Datenbank und stellen in PostgreSQL immer eine Verbindung zu ihr her, ohne Superuser-Zugriff zu benötigen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage