MCSM (Microsoft Certified Solutions Master) Data Platform on SQL Server 2012

 

(de)
Einige meiner engsten Kollegen wissen es bereits, und nun teile ich es öffentlich mit:

Seit 31.12.2013 bin ich nicht mehr „nur“
Microsoft Certified Master SQL Server 2008 (MCM) sondern auch
Microsoft Certified Solutions Master Data Platform (MCSM), der höchsten Zertifizierungsstufe die man für SQL Server 2012 erreichen konnte!

Hier ist der Eintrag auf dem „Master-Blog“:
Introducing our latest MCSM: Data Platform Master - Andreas Wolter

:-)

(en)
A few of my closest colleagues already know, and now I am announcing it publicly:

Since 31 December 2013 I am no longer “merely”
Microsoft Certified Master SQL Server 2008 (MCM) but also
Microsoft Certified Solutions Master Data Platform (MCSM), the highest certification that was achievable for SQL Server 2012!

Here the entry on the „Master-Blog“:
Introducing our latest MCSM: Data Platform Master - Andreas Wolter

:-)

MCSM_Data_Platform_SQL_Server_2012 

MCSM: Data Platform Solutions Master

Der wahrlich krönende Abschluss eines Jahres mit mehr als einem Dutzend Vorträgen auf deutschen und internationalen Konferenzen, die ich aufgrund der Einstellung der „fortgeschrittenen Zertifizierungen“ durch Microsoft schwerlich noch toppen werden kann. Zugleich ist das ein super Einstieg für 2014.

Die Entscheidung, auch diese Zertifizierung noch anzustreben, habe ich erst relativ spät getroffen: auf dem deutschen PASS Camp. Die Zeitplanung dafür konnte ich jedoch erst Mitte Dezember angehen.

Und so lief es ab:

MCSM: Data Platform Solutions Master

This makes for a truly crowning conclusion of a year with more than a dozen presentations at German and international conferences, which I will hardly be able to outdo due to Microsoft’s shutting down of the “advanced certifications”. At the same time, it is a great start into 2014.

I have made the decision to pursue this certification fairly late – at the German PASS Camp. However, I could only tend to the timing in mid-December.

This is how it went:

Am 17.12. habe ich mich für das Knowledge-Examen für den 18.12. angemeldet. Absolviert habe ich es dann innerhalb von knapp zwei Stunden bei einem Zwischenstopp auf dem Weg nach Hamburg zu einem Kunden.

Exam 88-986: MCSM Data Platform Knowledge Exam

Die Ergebnisse erhielt ich prompt.
Daraufhin konnte ich mich am selben Tag noch schnell für die praktische Prüfung, das „Lab Examen“ anmelden.

Am 31.12. war noch ein Slot von 16:00 - 23:30 Uhr frei. Erfreulicherweise konnte dieser dann kurzfristig noch einen Tag vorverlegt werden, so dass ich nicht bis kurz vor Neujahr am Rechner sitzen musste.

Da ich an den Feiertagen dann auch noch zweimal quer durch Deutschland fuhr, war eigentlich ohnehin nur wenig Gelegenheit für intensives Lernen.

Am Freitag vorher habe ich noch meine Umfrage zu Datenbankbesitz & Sicherheit gestartet (an der teilzunehmen ich euch alle herzlich einlade) und hatte dann noch ein Wochenende, mich geistig fit zu machen. Das Wissen, dass dies die letzte Gelegenheit sein würde, da Microsoft diese Prüfung am 31.12.13 letztmalig durchführte, hat ordentlich Druck erzeugt: Es würde keine Wiederholungschance geben. Letztlich war auch keine nötig: ich habe bestanden.

On 17 December, I signed up for the Knowledge Exam to be taken on 18 December. I then passed the exam within just under two hours during a stopover on my way to a customer in Hamburg.

Exam 88-986: MCSM Data Platform Knowledge Exam

I received the results immediately.
Subsequently, I was able to quickly register for the practical exam, the so-called “Lab Exam,” on the same day.

They had a slot available on 31 December, from 4 pm to 11:30 pm. Fortunately, they were able to move it to one day earlier on short notice so that I did not have to end up staying at the PC just shortly before New Year’s.

Since I was also travelling across Germany during the holidays, it actually left only few occasions for intensive study.

That previous Friday, I also launched my survey on Database Ownership & Security (to which I am inviting you all cordially to participate) and thus had one weekend to prep myself mentally. Add to this the extra pressure of knowing that this would be the last opportunity, as Microsoft carried out this exam one last time on 31 December 2013: meaning, there would be no chance to retake the exam. Which, ultimately, was not necessary: I passed the exam.

Exam 88-987: MCSM Data Platform Lab Exam

Zum Lab-Examen selber: Im Gegensatz zu den 5:25 Stunden für das „Exam 88-971: SQL Server 2008 Microsoft Certified Master: Lab Exam waren für das MCSM-Lab 7 Stunden angesetzt. Entsprechend gab es auch mehr Aufgaben. Genauer darf ich darauf nicht eingehen.

Als vermutlich letzter Prüfling darf ich aber sagen: Es hat Spaß gemacht! Und alle Mühen für den MCM und MCSM waren es Wert.

Exam 88-987: MCSM Data Platform Lab Exam

About the Lab Exam: Contrary to the 5:25 hours allotted for the „Exam 88-971: SQL Server 2008 Microsoft Certified Master: Lab Exam, it was 7 hours for the MCSM-Lab. Correspondingly, it consisted of more tasks as well. Evidently, I cannot go into detail.

However, presumably being the last examinee, I may say: It was fun! And all the efforts for the MCM and MCSM were worth it.

Noch ein paar Statistiken zum Ende des „Rennens“:

Weltweit gibt es (Stand 2.1.2014):

Some statistics at the end of the “race”:

Worldwide, there are (as of 2 January 2014):

 

MCM SQL Server 2005

MCA SQL Server 2005

MCM SQL Server 2008

MCA SQL Server 2008

MCSM Data Platform

33

23

154

7

6

 Quelle // Source: Microsoft Certified Masters and Architects: Microsoft SQL Server

- Ich nehme an, dass noch zwei bis drei Master dazukommen, wenn die letzten erfolgreichen Kandidaten veröffentlich werden. Ich werde diese Liste also in ein paar Tagen noch einmal updaten.

- I suppose two or three more Masters will join the ranks once the last successful candidates are made public. So I am going to update this list in a few days.

Dieser Liste nach haben also nur sechs Experten diese Zertifizierung auf dem SQL Server 2012 abgeschlossen. Die meisten „Neuen“ haben sich also weiter auf SQL Server 2008 prüfen lassen.

Davon kommen zwei aus dem europäischen Raum (beide aus Finnland), womit ich im gesamten deutschsprachigen Raum der zugleich erste und letzte mit diesem Abschluss bin.
Interessanterweise haben sich weltweit nur zwei Leute überhaupt sowohl unter SQL Server 2008 als auch SQL Server 2012 erfolgreich prüfen lassen. Vesa Tikkanen (Twitter: @vesat | Blog) aus Finnland ist der geschätzte MCM&MCSM Kollege!

Damit habe ich die Antwort auf meinen Artikel vom September „Wer wird der letzte MCM SQL Server ;-) ?“ wohl selbst gegeben… ;-)

Schade, dass es so wenige versucht und/oder geschafft haben. Denn seien wir ehrlich: Der MCM/MCSM ist keine „Guru-only-Zertifizierung“, sondern er bestätigt praktische Erfahrung. Wenn man über diese auch in der Breite, von Sicherheit über Performance-Tuning, Datenbankdesign bis hin zu Hochverfügbarkeit und Datenwiederherstellung verfügt, dann kann man ihn in einem oder zwei Zügen, um sich an das Prüfungsformat zu gewöhnen, bestehen. – „Konnte“ muss man nun sagen. In jedem Fall meine Hochachtung an alle, die sich den Prüfungen gestellt haben.

According to this list, there are only six experts to have passed this certification on the SQL Server 2012. Most of the “new ones” thus have undergone the exam on SQL Server 2008.
Of the former, two are from the European region (both of whom from Finland), which means I am the first and last to be carrying this title in the entire German-speaking region.
Interesting to note: only two people worldwide have successfully undergone the exam based on both SQL Server 2008 and SQL Server 2012. Vesa Tikkanen (Twitter: @vesat | Blog) from Finland is the much valued MCM&MCSM colleague!

As it turns out, I have provided the answer to my article from September, “Who will be the last MCM SQL Server ;-)?” myself… ;-)

It’s too bad that only so few have tried and/or made it. Because, let’s be honest: The MCM/MCSM isn’t a “guru-only-certification,” but rather it verifies practical experience. If one has it also in its broadness, from security to performance tuning, database design to high availability and data recovery, one can, or rather could have, pass(ed) the certification in one shot, or two, to familiarize oneself with the exam format. In any case, kudos to those who endeavored the exams.

Update (3.1.):
Aufgrund der häufiger gestellten und berechtigten Frage „Warum“, möchte ich darauf hier noch kurz eingehen:

Warum habe ich mir also diese Prüfung noch „angetan“, obwohl die Zertifizierung ab dem 1.1.2014 nicht mehr erhältlich ist?
Man merkt vielleicht schon an der mit Bedacht gewählten Formulierung, dass es ja nicht so ist, dass die Zertifizierung mit einem Male „Nicht mehr existiert“. Es ist lediglich so, dass sie ab jetzt niemand mehr neu machen kann.
Demnach sah ich zumindest darin erstmal keinen Grund, sie nicht abzulegen. Nur der Zeitdruck ist größer – und Druck liegt mir praktischerweise :-)

Sodann gibt es einen ganz rationalen Grund:
Der MCM basiert auf SQL Server 2008, und dieser ist mit dem Erscheinen von SQL Server 2014 nur noch die „Vor-Vor-Version“.
Und auch wenn der MCM ganz allgemein „praktische Fähigkeiten“ belegen soll, ist die Verbindung mit einer bestimmten Version ja nicht ganz abwegig.
Der MCSM basiert auf SQL Server 2012 und dieser enthält von Extended Events über ColumnStore Indexes bis hin zu AlwaysOn einige wesentliche Neuerungen – die im SQL Server 2014 weiter verbessert werden.

Und schon immer lege ich Wert darauf, meinen Kunden einen „zertifizierten“ Beleg bieten zu können, auf den aktuellsten Technologien absolut und umfassend fit zu sein.

Im Prinzip also kein wesentlicher Unterschied dazu, warum ich 2012 den MCM abgelegt habe.

Und zuguterletzt gibt es noch einen persönlichen Grund:
Ich hätte einfach keine Ruhe gehabt, nicht zu wissen, ob ich das MCSM Lab unter SQL Server 2012 aus dem Stegreif bestehen würde und wie diese Prüfung ist :-)
Neugierde hat schon immer vieles bewegt…
Das war am Ende der endgültige Grund, die Lab auch unter hohem Zeitdruck noch am vor/letzten  Tag abzulegen.
Man kann mich natürlich auch einfach „verrückt“ nennen ;-)

 

Update (3 January):
Because of the frequent and legitimate question as to “why,” I will shortly go into the matter:

Why have I even bothered to take this exam when the certification is no longer available as of 1 January 2014?
One may already notice through the careful phrasing that it is in fact not the case that the certification does “no longer exist” all of a sudden. It is simply no longer possible for anyone to take the exam from now on. That is why, for once, I did not see any reason why not to take it. The only difference is that the time pressure was greater – and I’m all for it :-)

Then, there is a plainly rational reason:
The MCM is based on SQL Server 2008, and will be, with the release of SQL Server 2014, only the “pre-pre-version.” And even if the MCM is meant to generally prove “practical skills,” the connection to a specific version is not that beside the point.
By contrast, the MCSM is based on SQL Server 2012, which contains some significant improvements, from Extended Events to ColumnStore Indexes up to AlwaysOn – all of which will be further improved in SQL Server 2014.

Also, I have always been attaching great importance to offering my customers a “certified” proof, and to being absolutely and comprehensively versed in the latest technologies.

Basically, it is hardly any different as to why I have done the MCM in 2012.

And last but not least, there is a personal reason as well:
I just couldn’t have borne not to know whether I would pass the MCSM Lab based on SQL Server 2012 off the cuff, and what this exam is made of :-)
More often than not, curiosity has been the trigger to many things...
Ultimately, this was the final reason for taking the Lab even under the utmost pressure at the last day (turned day before last).
Or one could just call me plain “crazy” ;-)

Für alle, die jetzt knapp gescheitert sind, oder es generell erst für später anvisiert hatten:
Lasst Euch nicht demotivieren durch die Einstellung dieser höchsten technischen Zertifizierung.

Letztlich sollte man vor allem einfach des Wissens wegen Lernen. Ob zertifiziert oder nicht: die Erweiterung der eigenen Kenntnisse und  praktische Erfahrung ist immer eine gute Sache.

Zertifizierungen bieten vor allem Vergleichbarkeit und Standardisierung. Insofern ist der Wegfall vor allem für die Leute „auf der anderen Seite des Verhandlungstisches“ bedauerlich.

In diesem Sinne

To those of you who just narrowly failed the exam or had planned on taking it at a later time:  Don’t be demotivated by the discontinuation of this highest technical certification.

At the end of the day, one should study, above, all, for the sake of knowledge. Whether certified or not: expanding one’s knowledge and skills is always worthwhile.

First and foremost, certifications offer comparability and standardization. Consequently, the discontinuation is regrettable in the first place on behalf of the people “on the other side of the negotiation table.”

In this spirit,

 

Happy studies,

 

Andreas

 

MCM SQL Server, MCSM Data Platform

MCM_SQL_Server_2008        MCSM_Data_Platform_SQL_Server_2012

 

Danksagung:

Ich möchte folgenden Personen Dank sagen, die dieses Examen mit möglich gemacht haben:
Cindy McCormack, die mein Lab-Examen und die Vorverlegung noch so spontan eingeplant, Ralph Beatty, der von 5 Uhr morgens an von Redmond aus mein Examen live überwacht hat, Bob Taylor (Twitter: @SQLboBT | Blog) dafür, dass er mein Examen fast direkt im Anschluss benotet und mir damit am 31.12. noch mein Bestehen mitgeteilt hat – sowie für seinen Einsatz für die MCM Community generell, und auch nach Ablauf seines Amtes(!) als MCM-Programm-Manager.
Schließlich danke ich auch Ralf Dietrich, der mich auf dem PASS Camp in dem Gedanken bestärkt hat, die Zertifizierung noch abzulegen..

Acknowledgements:

I would like to express my gratitude to the following people who have made this exam possible: Cindy McCormack, who planned my Lab Exam and its last-minute bringing forward; Ralph Beatty, who proctored my exam from Redmond as early as from 5 am; Bob Taylor (Twitter: @SQLboBT | Blog) for grading my exam almost immediately afterwards and informing me on December 311th that I passed – plus for all the work for the MCM Community in general and even after expiration of his function(!) as MCM-Program Manager.
Finally, I am also giving my thanks to Ralf Dietrich who at the PASS Camp encouraged me with my idea of still doing the certification.

 

Security-Check-Script & Survey: SQL Server Security - Database-Owners, critical Permissions and role membership / Sicherheitsprüfungs-Script & Umfrage: SQL Server Datenbankbesitzer, kritische Rechte und Rollenmitgliedschaft

(de)
In dieser Umfrage möchte ich einmal in einem größeren Kreis ermitteln, welche Accounts typischerweise als Datenbankbesitzer eingetragen werden. Die kumulierten Ergebnisse werde ich anschließend hier veröffentlichen um sie mit der Community zu teilen, zusammen mit einigen Empfehlungen hinsichtlich Sicherheits-Härtung.

Dabei interessieren vor allem bestimmte serverweite Berechtigungen nicht nur des verwendeten Logins selber, sondern auch, falls er Mitglied einer (custom) Server Role ist, bestimmte, kritische Rechte dieser Rolle.

Wer meine Vorträge zum Thema „Sicherheit in SQL Server“ in den letzten Jahren, und insbesondere der im Sommer 2013 gestarteten Reihe „SQL Server Attacked“ verfolgt hat, wird sich vielleicht hat erinnern, wie ich dort auch gezeigt habe, wie man aus einer Datenbank ausbrechen und volle Systemrechte erlangen kann („Privilegien Erweiterung“) – basierend auf einer Kombination von Datenbankbesitzer, -Konfiguration und Impersonierung.

Hier stelle ich nun einen T-SQL Script zur Verfügung, welcher

  • Den jeweiligen Datenbankbesitzer aller Datenbanken ermittelt
  • Ungültige/Fehlende Datenbankbesitzer erkennt
  • Anzeigt, ob der Besitzer direkt über sicherheitskritische systemweite Rechte verfügt
  • Mitgliedschaft in hochprivilegierten Server-Rollen anzeigt – inklusive der benutzerdefinierten Serverrollen (ab SQL 2012 möglich)
  • Die kritischen Datenbankeinstellungen „Vertrauenswürdig“ und „Datenbankverkettung“ anzeigt.

Und hier ist der Script:

(en)
In this survey, I would like to explore in a greater radius which accounts are typically used as database owners. I will subsequently publish the cumulated results here to share them with the community together with some recommendations for hardening security.

In this instance, particular server-wide permissions both of the used account as well as, in case of membership of a (custom) Server Role, critical permissions of that role, are of interest.

Those who have followed my presentations on the topic “Security in SQL Server” in the last years, and especially the „SQL Server Attacked“ series launched in the summer of 2013, may remember how I had also demonstrated there how to break out of a database and be granted full system rights (“Elevation of privileges”), - based on a combination of database owner, configuration and impersonation.

Here, I am providing a T-SQL Script which

  • Identifies the respective database owners of all databases
  • Detects invalid/missing database owners
  • Indicates whether the owner directly possesses security-critical system-wide rights
  • Indicates membership in high privilege Server Roles – including the user defined Server Roles (possible since SQL 2012)
  • Indicates the critical database configurations “trustworthy” and “database chaining”.

Here you can find the script:

 

Server 1: http://j.mp/13_SQL_DBO_Survey
Server 2: gallery.technet.microsoft.com/scriptcenter/Database-Owners-role-3af181f5/

 

- Er sollte auf allen SQL Servern ab der Version 2005 funktionieren (getestet 2008-2014).

Zum Zwecke der Umfrage bitte ich Euch, die anonymisierten Ergebnisse (am Besten in Excel-Format) an die Email survey@SarpedonQualityLab.com zu senden, oder auch hier in den Kommentaren zu posten.
Zum Zwecke der Anonymisierung kann man einfach die letzten 3 Spalten aus dem Resultset auslassen – diese haben für eine statistische Erhebung auch keinen Nutzen sondern sind nur für Eure internen Zwecke bestimmt :-).

Hier seht ihr ein Beispiel-Ergebnis:

-           It should be working on all SQL Servers since the 2005 version (tested: 2008-2014).

For the purpose of the survey, I would like to ask you to send the anonymized results (preferably in excel-format) to the email survey@SarpedonQualityLab.com, or as well post them here in the comments.

For anonymization purposes, you can simply leave out the last three columns from the result set – these are not of use to a data collection and only meant for your internal usage :-).

Here, you can see a sample result:

Database_Ownership_Permissions_Sample_Result

 -> click to enlarge

Mehrere Einträge für dieselbe Datenbank entstehen, wenn der Datenbankbesitzer – oder seine Serverrolle(!) über mehrere, der von mir als sicherheitskritisch klassifizierten Rechte verfügt. Diese stehen dann in der Spalte login_permission bzw. role_permission. Hinter den Kürzeln verbergen sich:
ALLG = ALTER ANY LOGIN
ALSR = ALTER ANY SERVER ROLE
CL  = CONTROL SERVER
XA  = EXTERNAL ACCESS ASSEMBLY
(mehr dazu auch hier: CONTROL SERVER vs. sysadmin/sa: permissions, system procedures, DBCC, automatic schema creation and privilege escalation - caveats).

Die Inhalte der Spalten DatabaseNo, database_owner und external_owner sind absichtlich allgemein gehalten – die exakten Namen sind wie gesagt in den letzten 3 Spalten zu finden.

Die Spalte db_owner_valid zeigt an, ob die Datenbank einen gültigen Besitzer hat. In diesem Fall besteht ein match zwischen dem „externen Besitzer“ und dem in der Datenbank selber hinterlegten. In der Spalte external_owner steht nur ob dieser „externe Besitzer“ sa ist oder nicht – der genaue Login steht dann in *External_Owner.Der Script speichert keine Daten dauerhaft im System ab und beseitigt seine temporären Zwischenergebnisse selbst.

Ich hoffe, ihr findet die Auswertung hilfreich – und ich hoffe, ihr könnt die (anonymisierten) Ergebnisse mit der Community teilen. Ich werde keine Email speichern oder verwenden, sondern nur die anonymisierten Abfrageergebnisse.

Ich bedanke mich für eure Teilnahme und Unterstützung der Community!
Ich verspreche, die kumulierten Ergebnisse in den nächsten Monaten zusammen mit entsprechenden Hinweisen auf Best & Bad Practices sowie auf möglichen Einfallstoren für Privilegienerweiterungs-Angriffen zu veröffentlichen.

Multiple entries for the same database occur when the database owner – or his serverrole(!) possess multiple of the permissions which I classified as security-wise critical. These are listed in the column login_permission respectively role_permission. The codes stand for:
ALLG = ALTER ANY LOGIN
ALSR = ALTER ANY SERVER ROLE
CL  = CONTROL SERVER
XA  = EXTERNAL ACCESS ASSEMBLY
(you can read more on that here: CONTROL SERVER vs. sysadmin/sa: permissions, system procedures, DBCC, automatic schema creation and privilege escalation - caveats).

The contents of the columns DatabaseNo, database_owner and external_owner are left general on purpose – the exact names can be found in the last 3 columns s mentioned above.

The column db_owner_valid indicates, whether the database has a valid owner. In this case there is a match between the „external owner“ and the one stored within the database itself. The column external_owner only shows whether that „external owner“ is sa or not –the exact Login is shown in *External_Owner.

The script does not permanently save any data in the system and removes its temporary intermediary results by itself.

I hope you find the report useful and I hope you can share the (anonymized) results with the community.
I will not store or use any email but only use the anonymized Query-results.

 Thank you in advance for your participation and support of the community!
I promise to publish the cumulated results with according details on best & bad practices as well as on to possible gateways to elevation of privilege attacks in the next months.

 

Andreas

Die Agenda der SQL Server Konferenz 2014 ist online!

Vom 10.-12. Februar 2014 findet in Darmstadt die erste Deutsche SQL Server Konferenz statt. Zeitgleich feiert die PASS Deutschland e.V. ihr 10-jähriges Bestehen. Also Geburtstag :-)

Seit heute steht auch die Agenda fest.
Es gibt 4 Tracks:

  • Administration (DBA)
  • Business Intelligence (BI)
  • Entwicklung (DEV)
  • Big Data & Information Management (BD)

Ich darf im Admin-Track gleich in der ersten Session In-Memory OLTP mit SQL Server 2014 XTP (Project Hekaton, jetzt "EXtreme Transactional Processing") vorstellen.

- Nachdem ich mich bereits intensiv mit Columnstore Indexes beschäftigt habe, ist das die zweite wichtige und komplett neue Technologie, in die ich mich rechtzeitig zur ersten Präsentation von Hekaton/XTP im November 2013 auf Microsoft’s TechNet Conf eingearbeitet habe. „Mission accomplished“. :-)
An dieser Stelle ein Dankeschön an die Veranstalter für das in mich gesetzte Vertrauen.

Danach geht es gleich weiter mit neuem heißen Content: mein geschätzter Kollegen Niko Neugebauer, hält einen Deep Dive in die neuen Rewritable Columnstore Indexes. Eine In-Memory Analytics Engine & Memory-Optimized Columnstore Index, die die Architektur von künftigen DataWarehouses verändert wird, wie ich schon diesen Sommer „prophezeite“. (The Columnstore Indexes & Batch Mode Processing (R)Evolution in SQL Server 2014)

Am 2. Tag der Hauptkonferenz geht es im Administrationstrack um den Bereich SQL Azure, Virtualisierung und Hochverfügbarkeitsarchitekturen mit AlwaysOn. Hierzu werden sogar Sprecher vom SQL CAT Team präsentieren.

Und auch die Tracks Business Intelligence, Entwicklung und Information Management bieten hochkarätige Themen und international erfahrene Sprecher.
Herausheben möchte ich an dieser Stelle das Gespann der Kollegen Georg Urban & Olivia Klose von Microsoft zu Big Data mit HDInsight oder Tillmann Eitelberg zu SSIS und HDInsight.

Artus Krohn-Grimberghe & Martin Vach stellen mit Predictive Analytics mit SQL Server & Project Passau ein DataMining Projekt vor

Wem die jeweils einstündigen Vorträge nicht genügen, sondern gleich richtig in ein Thema einsteigen möchte, dem empfehle ich eine der 3 PreCons, die am 10.2. stattfinden. – PreCons sind ganztägige Veranstaltungen, die sich intensiv einem bestimmten Themenkomplex widmen.
Und das ist die Auswahl:

Power Workshop 1: Azure Platform Immersion Day: Building Highly Available and Scalable Solutions in a Hybrid World
Trainer: tbd

Power Workshop 2: In-Memory Technologies im SQL Server 2014 – Die Performance Booster
Trainer: Niko Neugebauer & Andreas Wolter

-           In diesem “gemischten Doppel” zeigen wir die neuen Storage Engines im SQL Server 2014: ColumnStore Indexes und In-Memory OLTP

Power Workshop 3: Microsoft Self-Service BI Landschaften – Professionell implementiert
Trainer: Kay Unkroth


Die vollständige Agenda findet sich hier: www.sqlkonferenz.de/Agenda.aspx

 

Ich hoffe man sieht sich in im Februar in Darmstadt

 

Andreas

Where are the scripts to the session „SQL Attacked/Hacking SQL Server“ ? ;-)

Wo sind die Scripte zu dem Vortrag „SQL Attacked/Hacking SQL Server“ ? ;-)

(de)
Im Anschluss an die Vorträge aus meiner „Hacking SQL Server“-Reihe „SQL Server Sicherheit „SQL Attack..ed“ – Angriffszenarien auf SQL Server („SQL Server Hacken“)“, die ich bisher bereits auf den SQLSaturdays Rheinland, Istanbul, auf der SQLRally Amsterdam und in vielen Regionalgruppen der PASS Deutschland zeigte, kommt öfters die Frage auf, ob ich den gezeigten Code öffentlich verfügbar mache. Da Twitter sich als Diskussionsmedium nicht so eignet (schöne Grüße an @DirkHondong und @FrankGeisler ;-) ), das Thema aber doch etwas mehr Beachtung verdient, möchte ich darauf in einigen Sätzen eingehen.

(en)
Subsequent to the lectures from my “Hacking SQL Server” series “Security Session „SQL Attack..ed“ – Attack scenarios on SQL Server ("Hacking SQL Server")” which I have already given at the SQLSaturdays Rheinland, Istanbul, at the SQLRAlly Amsterdam and at many regional groups of PASS Germany, more often than not the question arises whether I make the presented code available to the public. With Twitter not being that suitable a medium of discussion (greetings to @DirkHondong and @FrankGeisler ;-)), yet the topic deserving some more attention, I will get into the matter in the following.

Der Hintergrund, das ich die dafür entwickelten Scripts nicht veröffentliche, ist eigentlich recht einfach: ich zeige darin unter anderem Angriffsvarianten und Techniken, die so noch nicht dokumentiert oder in der „Szene“ bekannt sind(?).

Und da ich die frei verfügbaren SQL-Injection- und allgemein „Hacking“/DoS -Tools ein wenig kenne, möchte ich vermeiden, denjenigen, die diese entwickeln, neue Ideen zu geben um Server in die Knie zu zwingen. Das bringt keinem (aus der SQL Server Community) etwas (- höchstens "Auftragshackern", aber "leider" habe ich da keine Aktien drinnen ;-) ).

-           Die meisten SQL-Injection-Varianten sind übrigens auch wirklich gut im Netz dokumentiert, und eine einfache Suche wird eine Vielfalt an Code-Beispielen zutage bringen. Es macht kaum einen Unterschied, welche Vorlage man verwendet, man muss so und so noch Anpassungen vornehmen. ;-)

Im Gegensatz zu landläufiger Meinung, glaube ich nicht daran, dass jeder alle „Hacking“-Techniken selber durchführen können muss. Ich denke das ist häufig ein Vorwand, sicherheitsbedenkliche Aktionen pauschal zu rechtfertigen.

Ich bin der Ansicht, dass es genügt, zu wissen/gesehen zu haben, wo man angreifbar sein kann, und das es wichtiger ist, die Zeit darauf zu verwenden, die Skills für die Sicherung zu entwickeln.

Um selber zu „Hacken“, ist das übrigens eine gute Voraussetzung (und der Unterschied zum sogenannten „Script-Kiddie“). Nur das man dann einfach noch mehr Kenntnisse benötigt.

In aller Regel sehe ich jedoch eher einen Mangel an Kenntnissen über die Zusammenhänge in der Sicherheitsarchitektur von SQL Server, auf den ich mich naturgemäß fokussiere, sowie natürlich dem darunterliegenden Windows-Server und der Domain-Architektur allgemein.
„Hacken“ zu können bringt für sich gesehen erst einmal gar nichts. Das kann man, wenn man alles bekannte abgesichert hat immer noch angehen. Wenn das nötig ist, befindet man sich in dem grauen Bereich von „Penetration Testing“.

The background to why I don’t make public the scripts developed for this purpose is actually quite simple: in the scripts, I am showing attack variants and techniques, among others, which have not been documented or are not known within the “scene” (?).

And since I am a little familiar with the discretionary SQL injection and “Hacking”/DoS tools in general I would like to avoid giving those parties developing these tools new ideas for bringing servers down. This wouldn’t be of use to anyone (from the SQL Server community) (- except maybe to “contract hackers,” but I’m “afraid” I don’t hold any stocks in there ;-)).

-           By the way, most of the SQL injection variants are very well documented in the internet, and a simple search will spill out a variety of code examples. It will hardly make a difference which template one is using, as one will need to make adaptions anyway. ;-)

In contrast to general opinion, I do not believe that everyone needs to be able to carry out all “hacking” techniques by themselves. I think this is often used as a blanket pretext for justifying security-wise questionable actions.

I am of the opinion that it is sufficient to know/have seen where one can be vulnerable, and that it is more important to invest the time into developing skills for protection.

And this is a good prerequisite for “hacking” oneself (and the difference to the so-called “script kiddie”). Only that even more knowledge will be required then. 

In principle, however, I am rather observing a lack of knowledge of the correlations in the security architecture of SQL Server on which I am by nature focusing, as well as, of course, the Windows Server beneath it and the domain architecture in general.

To be able to “hack” alone is of no avail. Once one has covered everything known, one can still get to that. If this is necessary, one will end up in the grey area of “penetration testing.”

Das eigentliche Ziel meiner Vorträge/“Shows“(?) ist die "Awareness/Wahrnehmung", und Verbesserung der Sensibilität für das Thema Sicherheit im Sinne von:

„Habe ich das alles schon einmal bedacht?“
„Könnte ich doch noch Lücken haben und ein leichtes Angriffsziel sein, ohne es bislang gemerkt zu haben?“

Nicht:

"Um meine SQL Server Umgebung sicherer zu machen, möchte ich mich selber im „Hacken“ versuchen."

Ich hoffe das macht Sinn für Euch :-)

In jedem Fall ist eine offene Diskussion zu diesem Thema durchaus in meinem Sinne.

The actual goal of my lectures/ “shows” (?) is the “awareness/perception,” and the enhancement of sensitivity for the topic of security in the sense of:

“Have I taken all this into consideration?”
“Could I still have gaps and be an easy target without having noticed up to now?”

Not:

“In order to make my SQL Server environment more secure I would like to dabble in ‘hacking.’”

I hope this makes sense to you J

Either way, an open discussion on this topic is absolutely along my lines.

 

Happy securing

Andreas

PS: Aus diesem Grunde biete ich ja schon seit einigen Jahren immer wieder den Security Essential für die PASS Deutschland an – aber wie wir wissen, zieht das Thema „Sichern“ einfach weniger als „Hacken“ ;-)

Und für diejenigen, die die Grundlagen schon beherrschen, aber komplexere Anforderungen oder kritischere Umgebungen haben, kommen dann die Master-Classes zum Thema Sicherheit: www.sarpedonqualitylab.com/SQL_Master-Classes.htm

PS: For those who already know the basics, but have more complex requirements or critical environments, there are the Master-Classes on Security: en.sarpedonqualitylab.com/SQL_Master-Classes.htm

Comparing Extended Events vs SQL Trace – or why SQL Trace & Profiler are just a thing of the past :-)

Extended Events vs SQL Trace im Vergleich – oder warum SQL Trace & Profiler einfach von gestern sind :-)

(de)
Zur Erinnerung: Extended Events sind seit SQL Server 2008 in SQL Server integriert. Und seit SQL Server 2012 SP1 sind alle Events verfügbar, die es in SQL Trace gibt. Zudem sind Extended Events seit SQL Server 2012 auch für Analysis Services verfügbar (Tracing Analysis Services (SSAS) with Extended Events – Yes it works and this is how).

Für alle, die noch mit dem alten Werkzeug SQL Server Profiler (Profiler ist das Frontend für SQL Trace, gestartet mit sp_trace_create) arbeiten, und sich noch nicht für die neue Technologie entscheiden konnten, hier eine kleine Entscheidungshilfe.

Was Extended Events (XEvents) besser als SQLTrace machen:

(en)
As a reminder: Extended Events have been integrated in SQL Server since SQL Server 2008. And since SQL Server 2012 SP1, all events existing in SQL Trace have been available. In addition, Extended Events have also been available for Analysis Services since SQL Server 2012 Tracing Analysis Services (SSAS) with Extended Events – Yes it works and this is how).

For those of you who are still working with the old tool SQL Server Profiler (Profiler is the frontend for SQL Trace, started with sp_trace_create) and have not quite been able to decide for the new technology, here is some decision guidance.

What Extended Events (XEvents) do better than SQL Trace:

  1. Einzige Möglichkeit neue Features wie FileStream, FileTable, AlwaysOn, ColumnStore, Hekaton/XTP etc. zu Tracen
  2. Viel mehr Events tracebar, auch bereits für ältere Releases (siehe *1, *2 unten)
  3. Deutlich geringerer Beobachter-Overhead
    siehe auch: Performance overhead of tracing with Extended Event targets vs SQL Trace under CPU Load
  4. Performance/Last lässt sich konfigurieren & tunen
  5. Events und Filter lassen sich live anpassen – während aktiver Session also
  6. Ofiziell 2 µs/Event gg. 4ms/Event in SQLTrace
  7. Event-Verlust konfigurierbar
  8. Effiziente Filterung durch Architektur
  9. Komplexe Prädikate wie z.B. Zähler oder last_error, less_than_min_datatype oder greater_than_max_datatype
  10. Korrelation von Events möglich
  11. Möglichkeit Events vom Client bis in die Datenbank zu verfolgen
  12. Einfache Automatisierung
  13. Direkt in Management Studio integriert
  14. Viele Analysen direkt in der GUI möglich (Um diese noch zu verbessern, bitte hier bei Microsoft Connect voten: Extended Events UI Export Display Settings: include grouping)
  15. Query_hash zum Identifizieren von identischen Abfragen verfügbar
  16. Keine 10 Klicks zum Aufsetzen einer simplen Session inkl. Filter
  17. Unterschiedliche Speicher-Ziele für EventDaten zur Auswahl (6)
  18. „Ergebnisorientierte“ Ziele wie Counter und Histogramm
  19. Multiple Ziele lassen sich für “On the fly - Top-Down Analysen” kombinieren
  20. Möglichkeiten für ganz neue Einblicke in Interna der Datenbank-Engine (Latching, Spinlocks, Multi-victim-Deadlock, Wait_Infos per session/query, Caching-Vorgänge, Ghost-cleanup, Analyse von Page Splits, Page-Compression Vorgänge, um nur einige zu nennen)
  21. Stack Tracen eines einzelnen Prozesses möglich – anstelle eines vollständigen Server Dumps
  22. Definition mit Standard DDL-Statements
  23. API zur Integration in eigene Tools verfügbar
  24. PowerShell-Unterstützung
  25. Last but not least: Endlich ein Grund, XML & XQuery zu lernen? ;-)
  1. The only possibility of Tracing new features like FileStream, FileTable, AlwaysOn, ColumnStore, Hekaton/XTP etc.
  2. Many more Events traceable, even for older releases (see *1, *2 below)
  3. Significantly less Observer-Overhead, also see: Performance overhead of tracing with Extended Event targets vs SQL Trace under CPU Load
  4. Performance/Overhead can be configured and tuned
  5. Events and Filters can be adapted live – meaning during active session
  6. Official 2 µs/Event vs. 4ms/Event in SQLTrace
  7. Event-loss is configurable
  8. Efficient filtering through architecture
  9. Complex predicates such as Counter or last_error, less_than_min_datatype oder greater_than_max_datatype
  10. Correlation of Events possible
  11. Possibility of following Events from Client into the Database
  12. Easy Automation
  13. Directly integrated in Management Studio
  14. Many analysis directly inside the GUI possible (in order to improve them, please vote at Microsoft Connect: Extended Events UI Export Display Settings: include grouping)
  15. Query_hash for identification of identical queries available
  16. No 10 clicks to set up a simple session including filter
  17. Choice of different destinations for storing EventData (6)
  18. “Goal-oriented” destinations such as Counter and Histogram
  19. Multiple destinations can be combined for “On the fly – top-down analyses
  20. Possibilities for entirely new insights into internal matters of database engine (Latching, Spinlocks, Multi-victim-Deadlock, Wait_Infos per session/query, Caching-processes, Ghost-cleanup, analysis of Page Splits, Page-Compression processes, to name just a few)
  21. Stack Tracing of a single process possible – instead of a complete Server Dump
  22. Definition with standard DDL-Statements
  23. API for integration into one’s own tools available
  24. PowerShell support
  25. Last but not least: Finally a good reason to learn XML & XQuery? ;-)

 

 *1
Extended Events vs. SQL trace Events per Version

Extended_Events_per_SQL_Server_Version

*2
As an example: For Service Broker there are:
15 Events in SQLTrace vs. 44 Events in XEvents (SQL Server 2012 SP1)

 

Ich hoffe, das hilft dem einen oder anderen, die alte Gewohnheit abzulegen, und die kleine Lernphase in Kauf zu nehmen.

Eine Liste aller Extended Events in SQL Server 2012 SP1 samt Ihrem Gegenstück in SQL Trace, welche man für Migrationszwecke (SQLTrace -> XEvent Trace) verwenden kann findet sich in dieser Seite. (Aufgrund einer Größenbeschränkung passte sie nicht mehr hier hinein.)

I hope this helps some of you to unlearn the old habit and accept the little learning phase. 

 

A list of all Extended Events in SQL Server 2012 SP1 including its counter piece in SQL Trace that can be used for migration purposes (SQLTrace-> XEvent Trace) is available on this page. (Due to size restriction, it didn’t fit in here anymore.)

> Mapping Extended Events with sys.trace_xe_event_map to SQL Trace <

 

Happy better Tracing

 

Andreas

 

PS: Für 2014 befindet sich mit den SQL Server Master-Classes zum Thema „Tracing mit Extended Events auch die nächste Runde der Trainings zu diesem Thema in der Planung :-)

P.S. For 2014, the next round of training in this topic is being developed in conjunction with SQL Server Master-Classes on the topic “Tracing with Extended Events :-)