Ga naar inhoud

Directe SQL

Dit is de bestaansreden van basedb: je tabellen zijn echte tabellen. Elke PostgreSQL-client leest ze onder hun naam.

ObjectFysieke naamVoorbeeld
Databaseeen schema b_<tenant>_<nom>b_t4z56fq_ventes
Acceptatieomgevinghet schema met een achtervoegselb_t4z56fq_ventes_recette
Tabelde geslugificeerde naamopportunites
Veldde geslugificeerde naamecheance
Relatie<table cible>_idclients_id
SQL-viewde technische naam, in het schema van de databasefactures_a_encaisser

De pagina API- en MCP-documentatie van elke database geeft ze allemaal, en \d in psql toont de beschrijvingen (COMMENT ON).

De + in de tabbladbalk, of het menu ⋯ van de database → SQL-query: een editor met syntaxiskleuring en aanvulling, waarvan het resultaat in hetzelfde raster als je tabellen verschijnt.

Een opgeslagen query, en twee SQL-views tussen de tabellen

  • Iedereen leest er met zijn eigen rechten: het niveau Beheren heeft de hele database, schrijfacties inbegrepen; de andere leden schrijven alleen-lezen SQL, waarin een gesloten tabel niet bestaat en een verborgen veld verdwijnt.
  • Een query wordt opgeslagen onder de tabellen — voor jezelf, voor de hele database of voor groepen —, en wordt, als je wilt, een SQL-view: een echte PostgreSQL-view, tussen de tabellen geplaatst en leesbaar vanuit psql.

Alles staat uitgebreid beschreven in Query’s en SQL-views.

Met het meegeleverde docker-compose.yml wordt PostgreSQL gepubliceerd op 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';

Dit account is de eigenaar van de database: het leest alles, en de rechten van basedb zijn er niet op van toepassing. Voor een BI-tool maak je liever een aparte rol aan met eigen GRANTs. Als een tabel een rijregel draagt, past PostgreSQL er de rijbeveiliging op toe: zo’n rol ziet er geen enkele rij zonder het kenmerk BYPASSRLS of een eigen policy.

Dat mag. De constraints (enkele keuzes, relaties, URL’s, verplichte velden) worden bewaakt door PostgreSQL en weigeren een ongeldige waarde, net als in de interface. En de schrijfactie wordt in de geschiedenis vastgelegd: de geschiedenis toont haar als “Directe SQL-sessie”, met de sessie die haar heeft uitgevoerd, en je maakt haar ongedaan zoals alle andere.

basedb is vrije software van Eodia, een AI-native softwarestudio.