SQL Server 2016 – ein Sicherheits- und Performance-Release

Seit Anfang Mai ist es offiziell: Satya Nadella hat auf der Microsoft Ignite-Konferenz in Chicago den SQL Server 2016 vorgestellt. Und ich kann jetzt schon sagen, dass der SQL Server 2016 eines der in meinen Augen spannendsten Releases werden wird. Und zwar weil diesmal Sicherheit ganz klar mit im Fokus steht. Sicherheitsfeatures gehören neben Performance-Features zu den „Key Capabilities“ des kommenden SQL Server, so dass ich den SQL Server 2016 gern ein „Sicherheit & Performance-Release“ nenne.

Die Schlüsselfeatures sind demnach:

Always Encrypted

Mit diesem Feature ist es endlich möglich, eine Datenverschlüsselung anzubieten, bei der SQL Server selber keinen Zugriff auf die Daten im unverschlüsselten Zustand hat – und auch ein Datenbankadministrator Daten nicht entschlüsseln kann. Der Schlüssel wird hierbei in der Applikation bereitgehalten, wo die Verschlüsselung und Entschlüsselung stattfindet. Das war bisher nur mit eigenen Entwicklungen möglich.

Stretch Database

Stretched Tables bieten die Möglichkeit, innerhalb einer Tabelle Daten sowohl On-Premise als auch in der Cloud zu halten. Ähnlich wie bei Partitionierung wird hier transparent für die Applikation ein Teil der Daten nach Microsoft Azure ausgelagert, und nur dann geladen, wenn nötig. – Hier sollte man also sicherstellen, mit ungünstigen Abfragen keine Index-Scans in die Cloud zu verursachen.

Um die Daten zu schützen, funktionieren Stretched Tables auch im Zusammenspiel mit Always Encrypted. Es bleibt abzuwarten, wie dieses Feature die Hemmungen, Daten in die Cloud zu geben, beeinflusst. Microsoft selber hat jedenfalls sicherlich kein Interesse daran, den Zugang zu seinen Systemen für Geheimdienste zu vereinfachen, und Always Encrypted dürfte ein klares Signal sein.

Real-time Operational Analytics & In-Memory OLTP

Unter diesem Feature verbirgt sich die Verheiratung der beiden „Performance-Killer“ Features Columnstore Indexe – für OLAP-Szenarien – und Memory Optimized Tabellen für In-Memory OLTP. Das heißt, damit sind performante analytische Abfragen auf den frischen OLTP Daten in In-Memory möglich. In meinen Augen ist dieses Feature der Killer überhaupt, da Indexe auf den Tabellen direkt synchron sein müssen, und nicht, wie bei manch anderem Anbieter von In-Memory Datenbanken, erst mit Verzögerung die Daten erhalten. Auf dem PASS Summit 2014 war dieses Feature bereits kurz zu sehen, jedoch erst jetzt ist es offiziell und hat einen Namen.

Das waren die Highlights, jedoch ist die Liste der weiteren neuen Features noch lang, und auch diese haben es in sich. Ich versuche, die wichtigsten einmal aufzulisten:

Verbesserungen zu Columnstore Indexes

  • Nicht-parallelisierte Abfragen können den Batch-Mode verwenden
  • AlwaysOn Readable Secondary unterstützen beschreibbare Columnstore Indexe
  • Columnstore Indexe auf einer Memory-Optimized Table möglich – nur im InterOP Mode verwendbar
  • Filtered Nonclustered Columnstore Indexes
  • Primary und Foreign Keys-Unterstützung

Verbesserungen für In-Memory OLTP

  • ALTER TABLE und ALTER Procedure Operationen
    • Z.B. zum Ändern des Bucket counts von Hash Indexen
  • Multithreaded Writes und Merge-Prozess
  • Parallele Pläne
  • Fremdschlüssel auf In-Memory Tabellen
  • Viele weitere Verbesserungen Hinsichtlich T-SQL Support

Und weitere neue Security-Features:

Dynamic Data Masking

Damit lässt sich, basierend auf Policies, definieren, dass je nach User bestimmte Daten nur maskiert angezeigt werden.

Row-Level Security

Row-Level Security (RLS) ist um genau zu sein ein Feature um die Entwicklung von Zeilenbasierten Zugriffsmechanismen wesentlich zu vereinfachen und aus der Applikation in die Datenbank zu verlagern. In der jetzigen Implementation ist es noch recht einfach, über Side-Channel Attacken dennoch an die Daten heranzukommen. Daher muss man, wie eigentlich immer bei Sicherheits-Design, alle Bestandteile der Applikation im Blick haben.

Warum eine wirklich sichere Zeilenbasierte Zugriffskontrolle nicht so trivial ist, kann man unter anderem in diesem Blog-Post von mir nachlesen:

SQL Server Row- and Cell-Level Security – Disclosure vulnerability

Weitere Features in verschiedenen Bereichen:

PolyBase

Abfragen von relationalen und Nicht-relationalen Daten in Hadoop-Clustern mit T-SQL über sogenannte External Tables.

Query Store

Dieses Feature wurde schon mehrere Male von Conor Cunningham auf verschiedenen Konferenzen angedeutet. Jetzt kommt es wirklich. Wenn eingestellt (pro Datenbank), werden im Hintergrund automatisch Abfragen und deren Pläne sowie Ausführungsstatistiken gesammelt, so dass man diese später nachvollziehen kann. Zusätzlich dazu kann man sehr leicht einen identifizierten Abfrageplan wiederverwenden.

Live Query Statistics

Im SQL Server 2016 erwecken Ausführungspläne „zum Leben“. Das lässt sich am besten mit einem Bild/Video veranschaulichen:

Temporal Tables

Mit Temporal Tables werden Daten automatisch versioniert und stehen später für Abfragen nach Zeitraum der Gültigkeit zur Verfügung. Ähnlich, wie man es für Slowly Changing Dimensions/SCDs (Langsam veränderliche Dimensionen) in Datawarehouses selber oft entwirft.

Trace Flag 4199, welches seit SQL Server 2005 SP3 CU 6 für alle SQL Server Installationen relevant ist, da es diverse Fixe des Query Prozessors erst aktiviert, soll mit dem SQL Server 2016 kaum noch nötig sein. Warten wir auf Details, um das beurteilen zu können.

Multiple Tempdb Datendateien

Bei der Installation wird direkt nachgefragt, wie viele TempDB Datendateien angelegt werden sollen. Standardmäßig wird hier die Anzahl der Cores mit einem Maximum von 8 verwendet. Damit werden auch weniger versierte Administratoren auf die Thematik von Latch-Contention in der Tempdb aufmerksam, und eine wichtige Best Practice wird damit standardmäßig angewandt.

Hochverfügbarkeit

  • 3 Synchrone Replicas
  • Unterstützung für Group Managed Service Accounts für AlwaysOn Failover Cluster
  • AlwaysOn Availability Groups unterstützen Distributed Transactions und DTC auf Windows Server 2016
  • AlwaysOn Availability Group Failover bei Database Offline
  • ReadOnly Replikas können im Round-Robin-Verfahren angesprochen werden

T-SQL

Formatieren von Query Resultsets als JSON – ähnlich wie XML. Und möglicherweise wird es ein ähnliches Nischendasein erleiden. Hier sollte man auch an die, im Verhältnis zu einem Applikation-Server, teuren CPU-Lizenzen denken.

  • TRUNCATE TABLE auf Partitionsebene
  • ALTER COLUMN und viele weitere DDL-Befehle können nun Online erfolgen
  • Neue Query Hints MIN_GRANT_PERCENT und MAX_GRANT_PERCENT
  • Transparent Data Encryption unterstützt nun die Intel AES-NI Hardware Acceleration Instruction Sets
  • Mit dem Kauf von Revolution Analytics soll die Programmiersprache R in SQL Server 2016 integriert werden, um direkt aus der Datenbank spezielle analytische Abfragen zu starten – siehe dazu auch mein 2. Kommentar zu JSON

Analysis Services

  • Paralleles Processing (Aufbereiten) für multiple Table Partitions in Tabular Modellen
  • Neue DAX Funktionen

Integration Services

  • AlwaysOn-Unterstützung für die SSIS-DB
  • Inkrementelles Deployment von Paketen

Reporting Services

Reporting Services sollen endlich CSS-Stylesheets erhalten – darauf haben wir schon lange lange gewartet. (Damit wird dann auch endlich meine vielfach eingesetzte Technik mit SQL-Tabellen obsolet) Auch sollen die Berichts-Parameter verbessert werden und Hierarchien und Autocomplete erhalten.

Weiteres:

  • High DPI (Dots Per Inch) Skalierung und Geräte für bessere Auflösung von Report-Elementen
  • Diverse kleine Verbesserungen für Abonnements

Master Data Services

Im Wesentlichen Performance Steigerung durch Datenkomprimierung und ein neues Super User-Konzept

Weiteres:

  • „Ongoing preview updates“ – dahinter verbirgt sich die Möglichkeit, nach der Installation der CTP2 ohne neuere Installationen einfach per Update neue Funktionen online zu erhalten
  • Azure SQL Data Warehouse Das Analytics Platform System (APS), früher Parallel Datawarehouse (PDW) ist nun über Azure verfügbar! – azure.microsoft.com/en-us/campaigns/sql-data-warehouse/
  • Mit dem Erwerb von DataZen sollen sich auch für mobile Geräte optimierte Reports anbieten lassen

SQL Server 2016 CTP2

Die CTP2 des kommenden SQL Server, die viele der hier vorgestellten Features bereits enthält, steht seit 27. Mai hier zum Download bereit:

0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert