Aug 15

MSSQL und der ausgesperrte SysAdmin…

Tag: Tipps und TricksTorsten @ 16:36

Als sa (SysAdmin) auf einem Microsoft SQL Server ist man “Gott” über die gesamte SQL-Instanz und kann alles damit anstellen. Nur dumm, wenn sich der sa Account einmal selbst automatisch deaktiviert…

So etwas passiert z.B. wenn für den Account Enforce Password Policy aktiviert ist und man sich zu oft bei der Passworteingabe vertut. Dann ist es vorbei mit Gott spielen. ;)

MSSQL Management Studio

MSSQL Management Studio

Standardmäßig hat der lokale Administrator ebenfalls sysadmin-Rechte (da in gleicher Rolle), allerdings kann man z.B. über das MS SQL ManagementStudio nicht einfach in die Eigenschaften des deaktivieren Users sa gehen und ihn wieder aktivieren.

Aber es gibt immer einen Weg: Mit Hilfe des Utilities osql, welches sich standardmäßig im Verzeichnis C:\Program Files\Microsoft SQL Server\90\Tools\Binn befindet, lässt sich dem Account wieder Leben einhauchen:

osql -E -S MS\MSSQLSERVER2008 -Q “ALTER LOGIN sa ENABLE”
Reaktiviert den deaktivierten Account wieder.

osql -E -S MS\MSSQLSERVER2008 -Q “ALTER LOGIN sa WITH PASSWORD = ‘newPassword’ UNLOCK”
Entsperrt und weist ein neues Passwort zu.

osql -E -S MS\MSSQLSERVER2008 -Q “ALTER LOGIN sa WITH CHECK_POLICY = OFF”
Ermöglicht es, die Password Policy für den Account sa für immer ausschalten, damit man sich selbst nicht aus Versehen irgendwann mal wieder aussperrt. :)

MS\MSSQLSERVER2008 ist in diesem Falle die von mir installierte Instanz. Der Switch -E baut eine vertrauenswürtige Verbindung auf.

In einer Standardkonfiguration sollte es reichen, die Kommandozeile als lokaler Administrator zu starten, dann authentifiziert sich das System mittels Windows Authentication automatisch. Standardmäßig gehört die Gruppe VORDEFINIERT\Administratoren der MSSQL Gruppe sysadmin an und verfügt damit über die benötigten Rechte. Wenn man aber auch dieser Gruppe irgendwann sysadmin entzogen haben sollte, hilft nur noch osql mit anderen gültigen sysadmin Credentials zu starten (mittels -U username -P password, anstatt -E).

Und wenn es gar keinen sysadmin-fähigen User mehr geben sollte, wünsche ich viel Spaß mit der Installation einer neuen SQL-Serverinstanz… :)

Dein Kommentar