Änderungen

Zur Navigation springen Zur Suche springen
2.814 Bytes hinzugefügt ,  08:43, 20. Jan. 2024
Zeile 4: Zeile 4:     
Die [[Debian]]-Pakete sehen getrennte Konfigurations- und Datenverzeichnisse vor. Siehe https://wiki.debian.org/PostgreSql .
 
Die [[Debian]]-Pakete sehen getrennte Konfigurations- und Datenverzeichnisse vor. Siehe https://wiki.debian.org/PostgreSql .
 +
 +
Siehe zu ersten Schritten mit Postgres auch:
 +
* https://www3.ntu.edu.sg/home/ehchua/programming/sql/PostgreSQL_GetStarted.html
    
=== User anlegen ===
 
=== User anlegen ===
Zeile 12: Zeile 15:  
   CREATE USER BENUTZER WITH PASSWORD 'BENUTZERPASSWORT';
 
   CREATE USER BENUTZER WITH PASSWORD 'BENUTZERPASSWORT';
   −
Ggf. muss man noch die Datei <code> /etc/postgresql/9.5/main/pg_hba.conf </code> so anpassen, dass auch eine Einwahl mit Passwort möglich ist. Denn normalerweise akzeptiert PostgreSQL nur die <code>peer</code>-Authentifizierungsmethode über den Linux-User.
     −
Falls selbst diese Zeile fehlen sollte, muss eine Zeile wie die folgende eingefügt werden:
+
Normalerweise akzeptiert PostgreSQL nur die <code>peer</code>-Authentifizierungsmethode über den Linux-User. Falls selbst diese Berechtigung fehlen sollte, muss eine Zeile wie die folgende eingefügt werden:
 
   local sameuser USER peer  
 
   local sameuser USER peer  
 
USER sollte dem Namen des Linux-User entsprechen.
 
USER sollte dem Namen des Linux-User entsprechen.
 +
 +
Ggf. muss man noch die Datei <code> /etc/postgresql/9.5/main/pg_hba.conf </code> so anpassen, dass auch eine Einwahl mit Passwort möglich ist. Dazu ist eine Zeile wie die folgende einzutragen:
 +
  local MYDB MYPOSTGRESUSER password
 +
 +
Die Reihenfolge der Zeilen ist wichtig.<ref>Siehe https://www.postgresql.org/docs/current/auth-pg-hba-conf.html </ref>. Eine Zeile wie 
 +
  local  all            all                                    peer
 +
sollte daher hinter anderen local-Anweisungen stehen, die spezifischere Authentifizierungsmethoden wie <code>md5</code> oder <code>password</code> kennen.
 +
 +
In <code>$HOME/.pgpass</code> kann man zum Verzicht auf die Passworteingabe Zeilen nach dem folgenden Muster einfügen:<ref>https://www.postgresql.org/docs/11/static/libpq-pgpass.html</ref>
 +
  hostname:port:database:username:password
 +
Beispiel
 +
  localhost:*:MYDB:MYPOSTGRESUSER:PASS
 +
 +
Man MUSS den Zugriff auf .pgpass einschränken:
 +
  chmod 0600 ~/.pgpass
 +
 +
=== Postgres-Version ===
 +
 +
Um im <code>psql</code>-Client oder in anderen SQL-Verbindungen die Version des Servers auszugeben, verwendet man:
 +
 +
  SELECT version();
 +
 +
=== Konfigurationsdatei ===
 +
 +
Um den Ort der Konfigurationsdateien des Postgres-Servers zu finden verwendet man
 +
 +
  sudo -u postgres psql
 +
 +
und folgende Befehle<ref>Siehe https://www.postgresql.org/docs/current/runtime-config-file-locations.html</ref>
 +
  SHOW data_directory;
 +
  SHOW config_file;
 +
  SHOW hba_file;
 +
 +
=== Postgres on Android ===
 +
 +
PostgresSQL läuft auch auf Android. Dazu benötigt man die App Termux. Siehe
 +
* https://stackoverflow.com/questions/33474468/can-i-use-postgresql-in-android-phone
    
== Zeilenbasierte Zugriffsrechte ==
 
== Zeilenbasierte Zugriffsrechte ==
Zeile 26: Zeile 65:  
* https://blog.2ndquadrant.com/application-users-vs-row-level-security/
 
* https://blog.2ndquadrant.com/application-users-vs-row-level-security/
   −
== REST-API mit Node.js und PostgreSQL ==
+
== Node.js-Zugriff auf PostgreSQL ==
 +
=== Node.js-Client-Bibliotheken für JavaScript und TypeScript ===
 +
 
 +
Siehe
 +
* [[Softwareentwicklung#JavaScript for PostgreSQL]]
 +
* [[TypeScript#TypeScript und PostgreSQL]]
 +
 
 +
=== REST-API mit Node.js und PostgreSQL ===
 
Siehe  
 
Siehe  
 
* [https://github.com/jorditost/node-postgres-restapi node-postgres-restapi]
 
* [https://github.com/jorditost/node-postgres-restapi node-postgres-restapi]
Zeile 32: Zeile 78:  
* [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] - ausführliche Anleitung
 +
* [https://stackoverflow.com/questions/43831286/postgres-fifo-query-calculate-profit-margin Window Functions um ein FIFO-System in der Datenbank zu erstellen] - Stackoverflow-Code ohne Erläuterung; die dort genannte Lösung dürfte nicht sehr gut skalieren, weil - zumindest als Zwischenergebnis - jedes einzelne Stück angeschaut wird (für 10000 in vier Lieferungen heraus- und hereingenommene Stücke entstehen dadurch mindestens 10000 Datensätze).
 +
 +
== Rest-API mit Postgres ==
 +
 +
Siehe
 +
* https://postgrest.org/ basiert auf Haskell
 +
* pREST - basiert auf Go
 +
* [[Supabase]]
 
------
 
------
 
<references/>
 
<references/>
 
[[Category:Datenbank]]
 
[[Category:Datenbank]]
 
[[Category:ServerSoftware]]
 
[[Category:ServerSoftware]]

Navigationsmenü