GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Erstellen und löschen Sie Rollen in PostgreSQL

Um einen Produktionsdatenbankserver zu testen, sollten Sie zusätzliche Rollen erstellen, da das regelmäßige Arbeiten in Ihren Datenbanken als Standard-Superuser-Rolle riskant ist.

Dieser Artikel zeigt Ihnen, wie Sie zusätzliche Rollen mit PostgreSQL® erstellen, indem Sie entweder psql verwenden Client-Befehle oder Shell-Befehle. Sie müssen den Linux®-Benutzer postgres verwenden ®, mit beiden Methoden.

Melden Sie sich mit Ihren Linux-Anmeldeinformationen bei Ihrer Instanz an und führen Sie den folgenden Befehl aus, um Benutzer auf postgres umzustellen Benutzer:

# sudo su - postgres

psql-Befehle verwenden

Führen Sie die folgenden Schritte aus, um Benutzer mithilfe von psql zu erstellen oder zu löschen Kunde.

Mit psql verbinden

Stellen Sie eine Verbindung zum Datenbankserver her, indem Sie den psqlclient mit dem postgres verwenden Rolle:

postgres@demo:~$ psql -U postgres
...
Welcome to psql 8.3.6, the PostgreSQL interactive terminal.

Type:  \copyright for distribution terms
       \h for help with SQL commands
       \? for help with psql commands
       \g or terminate with semicolon to execute query
       \q to quit

postgres=#

Erstellen Sie eine Rolle

Nachdem Sie sich mit psql verbunden haben Client, führen Sie den folgenden Befehl aus, um eine Rolle mit dem LOGIN zu erstellen -Attribut und ein nicht leeres, MD5-verschlüsseltes Passwort:

postgres=#CREATE ROLE demorole1 WITH LOGIN ENCRYPTED PASSWORD 'password1';

Hinweis :Das abschließende Semikolon (; ) am Ende der SQL-Anweisung ist erforderlich. Die einfachen Anführungszeichen ( ' ' ) sind nicht Teil des Passworts, müssen es aber einschließen.

Bestätigen Sie, dass Sie die Rolle erfolgreich erstellt haben, indem Sie den folgenden Befehl verwenden:

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole1 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)

Eine Rolle löschen

Wenn Sie eine Rolle nicht mehr benötigen, können Sie eine Rolle löschen (löschen oder entfernen), indem Sie den folgenden Befehl verwenden:

postgres=# DROP ROLE demorole1;

Wenn Sie dann mit dem \du überprüfen Befehl, können Sie diesen demorole1 sehen nicht mehr aufgeführt.

Erstellen Sie einen Superuser

Gelegentlich müssen Sie möglicherweise zusätzliche Superuser-Rollen erstellen, z. B. wenn Sie einen Datenbankprogrammierer haben, dem Sie vertrauen, den Postgress-Server zu verwalten.

Führen Sie den folgenden Befehl aus, um einen Superuser zu erstellen:

postgres=#CREATE ROLE mysuperuser2 WITH SUPERUSER CREATEDB CREATEROLE LOGIN ENCRYPTED PASSWORD 'mysuperpass2';

Der Befehl setzt den LOGIN -Attribut und gibt ein nicht leeres Passwort an. Diese Faktoren sind wichtig, wenn Sie diese Superuser-Rolle für lokale und entfernte Verbindungen zur Datenbank beabsichtigen.

psql beenden

Zum Beenden von psql , führen Sie den folgenden Befehl aus:

postgres=# \q
...
postgres@demo:~$

Shell-Befehle verwenden

Sie können Datenbankrollen erstellen und löschen, indem Sie die Shell-Befehle createuser und dropuser verwenden, die Wrapper für die CREATE- und DROPSQL-Anweisungen sind. Eine standardmäßige Postgres-Installation enthält diese Befehle.

Benutzer erstellen

Führen Sie den folgenden Befehl aus, um eine Nicht-Superuser-Rolle mit dem LOGIN zu erstellen Attribut:

postgres@demo:~$ createuser -PE demorole2

Enter password for new role:
Enter it again:
...
postgres@demo:~$

Das -P Flag fordert Sie auf, ein Passwort für die neue Rolle festzulegen, und das -E Flag gibt an, dass das Passwort als MD5-verschlüsselter String gespeichert werden soll.

Um die Rollenerstellung zu überprüfen, stellen Sie eine Verbindung zu psql her und führen Sie den folgenden Befehl aus:

postgres=# \du
                               List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
-----------+-----------+-------------+-----------+-------------+-----------
 demorole2 | no        | no          | no        | no limit    | {}
 postgres  | yes       | yes         | yes       | no limit    | {}
(2 rows)

dropuser

Führen Sie den folgenden Befehl aus, um eine Rolle zu löschen:

postgres@demo:~$ dropuser -i demorole2
...
Role "demorole2" will be permanently removed.
Are you sure? (y/n) y
...
postgres@demo:~$

Das -i Flag bietet eine Bestätigungsaufforderung, was eine gute Sicherheitsmaßnahme ist, wenn Sie einen potenziell destruktiven Befehl ausführen.

Erstellen Sie einen Superuser

Gelegentlich müssen Sie möglicherweise zusätzliche Superuser-Rollen erstellen, z. B. wenn Sie einen Datenbankprogrammierer haben, dem Sie vertrauen, den Postgress-Server zu verwalten.

Führen Sie den folgenden Befehl aus, um einen Superuser zu erstellen:

postgres@demo:~$ createuser -sPE mysuperuser

Linux
  1. Installation von PostgreSQL und phpPgAdmin in CentOS

  2. So erstellen Sie eine IAM-Rolle in AWS mit Terraform

  3. RHCE Ansible Series #9:Ansible-Rollen

  4. So sichern und wiederherstellen Sie eine Datenbank in PostgreSQL

  5. Erstellen und steuern Sie Startskripts in BusyBox

Ansible-Rollen und ihre Verwendung in Playbooks

Wie erstelle ich eine PostgreSQL-Datenbank?

Erstellen und verwalten Sie eine Subdomain

Cron-Job erstellen und löschen

Installieren Sie PostgreSQL 11 und PgAdmin4 auf Ubuntu 18.04

Erstellen und konfigurieren Sie einen Benutzer in MSSQL