Zum Inhalt springen

Direktes SQL

Das ist der Daseinszweck von basedb: Ihre Tabellen sind echte Tabellen. Jeder PostgreSQL-Client liest sie unter ihrem Namen.

ObjektPhysischer NameBeispiel
Datenbankein Schema b_<tenant>_<nom>b_t4z56fq_ventes
Staging-Umgebungdas Schema mit Suffixb_t4z56fq_ventes_recette
Tabelleihr slugifizierter Nameopportunites
Feldsein slugifizierter Nameecheance
Verknüpfung<table cible>_idclients_id
SQL-Viewihr technischer Name, im Schema der Datenbankfactures_a_encaisser

Die Seite API- und MCP-Dokumentation jeder Datenbank nennt sie alle, und \d in psql zeigt die Beschreibungen (COMMENT ON).

Das + der Reiterleiste oder das Menü ⋯ der Datenbank → SQL-Abfrage: ein Editor mit Syntaxhervorhebung und Autovervollständigung, dessen Ergebnis im selben Raster erscheint wie Ihre Tabellen.

Eine gespeicherte Abfrage und zwei SQL-Views zwischen den Tabellen

  • Jede Person liest dort mit ihren Berechtigungen: Die Stufe Verwalten hat die ganze Datenbank, Schreibvorgänge eingeschlossen; die anderen Mitglieder schreiben schreibgeschütztes SQL, in dem eine verschlossene Tabelle nicht existiert und ein verborgenes Feld verschwindet.
  • Eine Abfrage wird unter den Tabellen gespeichert – für sich selbst, für die ganze Datenbank oder für Gruppen – und wird auf Wunsch zu einer SQL-View: einer echten PostgreSQL-View zwischen den Tabellen, die auch aus psql lesbar ist.

Alle Einzelheiten stehen unter Abfragen und SQL-Views.

Mit der mitgelieferten docker-compose.yml wird PostgreSQL auf 127.0.0.1:5432 veröffentlicht:

Fenêtre de terminal
psql "postgres://basedb:<POSTGRES_PASSWORD>@localhost:5432/basedb"
SET search_path = b_t4z56fq_ventes;
SELECT o.nom, o.montant, c.nom AS client
FROM opportunites o
JOIN clients c ON c._id = o.clients_id
WHERE o.statut = 'gagne';

Dieses Konto ist der Eigentümer der Datenbank: Es liest alles, und die Berechtigungen von basedb greifen dort nicht. Legen Sie für ein BI-Tool lieber eine eigene Rolle mit eigenen GRANTs an. Trägt eine Tabelle eine Zeilenregel, wendet PostgreSQL dort die Sicherheit auf Zeilenebene an: Eine solche Rolle sieht dort keine Zeile ohne das Attribut BYPASSRLS oder eine eigene Policy.

Das ist erlaubt. Die Constraints (Einfachauswahlen, Verknüpfungen, URLs, erforderliche Felder) werden von PostgreSQL durchgesetzt und weisen einen ungültigen Wert ab, genau wie in der Oberfläche. Und der Schreibvorgang wird im Verlauf aufgezeichnet: Der Verlauf zeigt ihn als „Direkte SQL-Sitzung“, mit der Sitzung, die ihn ausgeführt hat, und er lässt sich wie jeder andere rückgängig machen.

basedb ist freie Software von Eodia, einem KI-nativen Softwarestudio.