Logo faq-o-matic.net
Logo faq-o-matic.net

sa-Konto absichern

von veröffentlicht am12. Februar 2002, 14:49 Uhr Kurzlink und Zitatlink einblenden
Kategorie Kategorie: Sicherheit, SQL Server   Translate with Google Translate Translate EN   Die angezeigte Seite drucken

Eigentlich ist es seit Jahren bekannt …
… aber immer wieder gibt es Probleme damit: Das Passwort des internen SA-Kontos.

Dieses Konto "sa" (kurz für "System Administrator") hat auf einem SQL Server volle administrative Berechtigungen. Wer sich mit diesem Konto am SQL Server anmeldet, darf mit dem Server also alles tun, was er will. Und was das tollste ist: Er darf damit auch im Betriebssystem alles tun, denn er kann die Prozedur "xp_cmdshell" ausführen, die beliebige Befehle an das Betriebssystem sendet. Und da es sich um den sa handelt, werden diese Befehle im Kontext des Dienstkontos des SQL Server ausgeführt – und das wiederum hat eigentlich immer lokale Admin-Rechte.

Soweit, so gut. Aber es kommt noch besser: In der Standardinstallation des SQL Server 7.0 hat dieses hübsche Konto kein Kennwort! Das ist im Prinzip auch im SQL Server 2000 noch so; nur wenn man dort bei der Erstinstallation einen Schalter setzt, kann man ein Passwort vergeben. Sonst wird man aber nicht nur nicht dazu aufgefordert, sondern auch nicht über die Materie informiert.

Das ist abe natürlich auch noch nicht genug. Nicht nur ist auf diese Weise ein Großteil aller SQL-Server-Installationen ungesichert (es soll sogar welche im Internet geben … wer scannt da nach Port 1433?). Nein, auch zahlreiche weitere Rechner öffnen sich durch dieses Loch bereitwillig: Die MSDE (MS Data Engine) ist eigentlich ein vollwertiger SQL Server, nur serverseitig etwas eingeschränkt. Und er bringt natürlich auch die ganzen Admintools nicht mit. Dafür wird die MSDE auch verschenkt und ist Beigabe für viele Programme (z. B. Access, Visio und manches mehr). Und wie lautet dort das Passwort des sa? Na?

Die Lösung

Die folgende kleine Batchdatei hilft dieses Loch zu stopfen. Es erteilt dem SA einfach ein Passwort. Benutzung natürlich auf eigene Gefahr.

@echo off
rem --------------------------------------
rem - Ändert das (leere) Passwort von "sa"
rem - auf einen beliebigen Wert.
rem - Für SQL Server und MSDE.
rem - Benutzung: sapass passwort
rem - dabei gibt "passwort" das neue
rem - Passwort für sa an.
rem - Von Nils@Kaczenski.de
rem - Keine Gewähr!
rem --------------------------------------

if "%1" == "" goto syntax

osql -E -Q "exec sp_password null, '%1', sa"
goto ende

:syntax
echo.
echo Aendert das Passwort von "sa"
echo auf einen beliebigen Wert.
echo Voraussetzung: Berechtigtes
echo Windows-Benutzerkonto.
echo.
echo Benutzung:
echo sapass passwort
echo	Dabei gibt "passwort" das neue
echo	Passwort fuer sa an.
echo.

:ende

© 2005-2023 bei faq-o-matic.net. Alle Rechte an den Texten liegen bei deren Autorinnen und Autoren.

Jede Wiederveröffentlichung der Texte oder von Auszügen daraus - egal ob kommerziell oder nicht - bedarf der ausdrücklichen Genehmigung durch die jeweiligen Urheberinnen oder Urheber.

Das Impressum findet sich unter: http://www.faq-o-matic.net/impressum/

Danke, dass du faq-o-matic.net nutzt. Du hast ein einfaches Blog sehr glücklich gemacht!