In cloudsoftware staan de gegevens van veel klanten in dezelfde database. Dat is efficiënt, maar het roept de vraag op die elke controller hoort te stellen: hoe weet ik zeker dat een andere klant mijn cijfers niet kan zien? Het antwoord zit niet in de schermen van de app, maar in de laag eronder.
Twee manieren om af te schermen
De zwakke manier is afscherming in de applicatie: de software filtert bij elke opvraag op de organisatie van de gebruiker. Dat werkt zolang elke programmeur bij elke opvraag aan dat filter denkt. Eén vergeten filter, één nieuwe functie, één rapport dat rechtstreeks de database bevraagt, en de scheiding is weg.
De sterke manier is afscherming in de database: beveiliging op rijniveau (row level security). Elke tabel draagt per rij het kenmerk van de organisatie waar de rij bij hoort, en de database zelf weigert elke rij die niet bij de ingelogde gebruiker hoort, ongeacht wie of wat de vraag stelt. Een vergeten filter in de app levert dan een leeg scherm op, geen datalek. Ook AI-functies, koppelingen en exportfuncties vallen automatisch onder dezelfde regel, omdat ze door dezelfde database gaan.
Waar je op let bij een leverancier
Vraag of de isolatie in de database is afgedwongen of alleen in de applicatie, of dat aantoonbaar wordt getest (kan gebruiker A de data van organisatie B bewijsbaar niet lezen of schrijven), en of beheerders van de leverancier zonder toestemming bij klantdata kunnen. Een leverancier die deze drie vragen niet kort kan beantwoorden, heeft er niet over nagedacht.
Zo werkt het in Easyclose
Data-isolatie is bij Easyclose de allerhoogste prioriteit. Elke organisatie ziet uitsluitend haar eigen gegevens. Iemand van een andere organisatie kan jouw cijfers niet zien, niet wijzigen en niet wissen.
Afgedwongen in de database, niet alleen in de app
De afscherming hangt niet af van de schermen of de knoppen. Diep in de database zit per tabel een regel die bij elke rij controleert of die rij bij jouw organisatie hoort. Hoor je er niet bij, dan bestaat de rij voor jou simpelweg niet. Dit heet beveiliging op rijniveau. Ook langs een omweg kun je dus nooit bij andermans cijfers.
Organisatie A
| Vermeulen Techniek B.V. | ✓ ziet |
| Vermeulen Service & Onderhoud B.V. | ✓ ziet |
| Cijfers van organisatie B | ✕ afgeschermd |
Organisatie B
| Eigen administraties | ✓ ziet |
| Vermeulen Techniek B.V. | ✕ afgeschermd |
| Vermeulen Service & Onderhoud B.V. | ✕ afgeschermd |
Binnen je organisatie: rollen
Binnen je eigen organisatie bepaalt je rol wat je mag. Een eigenaar of beheerder kan meer dan een lezer. Wat elke rol mag, lees je in Gebruikers en rollen.
Verder lezen: Waar staat mijn data? · Al mijn data exporteren.
Veelgestelde vragen
Wat is row level security?
Beveiliging op rijniveau: een mechanisme in de database waarbij elke rij van elke tabel is gekoppeld aan een organisatie, en de database zelf bij elke opvraag alleen de rijen teruggeeft die bij de ingelogde gebruiker horen. De afscherming werkt daardoor ongeacht welke applicatie, koppeling of AI de vraag stelt.
Waarom is afscherming in de app alleen niet genoeg?
Omdat die afhangt van een filter dat bij elke opvraag door een programmeur moet worden toegevoegd. Eén vergeten filter, een nieuwe functie of een rapport dat rechtstreeks de database bevraagt, en gegevens van andere klanten worden zichtbaar. Afscherming in de database vangt precies die fouten op: een vergeten filter geeft dan een leeg scherm, geen datalek.
Kan de leverancier van cloudsoftware mijn cijfers zien?
Dat hangt af van hoe de leverancier zijn beheer heeft ingericht. De juiste inrichting is dat beheerders standaard geen toegang tot klantdata hebben en pas bij expliciete, tijdelijke toestemming van de klant kunnen meekijken, waarbij elke toegang wordt vastgelegd in een logboek dat niet kan worden gewist.
Hoe test je data-isolatie?
Met een geautomatiseerde test die als gebruiker van organisatie A probeert data van organisatie B te lezen en te schrijven, op elke tabel, en die faalt zodra er ook maar één rij doorkomt. Die test hoort bij elke wijziging van de software opnieuw te draaien.