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