Gå til indhold

Direkte SQL

Det er selve grunden til, at basedb findes: dine tabeller er rigtige tabeller. Enhver PostgreSQL-klient kan læse dem under deres navn.

ObjektFysisk navnEksempel
Databaseet skema b_<tenant>_<nom>b_t4z56fq_ventes
Testmiljøskemaet med et suffiksb_t4z56fq_ventes_recette
Tabeldens slugificerede navnopportunites
Feltdets slugificerede navnecheance
Relation<table cible>_idclients_id
SQL-viewdets tekniske navn, i databasens skemafactures_a_encaisser

Siden API- og MCP-dokumentation for hver database angiver dem alle, og \d i psql viser beskrivelserne (COMMENT ON).

+ i fanelinjen eller databasens ⋯-menu → SQL-forespørgsel: en editor med syntaksfremhævning og autofuldførelse, hvis resultat vises i samme gitter som dine tabeller.

En gemt forespørgsel og to SQL-views placeret blandt tabellerne

  • Hver person læser med sine egne tilladelser: niveauet Administrere har hele databasen, skrivninger inklusive; de andre medlemmer skriver skrivebeskyttet SQL, hvor en lukket tabel ikke findes, og et skjult felt forsvinder.
  • En forespørgsel gemmes under tabellerne — for dig selv, for hele databasen eller for grupper — og bliver, hvis du vil, til et SQL-view: et rigtigt PostgreSQL-view, placeret blandt tabellerne og læsbart fra psql.

Alt er beskrevet i detaljer i Forespørgsler og SQL-views.

Med den medfølgende docker-compose.yml er PostgreSQL udgivet på 127.0.0.1:5432:

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';

Denne konto er databasens ejer: den læser alt, og basedbs tilladelser gælder ikke for den. Til et BI-værktøj bør du i stedet oprette en selvstændig rolle med sine egne GRANT. Har en tabel en rækkeregel, anvender PostgreSQL row-level security på den: en sådan rolle ser ingen rækker i den uden attributten BYPASSRLS eller en politik af sin egen.

Det er tilladt. Begrænsningerne (enkeltvalg, relationer, URL’er, påkrævet) håndhæves af PostgreSQL og afviser en ugyldig værdi, præcis som i brugerfladen. Og skrivningen logges i historikken: historikken viser den som »Direkte SQL-session« med den session, der udførte den, og den kan fortrydes som alle andre.

basedb er fri software fra Eodia, et AI-native softwarestudie.