PostgreSQL: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 42: | Zeile 42: | ||
* [https://node-postgres.com/guides/project-structure Projektstrukturvorschlag bei Nutzung von PostgreSQL mit Node.js] | * [https://node-postgres.com/guides/project-structure Projektstrukturvorschlag bei Nutzung von PostgreSQL mit Node.js] | ||
+ | == Fensterfunktionen in PostgresSQL == | ||
+ | |||
+ | Mit sogenannten Fensterfunktionen oder Window Functions können sehr viele Operationen in der Datenbank abgebildet werden, die sonst der Client mit üblicherweise hohem Aufwand programmatisch durchführen musste. | ||
+ | |||
+ | Siehe | ||
+ | * [https://wiki.postgresql.org/wiki/File:PostgreSQL_Window_Functions.pdf Window Functions um ein FIFO-System in der Datenbank zu erstellen] | ||
------ | ------ | ||
<references/> | <references/> | ||
[[Category:Datenbank]] | [[Category:Datenbank]] | ||
[[Category:ServerSoftware]] | [[Category:ServerSoftware]] |
Version vom 1. November 2018, 10:00 Uhr
PostgreSQL ist eine weit verbreitete feature-reiche SQL-Datenbank, einigermaßen vergleichbar mit MySQL.
Installation und Konfiguration
Die Debian-Pakete sehen getrennte Konfigurations- und Datenverzeichnisse vor. Siehe https://wiki.debian.org/PostgreSql .
User anlegen
Man wählt sich als User postgres
in seine Datenbank DATABASE ein:
sudo -u postgres psql DATABASE
Dann erzeugt man den Nutzer BENUTZER mit folgender Anweisung:
CREATE USER BENUTZER WITH PASSWORD 'BENUTZERPASSWORT';
Normalerweise akzeptiert PostgreSQL nur die peer
-Authentifizierungsmethode über den Linux-User. Falls selbst diese Berechtigung fehlen sollte, muss eine Zeile wie die folgende eingefügt werden:
local sameuser USER peer
USER sollte dem Namen des Linux-User entsprechen.
Ggf. muss man noch die Datei /etc/postgresql/9.5/main/pg_hba.conf
so anpassen, dass auch eine Einwahl mit Passwort möglich ist. Dazu ist eine Zeile wie die folgende einzutragen:
local MYDB MYPOSTGRESUSER password
In $HOME/.pgpass
kann man zum Verzicht auf die Passworteingabe Zeilen nach dem folgenden Muster einfügen:[1]
hostname:port:database:username:password
Beispiel
localhost:*:MYDB:MYPOSTGRESUSER:PASS
Man MUSS den Zugriff auf .pgpass einschränken:
chmod 0600 ~/.pgpass
Zeilenbasierte Zugriffsrechte
Row-Level-Security gibt es seit PostgreSQL 9.5. Es ermöglicht Zugriffsrechte auf bestimmte Zeilen für den jeweiligen Nutzer einzuschränken.
Siehe
- https://www.postgresql.org/docs/current/static/ddl-rowsecurity.html
- https://blog.2ndquadrant.com/application-users-vs-row-level-security/
REST-API mit Node.js und PostgreSQL
Siehe
- node-postgres-restapi
- http://mherman.org/blog/2016/03/13/designing-a-restful-api-with-node-and-postgres/
- Projektstrukturvorschlag bei Nutzung von PostgreSQL mit Node.js
Fensterfunktionen in PostgresSQL
Mit sogenannten Fensterfunktionen oder Window Functions können sehr viele Operationen in der Datenbank abgebildet werden, die sonst der Client mit üblicherweise hohem Aufwand programmatisch durchführen musste.
Siehe