SQL Server 2016 Data Adgang

Relaterede dokumenter
Views etc. Databaser

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

Data lagring. 2. iteration (implement backend)

Introduktion til SQL queries

Database. lv/

Introduktion til programmering

Agenda. Intro v/ Thomas Vestergaard, it-craft A/S. Platforms modernisering med SQL Server 2016 v/ Liv Törnquist, Asger Haugaard, Microsoft

Begrænsninger i SQL. Databaser, efterår Troels Andreasen

MsSQL: Basal performance tuning, part 1

A11: Last Year s Exam

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Import af rekursivt (parent-child) hierarki i Palo

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

Database programmerings tips

Anvisning i aflevering af bitemporale data

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach 2002

Database design for begyndere

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

DB undervisning 01-01

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

Eksamen, DSDS, efterår 2007

Få sin querystring til at fungere. (Nybegyndere)

Logning. V/ Hans Kennet Larsen

The Design Diaries Project 3 2. Semester. Blog om designprincipper

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

Databaseadgang fra Java

Databasesystemer. IT Universitetet i København 7. juni 2005

Introduktion til SQL

Conceptual, logic, physical

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Introduktion til programmering

3. semester, 2. projekt: Database

Casper Fabricius ActiveRecord. O/RM i Ruby on Rails

Introduktion til Microsoft R. Steen Dybboe, Pragmatic BI MsBIP 2017 Aarhus

Anne Randorff Højen

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

Den Danske Esri Brugerkonference 2019 What's new in ArcGIS Enterprise og Administration af ArcGIS Enterprise

3. SEMESTER 2. PROJECT MULB Gruppe september 2015

En Kort Introduktion til Oracle

SAS Scalable Performance Data Server

Databasesystemer. IT Universitetet i København 8. juni 2006

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS

Jayne Alice Jensen [Link til portfolio]

FKG datamodellen Version Implementeringsguidelines. FKG datamodellen Version Implementeringsguidelines

Introduktion til programmering

Søren Løbner (lobner) ddb Databaser

Password systemer til husbehov

Databasesystemer. IT Universitetet i København 16. januar 2006

Projekt 3: Interaktionsudvikling 11/04.14

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Portal Registration. Check Junk Mail for activation . 1 Click the hyperlink to take you back to the portal to confirm your registration

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Database optimering - Indeks

Oracle PL/SQL. Overview of PL/SQL

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

SQL-opgaver 5 løsning

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

JEM1 LAB14. Journal. Jonas Lange, Martin Funding Fisker og Torben Porsgaard 11/4/2009

Design Diaries.

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Databaser Obligatorisk opgave 1

Eksamen, DSDS, forår 2009

Microsoft Dynamics CRM 2013

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

Workshop Persistence

Eksamen, DSDS, efterår 2008

Reeksamen, DSDS, forår 2008

Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari

ODBC made easy på dansk (når bare man ved hvordan) Jesper Michelsen, Data warehouse & Analyse

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Software Projekt NoSQL vs RMDB

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.

The Design Diaries. Link til blog

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Tredje undervisningsgang. Database

Hack of the Month opgave 2

PROC TRANSPOSE. SAS-tabellen - hensigtsmæssig lagring af data. Copyright 2011 SAS Institute Inc. All rights reserved.

Selection Udvælgelse. For at markere mere end en polygon, holdes Ctrl samtidig. Klik på næste polygon. Gentag for i alt 5 polygoner.

Afleveringsopgave. Efterår 2001

1. Basal select med (stjerne)

Fra ER-Diagram til Relationel model i 7 step

Java web applikationer med Tomcat

Log ind med PHP. Denne guide er oprindeligt udgivet på Eksperten.dk. Skrevet den 09. May 2011 af dab93 I kategorien Programmering / Andre

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL)

Introduktion til OPC Access

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

WINDCHILL TIPS & TRICKS

I denne guide vil jeg prøve at give en beskrivelse af hvad man skal gøre for at få adgang til Microsoft Azure via Dreamspark når man går på Easj.

Septimas høringssvar vedrørende dokumenteterne FKG datamodellen - Version Fysisk implementering.pdf og FKG_2_3_1_mssql.sql

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

Software Design (SWD) Spørgsmål 1

Efterår 2002 Note 10. Temaopgave

DET KONGELIGE BIBLIOTEK NATIONALBIBLIOTEK OG KØBENHAVNS UNIVERSITETS- BIBLIOTEK. Index

Grænseflade til indberetning af institutionsmæssige stamoplysninger til EfterUddannelse.dk

Kursus/workshop: SQL

Eksamen, DSDS, forår 2008

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

Transkript:

SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015

Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet

Hvem er jeg Selvstændig BI konsulent Erfaring fra mange ApplikationDatavarehus projekter Synes Captain America er den sejeste Marvel helt Har ingen hund, men spiller golf

Row Level Securuty

Row Level Security Kommer ud af Azure Row-by-row sikkerhed, minimal påvirkning fra skema, applikationer og forespørgsler Mål: Lad SQL Server Engine håndtere sikkerheds policies Ingen GUI bortset fra lister i SSMS

Use Cases AZURE: Hospitalsafdelinger med patientdata læger og sygeplejersker. Salgsinformation og organisatoriske niveauer HR relaterede data Pony Rideskoler

Row Level Security - Anvendelse Security Policy Id Init First Last Birth Salery 1 SJI Stina Jindshøj 1979 21000 2 SRÅ Sigrid Råløkke 1983 22000 3 SDÅ Søren Dåe 1972 24000 4 PRI Peter Risskow 1976 18000 5 BBE Børge Berth 1979 17000 6 SGI Slawek Gislowski 1967 29000

Row Level Security - Anvendelse Security Policy Id Init First Last Birth Salery 1 SJI Stina Jindshøj 1979 21000 2 SRÅ Sigrid Råløkke 1983 22000 3 SDÅ Søren Dåe 1972 24000 4 PRI Peter Risskow 1976 18000 5 BBE Børge Berth 1979 17000 6 SGI Slawek Gislowski 1967 29000

Filter Funktionen SELECT, INSERT, UPDATE, DELETE ved ikke, at data nedenunder er filtreret Specialiseret INLINE table valued function Schema Binding Returnerer 0 eller 1 0 eller mange partametre CREATE FUNCTION sec.accesspredicate(@empid INT) RETURNS TABLE WITH SCHEMABINDING AS RETURN SELECT 1 AS accesspredicate_result FROM dbo.employee e WHERE (e.init = USER_NAME() AND e.id = @EmpID) OR USER_NAME() = 'dbo';

Implementering Filter funktion bindes til tabel Filterfunktioner kan anvendes flere steder KUN en binding pr. tabel CREATE SECURITY POLICY sec.ponyridepolicy ADD FILTER PREDICATE sec.accesspredicate(employeeid) ON dbo.ponyrides

Sikkerhed Schema Binding SECURITY POLICY bound kolonner kan ikke ændres resulterer i fejl. Bundne Filter funktioner kan ikke ændres.

Demo

Begrænsninger Schema Binding Index Views er out of bounds Columnstore tabeller.. endnu! Full Text indekser ER understøttet, MEN man kan få lov til at søge i data alligevel.. endnu! INSERT out of role er mulig.. endnu!

Best Practices ( so far ) Anvend et dedikeret skema til objekter Hold filter funktioner simple Undgå type konverteringer Undgå rekursion Undgå komplicerede joins

Dynamic Data Masking

Dynamic Data Mask Data Obfuscation. Sandsynligvis ment som supplement til andre krypteringsteknikker Ingen GUI Compatibility Level 130 (SQL Server 2016) ID Firstname Lastname Email CPR BirthDate 1 Sxxxxx Jixxxxx Sxxx@xxxx.com 1xxxxx-xxx4 2000-01-01 2 Sxxxxx Råxxxxx Sxxx@xxxx.com 1xxxxx-xxx0 2000-01-01 3 Sxxxxx Dåxxxxx Sxxx@xxxx.com 0xxxxx-xxx7 2000-01-01 4 Pxxxxx Rixxxxx Pxxx@xxxx.com 1xxxxx-xxx0 2000-01-01 5 Bxxxxx Båxxxxx Bxxx@xxxx.com 0xxxxx-xxx3 2000-01-01 6 Sxxxxx Gixxxxx Sxxx@xxxx.com 2xxxxx-xxx9 2000-01-01

Typer af Maskering Default Email Custom Fuld maskering efter type af felt Maskerer alt bortset fra første bogstaver og suffix Angiver første og sidste bogstav, samt masken ADD MASKED WITH (FUNCTION = 'default()'); ADD MASKED WITH (FUNCTION = 'email()'); ADD MASKED WITH (FUNCTION = 'partial(1, xxxxx-xxx",1)') 1970-05-29 tony@stark.com 290570-4587 2000-01-01 txxx@xxxx.com 1xxxxx-xxx1

SYNTAX CREATE TABLE dbo.avengers ( MemberID INT IDENTITY PRIMARY KEY, FirstName NVARCHAR(100) MASKED WITH (FUNCTION = 'partial(1,"xxxxxxx",0)') NULL, LastName VARCHAR (100) NOT NULL, PhoneNo VARCHAR(12) MASKED WITH (FUNCTION = 'default()') NULL, Email VARCHAR (100) MASKED WITH (FUNCTION = 'email()') NULL ); ALTER TABLE dbo.avengers ALTER COLUMN LastName ADD MASKED WITH (FUNCTION = 'partial(1,"xxxxx",0)');

Demo

Begrænsninger i dag!!! Ikke alle datatyper er understøttet og vil næppe blive (var)binary / image sql_variant, hierarchyid, uniqueidentifier Rowversion (timestamp) Spatial types Beregnede kolonner, Krypterede kolonner, Temporal kolonner, Sparse kolonner m.fl

. CTP Udvikles EXECUTE AS USER = N'Bob'; SELECT TOP (1) FirstName, CAST(FirstName AS NCHAR(32)) FROM dbo.employeeinfo; REVERT; Firstname (No column name) Firstname (No column name) SXXXXX Siegfred SXXXXX XXXX CTP 2.0 CTP 2.3

Konklusion Dynamic Masking Row Level Security Id Init First Last Birth Birth Salery 1 SJI Stina Jindshøj 2001-01-01 1979 210000 2 SRÅ Sigrid Råløkke 2001-01-01 1983 220000 3 SDÅ Søren Dåe 2001-01-01 1972 240000 4 PRI Peter Risskow 2001-01-01 1976 180000 5 BBE Børge Berth 2001-01-01 1979 170000 6 SGI Slawek Gislowski 2001-01-01 1967 290000

Konklusion.. Indtil videre Let at anvende Ikke 100% sikkert man skal kende begrænsningerne Det er ikke end-to-end kryptering Alternativet: Always Encrypted

Resources MSDN: https://msdn.microsoft.com/en-us/library/dn765131.aspx Aaron Betrand https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-rowlevel-security-introduction/ https://www.mssqltips.com/sqlservertip/4005/sql-server-2016-rowlevel-security-limitations-performance-and-troubleshooting/