Testumgebungen sinnvoll aufsetzen

Die Testumgebung

Wer IT-Umgebungen sicher (Hier sowohl als safety & security zu verstehen) betreiben will, kommt an einer Testumgebung nicht vorbei. Eine Testumgebung ist sowohl für neue Produkte wie auch bei Änderungen an bestehenden Systemen von enormer Bedeutung. Letztendlich habe ich nur so einen Chance alle Auswirkungen meiner Änderungen zu entdecken bevor ich sie am produktiven Systemen umsetzten muss.

Notwendige Bedingung

Damit ich aber Rückschlüsse von meiner Testumgebung auf mein produktives System ziehen kann, muss eine Bedingung zwingend erfüllt sein.

Das Testsystem muss dem Produktivsystem so Identisch wie möglich sein.

Diese Voraussetzung ist so gut wie nie zu 100% erfüllbar, aber dennoch sollte man Abweichungen so gering wie möglich halten.

Die Realität

Leider findet man in wirklichen Leben und auch in der Schulung oft einen anderen Zustand. Hier wird vereinfacht wo es nur geht da man mit dem Produktivsystem ja schon genug zu tun hat.

Typische Vereinfachungen sind:

  • lokale Firewalls deaktiviert
  • alle Nutzer haben Domänen Admin Rechte
  • Dienste laufen mit Domänen Admin Rechten
  • Alle benutzen sowieso den selben Account der auch noch Domänen Admin ist
  • Alle Server befinden sich im gleichen Netzsegment
  • Freigaben und NTFS Rechte lauten „Jeder“ hat „Vollzugriff“

Dem Tester freut dieses Vorgehen da er/sie nie auf natürliche Hindernisse stößt und somit fröhlich testen kann.

Die Ergebnisse eines solchen Tests haben aber keine Aussagekraft für das Produktivsystem. Der arme Admin der nun den Auftrag hat die Änderung im Produktivsystem einzurichten wird nun mit Problemen überschüttet, von denen im Vorfeld nie die Rede waren.

Typische Fehlersituationen

  • Dienste können nicht auf den Fileserver zugreifen weil sie dort keine Lese/Schreibrechte haben oder den Fileserver wegen einer Firewall gar nicht erst erreichen.
  • Nutzer können Anwendungen nicht starten wegen fehlender Rechte
  • Dienste und Nutzer können nicht auf die Datenbank zugreifen weil sie dort kein Login haben

Die Liste ließe sich noch beliebig fortsetzen.

Fazit

Auch wenn es viel Arbeit macht, sollte man gerade bei einer Testumgebung auch so arbeiten wie es das (spätere) Live-System auch tut. Nur so kann ich sehen ob irgendwelche Berechtigungen fehlen oder mir eine Firewall den  Weg versperrt.

Mache ich dies nicht, dann werde ich bei dem Live-System auf einmal viele Probleme haben welche im Test-System nie aufgetreten sein. Hier muss ich dann schnell irgendwelche Lösungen finden welche mir später das Leben unnötig schwer machen können.

Advertisements

Anlegen von Warnungen per Powershell

Wie auch sonst in der IT ist auch ein Datenbankserver nicht frei von Fehlern oder Problemen. Um schnell auf Fehler reagieren zu können ist es notwendig zeitnah über Probleme informiert zu werden. Innerhalb des SQL Server übernimmt der SQL Server Agent (nicht in der Express Edition vorhanden) diese Aufgabe.

Vorbereitungen

Damit der SQL Server Agent Benachrichtigungen versenden kann ist es erforderlich das Datenbank-Mail eingerichtet ist. Weitere Informationen zu Einrichtung von Datenbank Mail findet man im Technet unter https://technet.microsoft.com/de-de/library/ms175887(v=sql.105).aspx Weiterlesen

SQL Server Dienstkonten

Oder wie viel Rechte dürfen es sein?

Bei der Installation eines neuen SQL Servers wird man unter anderem nach den Account-Informationen der Dienstkonten gefragt. Leider geht die Frage in dem umfangreichen Installationsprozess etwas unter.  Hinter der Frage verbirgt sich aber ein sehr wichtiges Thema, über welches man sich unbedingt im Vorfeld Gedanken machen sollte.

Wie viele Berechtigungen gebe ich meinem SQL Server?

Oder anders gefragt:

Welche Berechtigungen benötigt der SQL Server eigentlich um seine Aufgaben korrekt und sicher zu erledigen? Weiterlesen

SQL Express – Sicherung mit der Powershell

Hinweise: 11.11.2016 Anleitung für die Aufgabenplanung ergänzt

Die SQL Express Edition erfreut sich gerade für kleine Anwendungen großer Beliebtheit da sie keine Lizenzkosten verursacht. Diese Beliebtheit dürfte sogar noch steigen seit dem Microsoft mit dem Service Pack 1 für den SQL Server 2016 viele Funktionen der Standard und sogar Enterprise Edition nun auch in der Express Edition verfügbar macht.

Nun stehen hier auch viele der InMemory Features und Sicherheitsfunktionen wie AlwaysEncrypted auch in der Express Edition bereit. Weiterlesen

Kostenschwelle für Parallelität

Level – Fortgeschritten

Im SQL Server gibt es einen Konfigurationsparameter mit dem Namen „Kostenschwelle für Parallelität“. Standardmäßig ist er mit dem Wert 5 konfiguriert was aber nicht mehr zeitgemäß ist.

Aktuell kann man sagen, dass ein Wert zwischen 25 – 50 für OLTP Anwendungen angemessen ist. Leider kann man keine allgemein gültige Aussage treffen welcher Wert der Richtige ist.  Weiterlesen