... | ... | @@ -4,15 +4,15 @@ Diese Seite erklärt eine Best Practice, wie Sie sich in einem Praktikumsteam ei |
|
|
|
|
|
## Ziel: Funktionaler Benutzer und Schemata
|
|
|
|
|
|
Diese Anleitung zeigt Ihnen, wie Sie einen neuen Benutzer (im weiteren Verlauf *funktionaler Benutzer* genannt) erstellen. Sie können sowohl den Benutzernamen als auch das Passwort frei vergeben und diese Informationen dann in Ihren Praktikumsteams verwenden. So müssen Sie eben nicht das Passwort Ihres ist* Benutzers preis geben.
|
|
|
Diese Anleitung zeigt Ihnen, wie Sie einen neuen Benutzer (im weiteren Verlauf *funktionaler Benutzer* genannt) erstellen. Sie können sowohl den Benutzernamen als auch das Passwort frei vergeben und diese Informationen dann in Ihren Praktikumsteams verwenden. So müssen Sie eben nicht das Passwort Ihres st* Benutzers preis geben.
|
|
|
|
|
|
Sinnvollerweise legen Sie zusätzlich ein *Schema* mit dem selben Namen wie der des funktionalen Benutzers an. Ein Schema ist zu verstehen als eine Art "Unterordner" innerhalb Ihrer Datenbank. Nach Erstellen des funktionalen Benutzers und des Schemas geben Sie dem funktionalen Benutzer die Besitztrechte an dem Schema, so dass dieser alle Operationen (Tabellen erstellen/löschen, Daten hinzufügen/editieren/abfragen) in diesem Schema durchführen darf.
|
|
|
Sinnvollerweise legen Sie zusätzlich ein *Schema* mit dem selben Namen wie der des funktionalen Benutzers an. Ein Schema ist zu verstehen als eine Art "Unterordner" innerhalb Ihrer Datenbank. Nach Erstellen des funktionalen Benutzers und des Schemas geben Sie dem funktionalen Benutzer die Besitzrechte an dem Schema, so dass dieser alle Operationen (Tabellen erstellen/löschen, Daten hinzufügen/editieren/abfragen) in diesem Schema durchführen darf.
|
|
|
|
|
|
Weitere Informationen zu Schemas finden Sie in der [Postgres Doku](https://www.postgresql.org/docs/current/ddl-schemas.html)
|
|
|
|
|
|
## Erstellen des Benutzers
|
|
|
|
|
|
Loggen Sie sich mit Ihrem ist* Benutzer ein und verwenden Sie den Befehl
|
|
|
Loggen Sie sich mit Ihrem st* Benutzer ein und verwenden Sie den Befehl
|
|
|
```sql
|
|
|
CREATE ROLE foo WITH LOGIN PASSWORD '123';
|
|
|
```
|
... | ... | @@ -26,9 +26,9 @@ Benutzer existieren auf dem gesamten DBMS. Es kann also sein, dass Ihr "Wunschna |
|
|
|
|
|
Damit der funktionale Benutzer sich auf Ihrer Datenbank einloggen kann, müssen Sie das entsprechende Recht vergeben:
|
|
|
```sql
|
|
|
GRANT CONNECT ON DATABASE istmamust TO foo;
|
|
|
GRANT CONNECT ON DATABASE stmamust TO foo;
|
|
|
```
|
|
|
*istmamust* steht hier stellvertretend für Ihren ist* Benutzernamen.
|
|
|
*stmamust* steht hier stellvertretend für Ihren st* Benutzernamen.
|
|
|
|
|
|
## Erstellen des Schemas
|
|
|
|
... | ... | @@ -36,10 +36,10 @@ Mit dem folgenden Befehl erstellen Sie ein Schema mit dem Namen *foo* und vergeb |
|
|
```sql
|
|
|
CREATE SCHEMA foo AUTHORIZATION foo;
|
|
|
```
|
|
|
**Hinweis**: Es ist evtl. noch notwendig, dem Benutzer *istmamust* das Recht zu geben, eine Schema für die Rolle *foo* zu erzeugen. Dann müssen Sie **vor** dem `CREATE SCHEMA` noch folgenden Befehl ausführen:
|
|
|
**Hinweis**: Es ist evtl. noch notwendig, dem Benutzer *stmamust* das Recht zu geben, eine Schema für die Rolle *foo* zu erzeugen. Dann müssen Sie **vor** dem `CREATE SCHEMA` noch folgenden Befehl ausführen:
|
|
|
|
|
|
```sql
|
|
|
GRANT foo TO istmamust;
|
|
|
GRANT foo TO stmamust;
|
|
|
```
|
|
|
|
|
|
Sie sollten den Namen des Schemas identisch zum Namen des funktionalen Benutzers wählen. Hintergrund ist, dass standardmäßig beim Einloggen zuerst das Schema verwendet wird, welches dem Namen des Benutzers entspricht. Existiert ein solches Schema nicht, so wird das *public* Schema verwendet. Die Reihenfolge können Sie auch alternativ nach jedem Login festlegen. Weitere Informationen finden Sie in der [Postgres Doku](https://www.postgresql.org/docs/current/ddl-schemas.html#DDL-SCHEMAS-PATH).
|
... | ... | @@ -48,9 +48,9 @@ Deutlich komfortabler als das ständige Angeben des Suchpfades ist allerdings da |
|
|
|
|
|
## Login mit dem funktionalen Benutzer
|
|
|
|
|
|
Loggen Sie sich mit dem ist* Benutzer aus und erstellen Sie in PgAdmin eine neue Verbindung. Den Datenbanknamen lassen Sie auf *istmamust*. Ändern Sie allerdings den Benutzer auf *foo* und das Passwort auf das von Ihnen gewählte.
|
|
|
Loggen Sie sich mit dem st* Benutzer aus und erstellen Sie in PgAdmin eine neue Verbindung. Den Datenbanknamen lassen Sie auf *stmamust*. Ändern Sie allerdings den Benutzer auf *foo* und das Passwort auf das von Ihnen gewählte.
|
|
|
|
|
|
Wenn Sie `psql` verwenden, können Sie Benutzer und Datenbank als Parameter angeben:
|
|
|
```
|
|
|
psql -h postgres.fbi.h-da.de -U foo -d istmamust
|
|
|
psql -h postgres.fbi.h-da.de -U foo -d stmamust
|
|
|
``` |