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“

Was ist im Express anders?

In der Express Edition gibt es standardmäßig einen Login mit dem Namen „VORDEFINIERT\BENUTZER“ welcher in der „Public“ Serverrolle ist und die lokale Standard Windows Gruppe BUILTIN\Users berechtigt.

BUILTIN-USERS

Auf einem Einzelsystem bedeutet dies, dass alle lokalen Benutzer generell das Login Recht für die SQL Server Express Instanz besitzen.

Befindet sich der Rechner in einer Active Directory Domäne wird der lokalen Gruppe BUILTIN\USERS zudem noch die AD Gruppe „Domänen-Benutzer“ hinzugefügt. Hierdurch haben nun alle Benutzer im Active Directory Zugang zu dieser SQL Server Instanz.

Problem

Dieser Umstand alleine ist noch kein echtes Sicherheitsproblem, da der Rolle Public standardmäßig über keine weiteren Berechtigungen verfügt. Das Sicherheitsproblem tritt aber dann auf, wenn der Datenbankentwickler oder Administrator der Rolle Public weitere Berechtigungen zugewiesen hat.

Was in den anderen Editionen kein Problem darstellt, da man dort ja explizit durch den LOGIN berechtigt werden muss, stellt in der Express Edition ein echtes Sicherheitsrisiko dar. Nun kann JEDER angemeldete Benutzer der Domäne sich mit dem SQL Server verbinden und ggf. an die Daten kommen.

Dieser Umstand wird auch dadurch problematisch, da das Verhalten des Express Edition hier nicht dem Verhalten der Developer Edition entspricht.

Generell sollte man bei der Entwicklung von Datenbankanwendungen keine Rechte an die Rolle Public binden, da hierdurch noch weitere Sicherheitsrisiken auftreten können.

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s