Säkerhet på radnivå i databasen

Om organisationen redan har börjat skapa säkerhet på radnivå (RLS, row-level security) i en databas kan det hända att du kan använda en av följande tekniker för att dra nytta av aktuell RLS. För att använda databasens säkerhetsmodeller krävs liveanslutningar. Dessa tekniker är sannolikt inte tillgängliga i Tableau Cloud. Tableau-användarnamnet för Tableau Cloud är en unik e-postadress som vanligtvis inte är samma som användaridentiteten på databassidan.

Det är inte nödvändigtvis enklare eller bättre att implementera en inbyggd RSL-modell än att skapa en med Tableau i åtanke. Dessa tekniker används oftast när en organisation redan har investerat i dessa tekniker och de vill dra nytta av investeringen.

Obs! Information om vilka alternativ du kan använda för att implementera säkerhet på radnivå i Tableau finns i Översikt över säkerhetsalternativ på radnivå i Tableau.

Impersonering (Microsoft SQL Server)

Microsoft SQL Server (och några andra relaterade system) kan konfigureras så att användare av databasen endast har tillgång till vyer med inbyggda RLS-filter, antingen med säkerhetsknutpunktstabeller eller vyer som skapats av DBA. Tableau kan dra nytta av detta med hjälp av ett koncept som kallar ”impersonering”.

När du publicerar en Tableau-datakälla med en MS SQL Server-anslutning till Tableau Server har du två autentiseringsalternativ för att dra nytta av impersonering. Vilken meny du ser beror på om du har loggat in på SQL Server genom nätverksautentisering eller genom att ange ditt användarnamn och lösenord.

För att aktivera RLS-filtrering för användare som har tillgång till den publicerade datakällan i Tableau Server måste antingen AD-kontot Kör som eller de inbäddade inloggningsuppgifterna för SQL Server har behörigheten EXECUTE AS för alla Tableau-användare i databasen som kommer att öppna instrumentpanelen eller datakällan. Alla Tableau-användare måste finnas i databasservern som användare, med SELECT-rättigheter för de vyer som de försöker ansluta till (och har RLS tillämpat på). I Impersoneringskrav finns en utförlig lista över krav.

Kerberos och begränsad delegering

Begränsad delegering i Tableau Server med Kerberos fungerar ungefär som impersonering på så vis att Tableau Server kan använda Kerberos-inloggningsuppgifterna för visningen av en arbetsbok eller vy för att köra en fråga för användarens räkning, så om RLS har konfigurerats på databasen ser användaren av arbetsboken endast sina data.

En utförlig lista över databaser som har stöd för Kerberos-delegering finns i Aktivera Kerberos-delegering. Active Directory krävs. Den dator där Tableau Server har installerats måste kopplas till Active Directory-domänen. Autentiseringsmetoden(Länken öppnas i ett nytt fönster) som anges när datakällan publiceras måste vara inloggningsuppgifter till Viewer.

Observera att Kerberos kan användas för RLS när du använder Microsoft Analysis Services.

OLAP-kuber

OLAP-kuber i Tableau har inte något som motsvarar ett datakällsfilter, vilket krävs för den berättigandetabellbaserade RLS-metoden i Tableau och för tillgång till funktionen USERNAME(). Av denna anledning rekommenderas Kerberos och begränsad delegering vid användning av RLS med OLAP-databaser, då det gör att Tableau kan utnyttja användarfiltrering som redan har införts på OLAP-serversidan.

Om användarna som visar instrumentpanelen inte kommer att vara del av domänen är det möjligt att använda den manuella metoden för att skapa användarfilter. Eftersom det inte går att lägga till den genererade användarfilteruppsättningen som ett datakällsfilter, då den i stället placeras på filterhyllan, är det viktigt att funktionerna Webbredigering och Ladda ner arbetsbok inte tillåts för publicerade vyer där den här metoden används.

SAML-delegering och SAP HANA

Om Tableau Server konfigureras till att använda Konfigurera enkel inloggning med SAP HANA för att tillhandahålla en upplevelse med enkel inloggning, används användarens inloggningsuppgifter för att köra frågan som den användaren. Frågan körs då med den säkerhet som tillämpas på den aktuella användarnivån. Autentiseringsmetoden(Länken öppnas i ett nytt fönster) som anges när datakällan publiceras måste vara inloggningsuppgifter till Viewer.

Inledande SQL för att framtvinga en användarspecifik session (Oracle VPD)

Med inledande SQL kan du ange ett SQL-kommando som körs när anslutningen upprättas till databasen i syfte att konfigurera tillfälliga tabellen som ska användas under sessionen eller konfigurera en anpassad datamiljö.

För Oracle VPD kan du konfigurera en session som är specifik för en användare genom att köra en särskild lagrad procedur eller funktion och ange sammanhanget för databasanslutningen så att den matchar Tableau-användarens användarnamn:

begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;

Samma höga krav gäller vid användning för RLS som för impersonering. DBA måste konfigurera VPD och alla associerade användare måste finnas i databasen.

På MS SQL Server kan du framtvinga kommandot EXECUTE (detta liknar dock det Tableau redan gör med impersonering):

EXECUTE AS USER = [TableauServerUser] WITH NO REVERT;

Obs! Om datakällan har bäddats in och en användare har behörighet att webbredigera eller ladda ner arbetsboken finns inte någon RLS, då den inledande SQL som tillämpar den enkelt kan tas bort. Datakällan bör publiceras separat i stället för att bäddas in i arbetsboken.

Jämförelsematris av metoder för säkerhet på radnivå

MetodAnvändbar närFördelarNackdelar
Berättigandetabell (rekommenderas)
  • Det finns ett koncept med berättiganden i databasen
  • Organisationen konfigurerar säkerhet på radnivå för första gången
  • Enkelt att testa, uppdatera, upprätthålla och skala
  • Fungerar med både liveanslutningar och extrakt i version 2018.3+
  • Kräver att berättigandetabell skapas och upprätthålls
  • Kan kräva val och skapande av lämpliga nycklar för att optimera prestanda
CONTAINS() med extrakt
  • Implementerar RLS i extrakt före version 2018.3
  • Gör att du kan dra nytta av extrakteffektivitet
  • Kräver kartläggning av alla användare i en enda kolumn
  • Svårt att växla tillbaka till liveanslutningar på grund av strängberäkning
Impersonering
  • Alla användare som öppnar data finns som en användare i SQL Server (vanligtvis interna driftsättningar)
  • Säkerhet hanteras och upprätthålls på en enda plats – i databasen
  • Kräver att alla personer som öppnar vyn finns som användare i SQL Server
  • Fungerar endast med Microsoft SQL Server
Kerberos
  • Alla nödvändiga databaser har konfigurerats för Kerberos-delegering och RLS konfigureras i databasen (vanligtvis interna driftsättningar)
  • Användarens namn visas i åtkomstloggarna för databasen.
  • Säkerhet hanteras och upprätthålls i databasen
  • Tableau måste konfigureras så att det kan använda LDAP – Active Directory
  • Tableau Server måste kopplas till AD-domänen
  • Alla användare måste finnas i AD-domänen
Ursprunglig SQL
  • Databasen har stöd för inledande SQL och RLS konfigureras på databassidan
  • Gör att Tableau-parametrar kan överföras vid inläsning
  • Dedikerad anslutning som inte kan delas med andra användare
  • Användare måste finnas i databasen för att kunna köra en fråga som användare
  • Inte alla databaser har stöd för inledande SQL
  • Potentiell inverkan på prestanda på grund av begränsad delning av cachelagring
Tack för din feedback!Din feedback har skickats in. Tack!