SQL Server: Sicherheit und Benutzerverwaltung

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Der Wechsel von einem Access-Backend zum SQL Server als Backend-System hat – neben der Performance und dem Speicherplatz – oft einen entscheidenden Grund: Access schützt die Daten nicht ausreichend vor fremden Zugriffen. Hier hat der SQL Server deutlich die Nase vorn, denn er bietet verschiedene Möglichkeiten der Sicherung der Daten vor dem unbefugten Zugriff. Dieser Artikel zeigt, wie das Sicherheitssystem und die Benutzerverwaltung im SQL Server funktionieren.

Mit Access 2010 hat Microsoft sich endgültig vom Sicherheitssystem verabschiedet. Zuvor gab es unter Access noch die sogenannte Arbeitsgruppendatei (.mdw) und einige Elemente in der Benutzeroberfläche, mit denen Sie Benutzergruppen, Benutzer und deren Zugriffsrechte auf die einzelnen Elemente einer Datenbank beeinflussen konnten.

War einer Access-Datenbank eine Arbeitsgruppendatei zugeordnet, fragte Access beim öffnen der Anwendung den Namen und das Kennwort des Benutzers ab und entschied dann, ob dieser die Anwendung überhaupt öffnen durfte. Anschließend gab es Freigaben zum öffnen der verschiedenen Access-Objekte nur entsprechend der Zugriffsberechtigungen des Benutzers oder der Benutzergruppe, der dieser Benutzer zugeordnet war.

Allerdings war dieses System schon lange nicht mehr sicher und bot nur einen mittelmäßigen Schutz vor Datendiebstahl. Mittelmäßiges Interesse am Knacken der Datenbank vorausgesetzt, war es leicht möglich, an die enthaltenen Daten zu gelangen. Wohl auch deshalb hat sich Microsoft entschlossen, dieses Sicherheitssystem vor einigen Jahren abzuschaffen und die Access-Entwickler und auch die Benutzer nicht mehr in scheinbarer Sicherheit zu wiegen.

Wer überhaupt ein Sicherheitssystem verwenden wollte, musste umsteigen oder sich auf das allzu rudimentäre Datenbankkennwort verlassen – das aber dann entweder den Zugriff komplett verwehrte oder aber den Datenbankinhalt vollständig freigegeben hat.

Sicherheit im SQL Server

Im SQL Server gibt es erheblich mehr Features, um die in den Tabellen enthaltenen Daten vor neugierigen Blicken oder auch vor unbefugtem Verändern zu schützen. Die Anmeldung an einer Datenbank erfolgt dabei auf zwei verschiedene Arten:

  • Authentifizierung über eine Windows-Anmeldung
  • Authentifizierung über ein SQL Server-Konto

Authentifizierung über eine Windows-Anmeldung

Die erste Variante ist sinnvoll, wenn Sie über eine Domäne verfügen, also einen Bereich im Netzwerk, in dem die Benutzerrechte für verschiedene Benutzer zentral verwaltet werden. Hier erhält jeder Benutzer bereits in der Domäne ein eigenes Benutzerkonto, mit der sich auf seinem Rechner anmelden und je nach Berechtigungen auf die Daten und Geräte im Netzwerk zugreifen kann.

Dazu gehören dann auch die SQL Server, die in der Domäne erreichbar sind und die enthaltenen Datenbanken. Im SQL Server werden dann Konten für die in der Domäne bereits vorhandenen Benutzer oder Benutzergruppen angelegt.

Meldet sich der Benutzer dann unter seinem Windows-Konto am Rechner und somit in der Domäne an und versucht dann, auf den SQL Server zuzugreifen, werden seine Windows-Anmeldedaten daraufhin geprüft, ob das Konto auch im SQL Server vorliegt. Ist das der Fall, wird der Benutzer automatisch auch dort angemeldet, ohne seine Zugangsdaten auch noch für die Anmeldung im SQL Server eingeben zu müssen.

Authentifizierung über ein SQL Server-Konto

Die zweite Alternative ist, bei der Installation des SQL Servers für die Authentifizierung den sogenannten gemischten Modus zu aktivieren. Dann ist nicht nur die Windows-Authentifizierung möglich, sondern auch die SQL Server-Authentifizierung. Das bedeutet, dass im SQL Server Konten für Benutzer und Benutzergruppen unabhängig von den Windows-Konten angelegt werden.

Der Hintergrund ist, dass es nicht immer eine Domäne gibt, unter der die Benutzer verwaltet werden und somit ein vereinfachter Zugriff auch auf die Daten im SQL Server ermöglicht werden kann. Vielleicht haben Sie nur einen einzelnen Rechner und wollen eine lokale SQL Server-Datenbank verwenden, haben ein Netzwerk ohne Domäne, in dem die Benutzer aber dennoch über das Netz auf die Daten von SQL Server-Datenbanken zugreifen sollen oder Sie verwenden den SQL Server für eine Webanwendung.

Die für die SQL Server-Nutzung angelegten Konten sind also unabhängig von Windows-Konten. Somit benötigen wir also auch ein komplett eigenständiges Paar aus Benutzername und Kennwort. Wenn der Benutzer sich nun am SQL Server anmelden möchte, muss er unter Umständen zwei Anmeldungen durchführen – erst am Windows-System und dann am SQL Server.

übrigens: Das Benutzerkonto sa, das standardmäßig vorhanden ist, ist auch ein SQL Server-Konto. Unnötig zu erwähnen, dass dieses Konto immer mit einem Kennwort geschützt werden muss, da dieses universellen Zugriff auf den SQL Server bietet. Es gibt eine Bedingung, unter der sich ein Benutzer auch ohne Verwendung einer Domäne per Windows Authentifizierung am SQL Server anmelden kann – wenn er sich auf dem gleichen Rechner angemeldet hat, auf dem auch der SQL Server installiert ist.

Zweistufige Sicherheit

Genau so, wie der Benutzer sich erst am Windows-System und dann am SQL Server anmelden muss (wobei letzteres automatisch geschieht, wenn die Windows-Authentifizierung verwendet wird), gibt es auch innerhalb des SQL Servers zwei Stufen der Absicherung.

Wenn ein Benutzer ein Konto am SQL Server besitzt, heißt das nämlich noch lange nicht, dass er sich auch an einer Datenbank im SQL Server anmelden kann. Das Benutzerkonto muss auch für die Datenbank eingetragen sein und kann dort dann mit spezifischen Rechten versehen werden.

Im Prinzip erfolgt die Anmeldung an einer Datenbank im SQL Server also so, dass der SQL Server erst prüft, ob es überhaupt ein Benutzerkonto mit den angegebenen Daten im SQL Server gibt. Ist das nicht der Fall, scheitert die Anmeldung bereits in der ersten Stufe. Gibt es ein Benutzerkonto und ist das Kennwort korrekt beziehungsweise handelt es sich um eine Windows-Authentifizierung, prüft der SQL Server als Nächstes, ob das Benutzerkonto auch der jeweiligen Datenbank zugeordnet ist.

Benutzer und Benutzergruppen

Wie auch in einer Windows-Domäne gibt es auch beim SQL Server Benutzer und Benutzergruppen. Beiden können Sie Berechtigungen für den Zugriff auf die verschiedenen Elemente einer Datenbank zuweisen.

Der Vorteil der Konten von Benutzergruppen gegenüber Benutzern treten dabei zutage, wenn mehrere Benutzer mit gleichen Berechtigungen für den Zugriff auf die Datenbank ausgestattet werden sollen. Dann brauchen Sie die Berechtigungen nur für die Benutzergruppe zu definieren und brauchen die Benutzer, die diese Berechtigungen erhalten sollen, einfach nur der Benutzergruppe zuzuweisen.

Das hat nebenher den Vorteil, dass Sie, wenn ein Benutzer ausscheidet und/oder ein neuer Benutzer die gleichen Berechtigungen erhalten soll, Sie den Benutzer nur von der Gruppe entfernen oder hinzufügen müssen. Andersherum brauchen Sie, wenn sich einmal die Berechtigungen für die Benutzer dieser Gruppe ändern sollen, nur die Berechtigungen für die Gruppe zu ändern und nicht für jeden einzelnen Benutzer. Sie sehen: Die Vergabe von Berechtigungen über Benutzergruppen ist essenziell, wenn Sie es mit mehr als einem Benutzer zu tun haben.

Bei der Verwendung der Windows-Authentifizierung gibt es gegebenenfalls bereits Benutzergruppen unter Windows, denen die verschiedenen Benutzer zugeordnet sind. In diesem Fall vergeben Sie die Berechtigungen im SQL Server für die Windows-Benutzergruppen und nicht für einzelne Benutzer. In Unternehmen sollten dies der Fall sein – dort gibt es verschiedenen Benutzergruppen mit individuellen Berechtigungen, denen die Mitarbeiter zugeordnet werden. Dadurch erben die Mitarbeiter die Berechtigungen dieser Gruppe. Scheidet ein Mitarbeiter aus dem Unternehmen aus, wird sein Benutzerkonto aus der Benutzergruppe entfernt – schon sind auch seine Berechtigungen am SQL Server erloschen. Auf diese Weise muss sich der Administrator des SQL Servers oder der Datenbank gar nicht um die Vergabe oder den Entzug von Berechtigungen beschäftigen, denn dies erledigt der Systemadministrator, indem er die Windows-Benutzer aus Gruppen entfernt oder sie diesen hinzufügt.

Wenn Sie Berechtigungen für Benutzergruppen mit Benutzern in einer Umgebung mit SQL Server-Authentifizierung vergeben wollen, müssen Sie die Benutzergruppen erst noch im SQL Server anlegen und diesen die einzelnen Benutzer zuweisen. Das ist, wie oben erwähnt, die einzig mögliche Variante, wenn die Benutzer und Benutzergruppen nicht in einer Domäne verwaltet werden.

Sicherheit mit Windows-Authentifizierung

Wir schauen uns als Erstes an, wie die Windows-Authentifizierung funktioniert. Dazu legen wir im Folgenden auf dem lokalen Rechner zwei Windows-Benutzerkonten an sowie zwei Benutzergruppen an. Jedes Benutzerkonto weisen wir dabei einer Benutzergruppe zu. Dann fügen wir die Benutzergruppen als Anmeldungen zum SQL Server hinzu und ordnen diese unserer Beispieldatenbank Suedsturm_SQL zu.

Benutzer hinzufügen

Unter Windows 10 Pro können Sie Benutzer über die Benutzeroberfläche hinzufügen. Da es unter den Lesern gegebenenfalls auch Benutzer der Home-Version von Windows 2010 gibt, wollen wir einen alternativen Weg zum Verwalten von Benutzern und Benutzergruppen aufzeigen. Dieser verwendet das Kommandozeilentool net.exe. Um dieses zu nutzen, geben Sie cmd in das Suchfeld von Windows ein und betätigen die Eingabetaste. In der nun erscheinenden Eingabeaufforderung können Sie mit wenigen Befehlen die Benutzer und Benutzergruppen verwalten. Die Befehle von net.exe finden Sie, indem Sie diesen einfach ohne weitere Optionen eingeben (siehe Bild 1).

Optionen des Befehls net.exe zur Benutzerverwaltung

Bild 1: Optionen des Befehls net.exe zur Benutzerverwaltung

Um sich einen überblick über die aktuell vorhandenen Benutzer zu schaffen, verwenden Sie etwa den folgenden Befehl:

net.exe USER

Dies liefert die Liste aus Bild 2. Wenn Sie alle Benutzergruppen ausgeben möchten, ist die folgende Option die Richtige:

Ausgabe der aktuellen Benutzer des Systems

Bild 2: Ausgabe der aktuellen Benutzer des Systems

net.exe GROUP

Dieser Befehl liefert, wenn keine Domäne vorhanden ist, das folgende Resultat:

Dieser Befehl kann nur auf Windows-Domänencontrollern ausgeführt werden.

Wenn wir allerdings den Befehl net.exe LOCALGROUP ausführen, liefert dies das Ergebnis aus Bild 3.

Ausgabe der Benutzergruppen

Bild 3: Ausgabe der Benutzergruppen

Wir wollen nun nicht lange experimentieren, sondern direkt einen neuen Benutzer anlegen. Um einen neuen Benutzer namens Benutzer1 mit dem Kennwort password anzulegen, verwenden wir den folgenden Befehl:

net.exe USER /ADD Benutzer1 password

Dabei erhalten wir allerdings den folgenden Fehler:

C:\>net.exe USER /ADD Benutzer1 password
Systemfehler 5 aufgetreten.
Zugriff verweigert

Aber keine Sorge: Wir haben lediglich versäumt, die Eingabeaufforderung mit Administrator-Rechten zu starten. Dazu geben Sie nochmals cmd im Suchfeld von Windows ein. Es erscheint nun der Eintrag Eingabeaufforderung in der Liste der Suchergebnisse.

Diesen klicken Sie mit der rechten Maustaste an und wählen aus dem Kontextmenü den Befehl Als Administrator ausführen aus (siehe Bild 4).

Eingabeaufforderung mit Administratorrechten starten

Bild 4: Eingabeaufforderung mit Administratorrechten starten

Danach gelingt dann auch der Aufruf des Befehls zum Anlegen eines neuen Benutzers:

C:\>net.exe USER /Add Benutzer1 password
Der Befehl wurde erfolgreich ausgeführt.

Geben Sie danach erneut den Befehl net.exe USER ein, erscheint der neue Benutzer namens Benutzer1 in der Auflistung. Auf die gleiche Weise legen wir nun den Benutzer mit dem Namen Benutzer2 und dem Kennwort password an:

C:\>net.exe USER /Add Benutzer2 password

Damit haben wir die gewünschten beiden Benutzer zum System hinzugefügt. Nun kommen wir zu den Benutzergruppen. Dazu finden wir zwei mögliche Optionen in der Befehlsliste: GROUP und LOCALGROUP. Der Befehl net.exe GROUP kann nur in Zusammenhang mit einer Domäne angewendet werden. Da wir diese nicht für jeden Leser voraussetzen können, wollen wir die Variante LOCALGROUP nutzen, um die neuen Gruppen anzulegen. Mit der Option /ADD und dem Namen der hinzuzufügenden Gruppe, hier Gruppe1, fügen wir nun eine erste Gruppe hinzu:

C:\>net.exe LOCALGROUP /ADD Gruppe1
Der Befehl wurde erfolgreich ausgeführt.

Auf diese Weise legen wir auch noch eine zweite Gruppe an:

C:\>net.exe LOCALGROUP /ADD Gruppe2
Der Befehl wurde erfolgreich ausgeführt.

Der Befehl net.exe LOCALGROUP gibt nun die bereits vorhandenen und die beiden neuen Gruppen aus:

C:\>net.exe LOCALGROUP
Gruppen für DESKTOP-PC-I5
------------------------------------------------------
...
*Gruppe1
*Gruppe2
...
Der Befehl wurde erfolgreich ausgeführt.

Benutzer einer Gruppe anzeigen

Bevor wir unsere beiden Benutzer den neuen Gruppen zuweisen, schauen wir uns an, wie wir ermitteln können, welche Benutzer einer Gruppe bereits zugeordnet sind. Dazu verwenden wir den Befehl LOCALGROUP und geben einfach den Namen der Gruppe an, deren Mitglieder wir ermitteln wollen – hier für die Gruppe Administratoren:

C:\WINDOWS\system32>net.exe LOCALGROUP Administratoren
Aliasname        Administratoren
Beschreibung     Administratoren haben uneingeschränkten Vollzugriff auf den Computer bzw. die Domäne.
Mitglieder
-------------------------------------------------------
Administrator
User
Der Befehl wurde erfolgreich ausgeführt.

Benutzer einer Gruppe hinzufügen

Nun fügen wir den Benutzer mit den Namen Benutzer1 der Gruppe namens Gruppe1 hinzu. Dazu nutzen wir wieder den Befehl LOCALGROUP mit den Namen der Gruppe, fügen aber noch die Option /ADD mit den Namen des hinzuzufügenden Benutzers hinzu:

C:\>net.exe LOCALGROUP Gruppe1 /ADD Benutzer1
Der Befehl wurde erfolgreich ausgeführt.

Ein Aufruf des Befehls LOCALGROUP Gruppe1 liefert dann den Benutzer Benutzer1 als einziges Mitglied dieser Gruppe.

Den Benutzer Benutzer2 fügen wir anschließend auf die gleiche Weise der Gruppe Gruppe2 hinzu.

Benutzer aus einer Gruppe entfernen

Wenn Sie den Benutzer anschließend wieder aus der Gruppe entfernen wollen, erledigen Sie das mit der folgenden Anweisung:

c:/>LOCALGROUP Gruppe1 /DELETE Benutzer1

Um im Anschluss an eventuelle Experimente im Rahmen der Lektüre dieses Artikels das System in den ursprünglichen Zustand zu versetzen, können Sie die Benutzer wie folgt löschen:

C:\>net.exe LOCALGROUP /DELETE Gruppe1
C:\>net.exe LOCALGROUP /DELETE Gruppe2

Die beiden Benutzer löschen Sie so:

C:\>net.exe USER /DELETE Benutzer1
C:\>net.exe USER /DELETE Benutzer2

Für die folgenden Experimente im SQL Server sollten Sie die beiden Gruppen und die beiden Benutzer jedoch noch behalten beziehungsweise erneut anlegen.

Benutzergruppe im SQL Server nutzen

Nun wollen wir die beiden zuvor unter Windows angelegten Benutzergruppen im SQL Server nutzen. Dazu öffnen Sie das SQL Server Management Studio, in unserem Fall in der Version 2016. Hier arbeiten wir mit einer Datenbank namens Suedsturm_SQL, die Sie gegebenenfalls noch anlegen müssen. Das benötigte SQL-Skript finden Sie im Download zu diesem Beitrag, die Anleitung dazu liefert der Beitrag SQL Server-Datenbank kopieren (www.access-im-unternehmen.de/1153).

Zugriff einrichten in zwei Stufen

Wie wir weiter oben angeführt haben, hat das Sicherheitssystem des SQL Servers zwei Stufen – die erste erlaubt den Zugriff auf den SQL Server, die zweite dann den Zugriff auf die jeweilige Datenbank. Dementsprechend müssen wir auch zuerst entsprechende Benutzergruppen und Benutzer für den SQL Server einrichten und erst dann für die jeweilige Datenbank.

Um zunächst eine neue Gruppe für die Instanz des SQL Servers anzulegen, klicken Sie mit der rechten Maus auf den Eintrag Sicherheit des SQL Servers im SQL Server Management Studio und wählen den Eintrag Neue Anmeldung… aus (siehe Bild 5).

Aufruf des Dialogs zum Anlegen einer neuen Anmeldung

Bild 5: Aufruf des Dialogs zum Anlegen einer neuen Anmeldung

Es erscheint der Dialog aus Bild 6. Hier können Sie den Namen der anzulegenden Gruppe direkt in das Feld Anmeldename eingeben. Allerdings wollen wir es uns etwas gemütlicher machen und klicken zunächst auf die Schaltfläche Suchen.

Dialog zum Anlegen einer neuen Anmeldung

Bild 6: Dialog zum Anlegen einer neuen Anmeldung

Dies öffnet wiederum den Dialog aus Bild 7. Auch hier wollen wir noch nicht nach der anzulegenden Gruppe suchen, die wir ja von den Windows-Anmeldungen übernehmen wollen. Wir klicken auf die Schaltfläche Erweitert.

Dialog zum Auswählen von Benutzern oder Gruppen

Bild 7: Dialog zum Auswählen von Benutzern oder Gruppen

Im nun erscheinenden Dialog Benutzer oder Gruppe auswählen klicken wir ohne Angabe von Suchkritereien einfach auf die Schaltfläche Jetzt suchen. Es erscheinen einige Einträge in der Liste der Suchergebnisse, darunter auch unsere zuvor angelegten Benutzer namens Benutzer1 und Benutzer2 (siehe Bild 8). Allerdings finden wir hier leider nicht die beiden Gruppen Gruppe1 und Gruppe2.

Erweiterter Dialog zum Auswählen von Benutzern oder Gruppen

Bild 8: Erweiterter Dialog zum Auswählen von Benutzern oder Gruppen

Die Ursache ist schnell gefunden. Wenn Sie auf die Schaltfläche Objekttypen rechts neben dem Textfeld Objekttyp klicken, erscheint der Dialog Objekttypen. Hier ist die Option Gruppen standardmäßig deaktiviert. Also setzen wir den fehlenden Haken und schließen den Dialog wieder (siehe Bild 9).

Dialog zur Auswahl der anzuzeigenden Objekttypen

Bild 9: Dialog zur Auswahl der anzuzeigenden Objekttypen

Zurück im Dialog Benutzer oder Gruppe auswählen klicken Sie nun erneut auf die Schaltfläche Jetzt suchen. Nun erscheinen in der Liste der Suchergebnisse auch die beiden Einträge Gruppe1 und Gruppe2 (siehe Bild 10). Hier markieren wir nun zunächst den Eintrag Gruppe1 und klicken auf OK.

Dialog mit den gesuchten Gruppen

Bild 10: Dialog mit den gesuchten Gruppen

Im Dialog Benutzer oder Gruppe auswählen finden Sie nun den Eintrag mit dem Rechnernamen und dem Namen der Gruppe (siehe Bild 11).

Die gesuchte Gruppe im Dialog Benutzer oder Gruppe auswählen

Bild 11: Die gesuchte Gruppe im Dialog Benutzer oder Gruppe auswählen

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar