Beveiliging op rijniveau in de database
Als uw organisatie al moeite heeft gedaan om beveiliging op rijniveau (RLS) in een database te implementeren, kunt u mogelijk een van de volgende technieken toepassen om optimaal gebruik te maken van uw bestaande RLS. Om de beveiligingsmodellen van de database te kunnen benutten, zijn live verbindingen vereist. Bovendien zijn deze technieken waarschijnlijk niet beschikbaar in Tableau Cloud; de Tableau-gebruikersnaam voor Tableau Cloud is een uniek e-mailadres dat doorgaans niet de gebruikersidentiteit is in de database.
Het is niet per se gemakkelijker of beter om een ingebouwd RLS-model te implementeren dan om het op te bouwen met Tableau in gedachten. Deze technieken worden over het algemeen toegepast wanneer een organisatie al in deze technologieën heeft geïnvesteerd en van die investering wil profiteren.
Opmerking: voor informatie over de alternatieven die u kunt toepassen om beveiliging op rijniveau in Tableau te implementeren, verwijzen wij u naar Overzicht van beveiligingsopties op rijniveau in Tableau.
Imitatie (Microsoft SQL Server)
Microsoft SQL Server (en een paar gerelateerde systemen) kan zodanig worden geconfigureerd dat gebruikers van de database alleen toegang hebben tot weergaven met ingebouwde RLS-filters, hetzij via Security Junction Tables, hetzij via weergaven die door de databasebeheerder zijn gemaakt. Tableau kan hier gebruik van maken via een concept dat ‘imitatie’ heet.
Bij het publiceren van een Tableau-databron met daarin een MS SQL Server-verbinding met Tableau Server, zijn er twee verificatieopties beschikbaar om gebruik te maken van imitatie. Welk menu u ziet, hangt af van of u zich bij SQL Server hebt ingelogd via netwerkverificatie of door uw gebruikersnaam en wachtwoord in te voeren.
Om RLS-filtering in te schakelen voor elke gebruiker die toegang heeft tot de gepubliceerde databron in Tableau Server, moeten het AD Uitvoeren als-account of de ingesloten SQL Server-referenties de machtiging EXECUTE AS hebben voor alle Tableau-gebruikers in de database die toegang hebben tot het dashboard of de databron. Alle Tableau-gebruikers moeten als gebruikers op de databaseserver bestaan, met SELECT-rechten voor de weergaven waarmee u verbinding probeert te maken (en waarop u RLS wilt toepassen). Zie Vereisten voor imitatie voor de uitgebreide lijst met vereisten.
Kerberos en beperkte delegatie
Beperkte delegatie binnen Tableau Server met behulp van Kerberos werkt op een vergelijkbare manier als imitatie, in de zin dat Tableau Server de Kerberos-referenties van de weergave van een werkmap of weergave kan gebruiken om een query uit te voeren namens de viewer. Als RLS is ingesteld op de database, ziet de viewer van de werkmap alleen zijn eigen data.
Zie Kerberos-delegatie inschakelen voor een uitgebreide lijst met databases waar Kerberos-delegatie wordt ondersteund. Active Directory is vereist; de computer waarop Tableau Server is geïnstalleerd, moet zijn gekoppeld aan het Active Directory-domein. De verificatiemethode(Link wordt in een nieuw venster geopend) die moet worden opgegeven bij het publiceren van de databron moet Referenties voor viewer zijn.
Houd er rekening mee dat Kerberos kan worden gebruikt voor RLS wanneer Microsoft Analysis Services wordt gebruikt.
OLAP-kubussen
OLAP-kubusverbindingen in Tableau beschikken niet over het equivalent van een databronfilter, dat vereist is voor de op rechten gebaseerde RLS-methode in Tableau. Ook is geen toegang mogelijk tot de USERNAME()-functie. Om deze redenen zijn Kerberos en beperkte delegatie een aanbevolen aanpak voor RLS met OLAP-databases, waarmee Tableau gebruik kan maken van gebruikersfiltering die al aan de kant van de OLAP-server is geïmplementeerd.
Als de viewers die het dashboard bekijken, geen deel uitmaken van het domein, kunnen gebruikersfilters handmatig worden gemaakt. Omdat de set gegenereerde gebruikersfilters echter niet kan worden toegevoegd als databronfilter, maar in plaats daarvan zich in de filtercontainer bevindt, is het belangrijk dat de functie Webbewerking en de functie Werkmap downloaden niet zijn toegestaan voor gepubliceerde weergaven die deze methode gebruiken.
SAML-delegatie en SAP HANA
Als Tableau Server is geconfigureerd om SAP HANA SSO configureren te gebruiken om eenmalige aanmelding mogelijk te maken, worden de referenties van de viewer gebruikt om de query als die gebruiker uit te voeren. Deze query werkt binnen de beveiliging die op gebruikersniveau is toegepast. De verificatiemethode(Link wordt in een nieuw venster geopend) die moet worden opgegeven bij het publiceren van de databron moet Referenties voor viewer zijn.
Initiële SQL om een gebruikerspecifieke sessie af te dwingen (Oracle VPD)
Met initiële SQL kunt u een SQL-opdracht opgeven die wordt uitgevoerd wanneer er verbinding wordt gemaakt met de database. Deze opdracht heeft als doel tijdelijke tabellen in te stellen die worden gebruikt tijdens de sessie of om een aangepaste dataomgeving in te stellen.
Voor Oracle VPD kunt u een sessie instellen die specifiek is voor een gebruiker door een bepaalde opgeslagen procedure of functie uit te voeren om de context van de databaseverbinding in te stellen, zodat deze overeenkomt met de gebruikersnaam van de Tableau-gebruiker:
begin DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]); end;
Voor het gebruik van RLS gelden dezelfde hoge vereisten als voor imitatie: de databasebeheerder moet VPD en alle bijbehorende gebruikers instellen om in de database te bestaan.
In MS SQL Server kunt u een EXECUTE als opdracht afdwingen (dit is echter vergelijkbaar met wat Tableau al doet met imitatie):
EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;
Opmerking: als de databron is ingesloten en een gebruiker machtigingen heeft om de werkmap op het web te bewerken of te downloaden, bestaat de RLS niet, omdat de oorspronkelijke SQL die deze afdwingt, eenvoudig kan worden verwijderd. De databron moet afzonderlijk worden gepubliceerd en mag niet in de werkmap worden ingesloten.
Vergelijkingsmatrix voor beveiligingsmethoden op rijniveau
Methode | Nuttig als | Pluspunten | Nadelen |
Rechtentabel (aanbevolen) |
|
|
|
CONTAINS() met extracten |
|
|
|
Imitatie |
|
|
|
Kerberos |
|
|
|
Initiële SQL |
|
|
|