Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2018.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

SQL Server: Sicherheit und Benutzerverwaltung

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.

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

Bitte teilen Sie uns Ihre Anrede, Ihren Namen und Ihre E-Mail-Adresse mit:

Anrede:
Vorname:
Nachname:
E-Mail:

© 2003-2018 André Minhorst Alle Rechte vorbehalten.