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.
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.
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.
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
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";
Dadurch kann der Testbenutzer Datenbanken erstellen, ohne Superuser-Rechte zu benötigen.
3.Superuser-Sitzung verlassen:
\q
Da die Testbenutzerrolle nun über die CREATEDB-Berechtigung verfügt, können Sie sich als Testbenutzer anmelden und eine neue Datenbank erstellen.
Um sich als Testbenutzer anzumelden, führen Sie den folgenden Befehl aus:
psql -U "testuser" -d postgres -W
Sobald Sie angemeldet sind, erstellen Sie die neue Datenbank tortoise-demo:
CREATE DATABASE "tortoise-demo";
Dieser Befehl erstellt eine neue Datenbank namens tortoise-demo.
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
Dieser Schritt ist optional, stellt jedoch sicher, dass die Testbenutzerrolle die vollständige administrative Kontrolle über die Tortoise-Demo-Datenbank hat.
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";
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.
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.
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
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
Dann führen Sie Folgendes aus:
CREATE DATABASE "tortoise-demo";
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.
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";
Auf diese Weise geben Sie bei jeder Verbindung direkt die Tortoise-Demo-Datenbank an, sodass keine Konfigurationsänderungen erforderlich sind.
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.
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!