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

MethodeNuttig alsPluspuntenNadelen
Rechtentabel (aanbevolen)
  • Er is een bestaand concept van rechten in de database
  • De organisatie stelt voor het eerst beveiliging op rijniveau in
  • Eenvoudig te testen, bijwerken, onderhouden en op- en af te schalen
  • Werkt voor zowel live verbindingen als extracten in versie 2018.3
  • Hiervoor is het maken en onderhouden van een rechtentabel vereist
  • Mogelijk moeten er geschikte sleutels worden geselecteerd en gemaakt om de prestaties te optimaliseren
CONTAINS() met extracten
  • Implementatie van RLS in extracten vóór versie 2018.3
  • Hiermee kunt u profiteren van de efficiëntie van extracten
  • Vereist dat alle gebruikers aan één kolom worden toegewezen
  • Moeilijk om terug te schakelen naar live verbindingen vanwege tekenreeksberekeningen
Imitatie
  • Elke gebruiker die toegang heeft tot de data, bestaat als gebruiker in uw SQL-server (meestal interne implementaties)
  • De beveiliging wordt op één plek beheerd en onderhouden: in de database
  • Iedereen die toegang tot de weergave heeft, moet als gebruiker binnen uw SQL Server bestaan
  • Werkt alleen voor Microsoft SQL Server
Kerberos
  • Alle benodigde databases zijn ingesteld voor Kerberos-delegatie en RLS is ingesteld in de database (meestal interne implementaties)
  • De naam van de viewer wordt weergegeven in de toegangslogboeken voor de database
  • De beveiliging wordt in de database beheerd en onderhouden
  • Tableau moet worden geconfigureerd om LDAP-Active Directory te gebruiken
  • Tableau Server moet worden gekoppeld aan het AD-domein
  • Elke gebruiker moet binnen uw AD-domein bestaan
Initiële SQL
  • De database ondersteunt initiële SQL en RLS is aan de kant van de database ingesteld
  • Tableau-parameters kunnen worden doorgegeven tijdens het laden
  • Toegewijde verbinding die niet met andere gebruikers kan worden gedeeld
  • Gebruikers moeten in de database bestaan om een query als gebruiker te kunnen uitvoeren
  • Niet alle databases ondersteunen initiële SQL
  • Mogelijke gevolgen voor de prestaties vanwege beperkte cache-sharing
Bedankt voor uw feedback.De feedback is verzonden. Dank u wel.