29 Datamartlezer
alovin edited this page 2026-03-09 12:38:40 +00:00

Voor toegang tot de informatie in de datamart, dien jij speciale rollen te maken met leesrechten op de specifieke tabellen die passen bij het onderwerp waar toegang voor nodig is. Een voorbeeld: voor toegang tot de informatie over ICT, wordt de rol dmlezer_ict gemaakt. Dit zijn de stappen om de rol te maken en de rechten uit te delen. Dit kan gedaan worden in DBeaver.

Aanmaken rol

Eerst maak jij de rol aan. Bij PostgreSQL worden gebruikers rollen genoemd. Dit is de opdracht:

CREATE USER dmlezer_ict WITH PASSWORD '<wachtwoord>'

Vervang dmlezer_ict voor de gewenste naam voor de rol en <wachtwoord> met het gewenste wachtwoord.

Toegang tot database

Om de rol te kunnen gebruiken, moet jij het toegang geven tot de database. Standaard is de naam van de database dataplatform.

GRANT CONNECT ON DATABASE dataplatform TO dmlezer_ict;

Gebruiken DuckDb

Er zit een snelle analytische uitbreiding in het dataplaform. Deze is toegevoegd als uitbreiding op PostgreSQL. Dit betekent dat jij praat tegen PostgreSQL, maar de snelle motor gebruikt. Met de volgende procedure laat jij de rol deze uitbreiding gebruiken. Hiervoor is een rol gemaakt die deze analytische uitbreiding mag gebruiken.

Voer deze opdrachten uit in DBeaver:

GRANT duckdbgebruikers TO dmlezer_ict
ALTER ROLE dmlezer_ict SET duckdb.force_execution = true;

Toestaan gebruik van datamart

GRANT USAGE ON SCHEMA dw_dm TO dmlezer_ict

Toegang tot pg_catalog

Dit is specifiek wanneer jij een prgramma gebruikt dat de metadata van de datamart wil gebruiken. Cognos doet dat bijvoorbeeld.

GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO dmlezer_ict;

Lezen tabellen

Zet deze regel bij het CREATE-script van elke tabel waar de datamartlezer bij mag. Meestal heeft maar een rol toegang tot een tabel. Dit geldt zeker voor feitentabellen. Dimensietabellen kunnen conforme dimensies zijn, dus gebruikt in meerdere situaties. Bij gemeenten is inwoner daar een voorbeeld van. Iedere datamartlezer heeft dim_datum nodig, daarom kun jij de volgende regel altijd uitvoeren. Let er op dat jij het juiste schema hebt gekozen in DBeaver.

GRANT SELECT ON dim_datum TO dmlezer_ict;

Toegang met Superset

Omdat Superset in een container draait, is databasetoegang voor Superset nodig. Natat via die werkinstructie het IP-adres is bepaald, moet er in pg_hba.conf een regel worden toegevoegd voor de nieuwe datamartlezer. Dit zorgt voor hoge veiligheid. Voer dit uit:

sudo nano /etc/postgresql/18/main/pg_hba.conf

Voeg deze regel toe:

host    dataplatform    dmlezer_ict    192.168.58.0/24    scram-sha-256

Vervang hier dmlezer_ict door de juiste rolnaam en 192.168.58.0 door het gevonden IP-adres. Sla de aanpassing op met CTRL-X en Y.

Herstart daarna PostgreSQL:

sudo systemctl restart postgresql