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

Backup und Restore

Oder: Vertrauen ist gut, Kontrolle ist besser

Welcher Administrator kenn diese Situation nicht?

Man ist zwar eigentlich kein Datenbankadministrator aber da gibt es ja noch diesen Server. Ach ja und da läuft auch noch eine Datenbank, oder mehrere. So ganz genau weiß dies auch keiner. Kümmere dich doch mal darum.

Nachdem man sich mühevoll einen Überblick über den Server verschafft hat und auch den SQL Server inspizieren konnte, stellt man fest, dass alles in Ordnung scheint. Server läuft, die Datenbanken laufen und auch das Backup ist die letzten Jahre immer erfolgreich gewesen. Aber ein erfolgreiches Backup ist eigentlich nur die halbe Wahrheit.

Es gilt der Spruch:

Was interessiert mich das erfolgreiche Backup, der erfolgreiche Restore ist mir viel wichtiger!

Weiterlesen

SQL Server Express – Public vs. Sicherheit

In den letzten Jahren hat Microsoft immer mehr Features der kostenpflichtigen SQL Server Editionen in die kostenlose Express Edition aufgenommen. Somit können Entwickler immer mehr Anwendungen  mit der SQL Express Edition bereitstellen. Leider gibt es seit langer Zeit einen Unterschied zwischen der Express Edition und der Standard/Enterprise welche nicht so offensichtlich ist und Auswirkungen auf die Sicherheit haben kann.

Wie ist es in den anderen Edition?

Will man sich mit einer SQL Server Instanz der Standard, Developer oder Enterprise Edition verbinden, benötigt man zunächst einen Login für die Instanz. Dieser Login kann entweder über einen Windows Account oder eine Windows Gruppe erfolgen welcher im SQL Server berechtigt wird oder man erzeugt einen SQL Server Login (falls der gemischte Modus aktiv ist). Generell gilt: Nur wer einen gültigen Login besitzt darf sich am Server anmelden und ist damit Mitglied der Serverrolle „Public“ Weiterlesen