Object Level Security
Wat is Object Level Security
Object Level Security zorgt ervoor dat je bepaalde tabellen of kolommen helemaal onzichtbaar maakt voor sommige gebruikers. Je kiest zelf wie wat mag zien. Wanneer iemand geen toegang krijgt, dan verdwijnt dat object volledig uit het zicht. Het is alsof die tabel of kolom nooit bestaan heeft. De gebruiker ziet ze niet in het model, kan ze niet gebruiken in filters of visuals, en kan er geen informatie uit afleiden.
Dit is heel handig wanneer je wel een rapport wil delen, maar niet alle onderliggende info wil prijsgeven. Je kan bijvoorbeeld een rapport rond verkoopresultaten delen met de hele organisatie, maar de kolom met aankoopprijzen alleen zichtbaar maken voor het finance team. Voor andere gebruikers is die kolom gewoon weg.
Het idee is simpel. Geef mensen toegang tot de informatie die ze nodig hebben, maar houd gevoelige data veilig en netjes opgesloten.
Het verschil met Row Level Security
Object Level Security wordt vaak verward met Row Level Security, maar ze doen iets totaal anders.
Row Level Security bepaalt welke rijen iemand mag zien binnen een tabel. De gebruiker ziet de tabel wel, maar alleen de records die voor hem of haar toegankelijk zijn. Denk aan een verkoper die alleen de verkoopcijfers van zijn eigen regio mag zien. De rest van de rijen blijft verborgen.
Object Level Security gaat veel verder. In plaats van rijen te verbergen, verberg je hele tabellen of hele kolommen. De gebruiker kan er niet naar filteren, kan ze niet per ongeluk gebruiken, en ziet ook nergens dat ze bestaan.
Wanneer gebruik je wat
Je gebruikt Row Level Security wanneer verschillende mensen dezelfde tabel mogen zien, maar niet dezelfde rijen.
Je gebruikt Object Level Security wanneer sommige onderdelen van het model zelf niet gedeeld mogen worden, ongeacht de inhoud.
In de praktijk worden beide vaak samen gebruikt. Zo bouw je een datamodel dat veilig, duidelijk en gebruiksvriendelijk blijft, zonder dat je voor elke doelgroep een aparte versie van het rapport hoeft te maken.