Infotalk

Känslig data? Olika metoder att begränsa åtkomst på radnivå med SAS

02 juli Linus Hjorth

Att begränsa tillgång till delar av information i ett dataset har alltid varit en utmaning. Tidigare har man ofta skött denna hantering i en applikation. Men med ökade krav på ad-hoc-rapportering och explorativ dataanalys fungerar detta inte. Behörighetsstyrning måste flytta närmare data. Då fungerar inte heller informationsmappar, och OLAP-kuber ger inte tillräcklig flexibilitet för analys.

Detta är en kortare översikt, riktat till er som jobbar praktiskt med administration av data. För en mer detaljerad genomgång med exempel, se min original-artikeln på SAS Communities.

Här är några metoder man kan använda sig av:

- Hantering i extern databas

- SAS Scalable Performance Data Server

- SAS Federation Server

- SAS Metadata-bound libraries

- SAS metadata-variabeln _Metadata_Authenticated_Userid_

 

Extern databas

Här varierar stöd och metoder mellan de olika databaserna på marknaden, så det är svårt att ge en generell bild. Men som exempel kan jag nämna att man i SQL Server behöver lösa radbehörighet med Stored Procedures och behörighetsskyddade vyer/tabeller. En ganska teknisk hantering alltså. Kan vara ett intressant alternativ om man investerat i en sådan plattform och har kompetensen i huset.

Scalable Performance Data Server

SPD Server har en ordentlig behörighetsstruktur med grupper och ACL för att nämna något. Samt att man med makrovariabel-liknande funktionalitet kan anropa användarens id eller grupptillhörighet vid filtrering i vy-definitioner. Och dessutom som en constraint på själva tabellen – vilket gör det enkelt och kraftfullt. Om man redan har sitt data här är SPD Server det naturliga valet för att sköta radbehörighet.

Federation Server

En modul från Data Flux-familjen. Huvudfunktionen är virtualisering och att fungera som en gemensam miljö där åtkomst till olika datakällor kan administreras på ett ställe. En trevlig funktion att man kan sätta upp regler hur fält eller delar av fält kan maskas, t.ex. personnummer. Och även skapa filtrering baserat på roll, användare eller grupp. En lösning man kanske inte väljer enbart för att hantera radbehörighet - men som i fallen ovan, om man dessutom har andra behov som virtualisering kan detta vara ett intressant alternativ.

Metadata-bound libraries

Grundförutsättningen för att använda radbehörighet med denna teknik är att man binder ett bibliotek med fysiska SAS-tabeller till metadata. Oavsett vad man sedan gör med tabellen, så kommer den i sig vara helt beroende av den metadataserver som den är bunden till.

När väl detta är gjort, så kan man i metadata definiera s.k. Permission Condition på tabeller, t.ex. på en dimension med den interna organisationshierarkin. I denna Permission Condition kan man använda sig av Identity Driven Properties, vilket är automatiska variabler som finns tillgängliga via metadata i ”realtid”. Dessa kan då användas vid filtrering i Permisson Condition. Ett exempel på tillämpning är från Nordea, där analytiker enbart får se data från sitt eget land. De är då medlem i grupper med namn som motsvarar landskoden som också återfinns i data.

Identity Driven Properties kan även användas i informationsmappar och i Visual Analytics. Det senare fallet har vi på Infotrek använt med framgång hos Landstinget i Uppsala Län, LUL.

Metadata-variabeln _Metadata_Authenticated_Userid_

Ytterligare ett sätt som använder metadata-identitet, med en s.k. pseudo-variabel. Denna kan användas i en vanlig vy, och på liknande sätt som nämnts tidigare vara en del i ett filtreringsvillkor. Känns inte lika säkert, enkelt och flexibelt som Identity Driven Properties.

Sammanfattning

Användning av extern databas kan komma ifråga om man redan har sitt data där. Samma sak gäller SPD Server.

Om det blir för svårt att hantera i extern databas, och om man samtidigt vill investera i virtualisering, kan Federation Server vara ett alternativ.

Annars anser jag att metoden med metadata-bound libraries är både enkel och effektiv. Och de flesta större SAS-sajter licensierar metadataserver på ett eller annat sätt. Den tydligaste begränsningen för denna lösning att man är bunden till Base SAS-tabeller.

SAS Scalable Performance Data Server Table WHERE Constraints

SAS 9.4 Guide to Metadata-Bound Libraries, Second Edition

Fine-Grained Controls for Data

Providing Fine-Grained Access Using Views

SAS(R) 9.4 Intelligence Platform: Security Administration Guide, User Import Macros

Paper SAS1779-2015: Row-Level Security and SAS® Visual Analytics

Linus Hjorth

Linus Hjorth är Infotreks områdesansvarig för datalager. En specialist inom datalager-arkitektur som blir extra engagerad när affärskrav ska omvandlas till datamodeller.

Finns inga kommentarer för detta inlägg

Lämna en kommentar
  •  

    Send this to a friend