16 Sicherheit und Benutzerverwaltung

Werbung
Leseprobe aus Access und SQL Server
http://www.acciu.de/asqllesen
16 Sicherheit und Benutzerverwaltung
Einer der Hauptgründe, warum Sie Access-Anwendungen mit einer SQL Server-Datenbank als
Backend verwenden, ist die Sicherheit. In reinen Access-Anwendungen können Sie schlicht
und einfach nicht sicherstellen, dass jeder Benutzer nur die für ihn vorgesehenen Daten einsehen oder bearbeiten darf. Darüberhinaus können Sie noch nicht einmal verhindern, dass
Unbefugte sich Zugriff zu den in den Tabellen enthaltenen Daten verschaffen. Es gibt zwar noch
die Möglichkeit, vollständige Datenbanken mit einem Kennwort vor dem Zugriff Unbefugter zu
schützen, aber hier ist keine Vergabe differenzierter Berechtigungen möglich.
SQL Server hingegen arbeitet mit einem mehrstufigen Sicherheitssystem. Nach der Authen­ti­
fi­zierung am SQL Server selbst erfolgt die Autorisierung an den jeweiligen Datenbanken. Der
Benutzer verschafft sich dabei mit seinem Windows-Benutzerkonto oder einem SQL ServerBenutzerkonto Zugang zum SQL Server und erhält dort die vorgesehenen Berechtigungen für die
einzelnen Datenbanken. Diese wiederum können sehr fein eingestellt werden. Doch eines nach
dem anderen – in den nächsten Abschnitten lernen Sie die Grundlagen des Sicherheitssystems
unter SQL Server kennen und erfahren, wie Sie dieses einrichten.
16.1 Sicherheit auf Server- und Datenbankebene
Um mit den Daten einer Datenbank arbeiten zu können, müssen Sie durch zwei Türen. Die erste
Tür ist die des SQL Servers und die zweite die der jeweiligen Datenbank. Der Vorgang ist vergleichbar mit den Türen eines Unternehmens.
Stellen Sie sich vor, Sie besuchen einen Kunden. Der Besuch beginnt in der Regel am Empfang.
Dort melden Sie sich an. Die freundliche Empfangsdame prüft Ihr Anliegen, indem Sie bei dem
entsprechenden Mitarbeiter nachfragt, ob er Sie denn erwartet. Bejaht der Mitarbeiter diese
Frage, werden Sie in der Regel höflich gebeten, kurz auf ihn zu warten. Nun haben Sie zwar
Zutritt zum Unternehmen, aber noch keinen richtigen Zugang zu einer Abteilung. Im Vergleich
mit der mehrstufigen Anmeldung beim SQL Server haben Sie Ihre Authentifizierung am SQL
Server erfolgreich bestanden, eine Autorisierung an einer Datenbank steht aber noch aus.
Die Autorisierung folgt direkt im Anschluss. In unserem Beispiel durch den Mitarbeiter des
Unternehmens, der Sie mit in die Abteilung Einkauf nimmt. Dort sollen Sie Daten erfassen, ändern und löschen. In der Abteilung angekommen, haben Sie nun auch die Autorisierung bestanden. Die Autorisierung für die Abteilung Einkauf, in der Sie Daten ändern dürfen – oder im Fall
des SQL Servers: die Autorisierung für die Datenbank Einkauf, in der Sie lesenden und schreibenden Zugriff auf die Daten haben.
Nach der Mittagspause wechseln Sie zur Abteilung Personal. Dort erstellen Sie neue Auswertungen.
Sie besitzen also noch eine weitere Autorisierung zu einer anderen Abteilung, dort allerdings
Kapitel 16 Sicherheit und Benutzerverwaltung
nur zum Lesen von Daten. Im Sinne vom SQL Server gibt es für Ihre Authentifizeriung auch eine
Autorisierung an der Datenbank Personal, hier jedoch nur mit lesendem Zugriff.
Das ist das Prinzip der SQL Server-Sicherheit. Mit einem Benutzerkonto erhalten Sie Zugang
zum SQL Server – die sogenannte Anmeldung. Dieses Benutzerkonto kann einer oder mehreren Datenbanken zugeordnet sein – der Benutzer einer Datenbank. Eine Anmeldung kann als
Benutzer in den jeweilis zugeordneten Datenbanken unterschiedliche Rechte haben. Wobei
sich die Rechte sehr detailliert vergeben lassen: Sie können Daten lesen, ändern und löschen,
Objekte erstellen, ändern und löschen sowie Objekte ausführen. Abbildung 16.1 zeigt dies schematisch.
Abbildung 16.1: Das zweistufige Sicherheitskonzept beim SQL Server
16.2 Authentifizierung am SQL Server
Zur Authentifizierung bietet SQL Server zwei Varianten an.
»» Windows-Authentfizierung: Bei der Windows-Authentifizierung prüft SQL Server, ob es für
den Benutzer, der vom lokalen oder einem entfernten Rechner auf den SQL Server zugreift,
ein Benutzerkonto auf dem SQL Server gibt. Dabei handelt es sich um das Domänen- oder
Arbeitsgruppen-Benutzerkonto, das dem SQL Server direkt oder auch indirekt über eine
lokale Gruppe oder eine Domänengruppe zugeordnet ist. Die Windows-Authentifizierung
erfordert also keine eigene Anmeldung am SQL Server. Die Anmeldung erfolgt direkt mit der
Windows-Anmeldung.
»» SQL Server-Authentifizierung: Bei der SQL Server-Authentifizierung prüft SQL Server den
Zugriff ebenfalls über ein Benutzerkonto. Nur handelt es sich hierbei um ein Benutzerkonto,
dass im SQL Server selbst verwaltet wird. Dazu muss das Benutzerkonto samt Kennwort im
SQL Server anlegt werden. Die SQL Server-Authentifizierung erfordert immer eine Anmeldung
am SQL Server – mit dem Benutzernamen und dem Kennwort. Auch das Benutzerkonto sa,
das immer vorhanden ist (und tunlichst mit einem starken Kennwort versehen werden will),
ist ein Benutzerkonto der SQL Server-Authentifizierung.
406
Benutzer und Benutzergruppen
Die Windows-Authentifizierung ist die Standard-Authentifizierungsmethode. Diese kann bei der
Installation oder auch nachträglich in den Eigenschaften der SQL Server-Instanz mit der SQL
Server-Authentifizierung erweitert werden.
16.3 Benutzer und Benutzergruppen
Wenn Sie eine Access/SQL Server-Anwendung installieren, müssen Sie die Berechtigungen
der Benutzer oder Gruppen für die Objekte der jeweiligen Datenbanken festlegen. Je nach
Größe des Unternehmens des Kunden finden Sie in dessen Netzwerk bereits Gruppen- und
Benutzerkonten vor. Das heißt, dass für jeden Mitarbeiter ein unternehmensweites WindowsBenutzerkonto existiert. Außerdem gibt es verschiedene Windows-Benutzergruppen, welche
die Benutzer enthalten und für die bestimmte Berechtigungen festgelegt wurden.
Die Berechtigungen werden in der Regel auf Gruppenbasis vergeben, damit beim Ausscheiden
oder Hinzukommen von Benutzern keine neuen Regeln für den jeweiligen Benutzer entfernt oder
festgelegt werden müssen – der Benutzer wird einfach der Benutzergruppe entnommen beziehungsweise zu einer Benutzergruppe hinzugefügt, welche die entsprechenden Berechtigungen
aufweist.
Genauso sollten Sie auch beim SQL Server vorgehen – vorausgesetzt, dies ist beim Kunden nicht
bereits so eingerichtet. Falls Sie das System neu aufsetzen (manchmal landet eine Anwendung
ja auch auf einer eigenen SQL Server-Instanz), verwenden Sie die entsprechenden WindowsBenutzergruppen zur Authentifizierung – und keine einzelnen Windows-Benutzerkonten.
Der Vorteil liegt auf der Hand. Sie ordnen die Windows-Benutzergruppen den einzelnen
Datenbanken zu und vergeben dort die Berechtigungen. Dies spart nicht nur eine Menge
Verwaltungsaufwand, denn in der Regel gibt es weniger Gruppen als Benutzer. Sie sparen auch
eine doppelte Rechteverwaltung. Verwalten Sie die Windows-Benutzer einzeln, müssen Sie
bei jeder personellen Änderung die Zuordnung des Benutzers zu den Datenbanken und den
damit verbundenen Rechten anpassen. Eine personelle Änderung wird aber bereits auf der
Systemebene durch den Systemadministrator verwaltet, indem dieser den Benutzer einer anderen Windows-Benutzergruppe zuordnet. Verwenden Sie im SQL Server lediglich die WindowsBenutzergruppe, wirken sich die Änderungen des Systemadministrators direkt auf die Rechte
des Benutzers im SQL Server und den Datenbanken aus.
Wechselt also ein Mitarbeiter von der Abteilung Einkauf in die Abteilung Personal, verschiebt
der Systemadministrator das Windows-Benutzerkonto des Mitarbeiters in die WindowsBenutzergruppe Personal. Da diese Windows-Benutzergruppe im SQL Server der Datenbank
Personal mit entsprechenden Rechten zugeordnet ist, hat der Mitarbeiter direkt auch alle notwendigen Rechte an der Datenbank Personal.
407
Kapitel 16 Sicherheit und Benutzerverwaltung
Domäne oder keine Domäne
Möchten Sie per Windows-Authentifizierung auf den SQL Server zugreifen, setzt dies eine
Windows-Domäne voraus. Sie können sich nicht mit einem lokalen Windows-Benutzer oder einer Windows-Benutzergruppe an einen SQL Server auf einem anderen Rechner anmelden. Dies
gelingt nur – wie in den folgenden Beispielen beschrieben – wenn der Benutzer am gleichen
Rechner angemeldet ist, auf dem auch der SQL Server läuft.
Verwendet der Kunde keine Domäne, bleibt Ihnen nur die SQL Server-Authentifizierung.
Was zieht dies für die folgenden Beispiele nach sich? Lediglich den Hinweis, dass Sie, wenn das
Testnetzwerk keine Domäne enthält, nur vom lokalen Rechner auf den SQL Server zugreifen
können. Möchten Sie beispielsweise in Ihrem privaten Netzwerk von einem Rechner auf den
SQL Server auf einem anderen Rechner zugreifen, müssen Sie die SQL Server-Authentifizierung
verwenden.
16.4 Beispiel zum Einrichten der Sicherheit mit der
Windows-Authentifizierung
In den folgenden Abschnitten nehmen wir eine Beispielkonfiguration vor. Dabei erledigen wir
folgende Schritte:
»» Anlegen zweier Benutzerkonten unter Windows
»» Anlegen zweier Windows-Benutzergruppen, denen je eines der neuen Benutzerkonten hinzugefügt wird
»» Zuordnen der Windows-Benutzergruppen als Anmeldungen im SQL Server
»» Zuordnen dieser neuen Anmeldungen zur Beispieldatenbank AEMA_SQL
16.5 Benutzer unter Windows anlegen
Wenn Sie mit den nachfolgenden Beispielen experimentieren möchten, legen Sie zwei Benutzer
auf Ihrem Windows-System an. Dazu gehen Sie wie folgt vor:
»» Klicken Sie im Startmenü mit der rechten Maustaste auf den Eintrag Computer und wählen
Sie den Eintrag Verwalten aus dem Kontextmenü aus.
»» Öffnen Sie im nun erscheinenden Dialog den Ordner System|Lokale Benutzer und Gruppen.
»» Wählen Sie am Ordner Benutzer den Kontextmenübefehl Neuer Benutzer... aus (siehe
Abbildung 16.2).
408
Benutzer unter Windows anlegen
»» Geben Sie die Benutzerdaten für den neuen Benutzer an (siehe Abbildung 16.3).
»» Schließen Sie die Eingabe mit einem Klick auf Erstellen ab. Der Benutzer wird gespeichert
und der Dialog Neuer Benutzer wird geleert, damit Sie weitere Benutzer anlegen können.
Legen Sie gleich noch einen weiteren Benutzer namens Alfred Neumann an und schließen
Sie den Dialog danach mit einem Klick auf Schließen.
Abbildung 16.2: Anlegen eines neuen Windows-Benutzers
Abbildung 16.3: Eintragen der Daten des neuen Benutzers
Die beiden neu angelegten Benutzer werden nun in der Liste der Benutzer angezeigt (siehe
Abbildung 16.4).
409
Kapitel 16 Sicherheit und Benutzerverwaltung
Abbildung 16.4: Liste mit neuen Windows-Benutzern
Nun fügen Sie zwei Gruppen hinzu, denen Sie die beiden Benutzer zuweisen. Dazu wählen Sie
den Kontextmenüeintrag Neue Gruppe im Ordner Gruppen in der Computerverwaltung aus.
Im nun erscheinenden Dialog legen Sie eine neue Gruppe namens Basis an (siehe Abbildung
16.5).
Abbildung 16.5: Anlegen einer neuen Gruppe namens Basis
Dieser Gruppe weisen Sie nun noch einen Benutzer zu, beispielsweise den zuvor angelegten Karl
Klammer. Klicken Sie dazu auf Hinzufügen. Im nun erscheinenden Dialog können Sie die anzulegenden Elemente einfach eintragen (siehe Abbildung 16.6).
410
Benutzer unter Windows anlegen
Abbildung 16.6: Auswählen des hinzuzufügenden Benutzers
Wenn Sie hier Karl Klammer eintragen und auf Namen überprüfen klicken, ergänzt der Dialog
noch den Rechnernamen (etwa ASQL\Karl Klammer). Haben Sie den Benutzernamen nicht im
Kopf, klicken Sie auf Erweitert... und zeigen so den Dialog aus Abbildung 16.7 an. Hier finden
Sie nach Betätigung der Schaltfläche Jetzt suchen unter anderem auch die eben angelegten
Benutzer.
Abbildung 16.7: Auswählen hinzuzufügender Benutzer
Sollte der gesuchte Benutzer dort nicht auftauchen, stellen Sie mit einem Klick auf die
Schaltfläche Objekttypen... sicher, dass die Benutzer auch angezeigt werden. Gegebenenfalls
müssen Sie dort noch den Eintrag Benutzer aktivieren (siehe Abbildung 16.8).
411
Kapitel 16 Sicherheit und Benutzerverwaltung
Abbildung 16.8: Aktivieren der Anzeige der Benutzer in der Auswahlliste
Schließlich landet der neue Benutzer in der neuen Gruppe (siehe Abbildung 16.9).
Abbildung 16.9: Neue Benutzergruppe mit dem ersten Benutzer
Auf die gleiche Weise legen Sie eine weitere Gruppe namens Erweitert an und weisen dieser den
Benutzer Alfred Neumann zu.
Die beiden frisch angelegten Gruppen erscheinen schließlich in der Liste der eingebauten und
der benutzerdefinierten Gruppen in der Computerverwaltung (siehe Abbildung 16.10).
412
Benutzer unter Windows anlegen
Abbildung 16.10: Neue Gruppen in der Computerverwaltung
16.5.1 Windows-Benutzergruppen im SQL Server
Wie bereits erwähnt, wollen wir im SQL Server gar nicht erst beginnen, einzelne WindowsBenutzer zu verwalten, sondern gleich auf Basis der Windows-Benutzergruppen arbeiten. Hier ist
zu beachten, dass wir nun zunächst Anmeldungen zur Authentifizierung am SQL Server erstellen,
diesen die Windows-Benutzergruppen zuordnen und anschließend die neuen Anmeldungen als
Benutzer in der Zieldatenbank anlegen.
Anmeldungen und Benutzer legen Sie im SQL Server über das SQL Server Management Studio
an. Hier klicken Sie mit der rechten Maustaste auf den Eintrag Sicherheit und wählen den Befehl
Neu|Anmeldung aus dem Kontextmenü aus (siehe Abbildung 16.11).
Abbildung 16.11: Hinzufügen einer SQL Server-Anmeldung
413
Kapitel 16 Sicherheit und Benutzerverwaltung
Im nun erscheinenden Dialog klicken Sie der Einfachheit halber auf die Schaltfläche Suchen (siehe Abbildung 16.12).
Abbildung 16.12: Hinzufügen der neuen Anmeldungen über die Suchen-Funktion
Dies öffnet den Dialog Benutzer oder Gruppen auswählen aus Abbildung 16.13. Hier können
Sie den Objektnamen in der Form <Rechnername>\<Gruppenname> eintragen und diesen mit
einem Klick auf Namen überprüfen verifizieren.
Abbildung 16.13: Dialog zum Auswählen von Benutzern oder Gruppen
Versuchen wir dies mit <Rechnername>\Basis, also eine der beiden soeben unter Windows angelegten Benutzergruppen, findet der Dialog die Benutzergruppe möglicherweise nicht.
Das Problem lässt sich in der Regel leicht lösen: Klicken Sie einmal auf die Schaltfläche
Objekttypen..., erscheint der Dialog aus Abbildung 16.14. Hier dürfte die Option Gruppen deaktiviert sein. Aktivieren Sie diese und schließen Sie den Dialog wieder.
414
Benutzer unter Windows anlegen
Abbildung 16.14: Objektart Gruppe aktivieren
Klicken Sie nun im Dialog Benutzer oder Gruppen auswählen auf die Schaltfläche Namen überprüfen, erkennt der SQL Server die gewünschte Benutzergruppe.
Sollten Sie die Benutzergruppe immer noch nicht finden, klicken Sie im Dialog Benutzer oder
Gruppen auswählen auf die Schaltfläche Erweitert. Dies öffnet den Dialog aus Abbildung 16.15.
Eventuell müssen Sie auch hier unter Objekttypen den Eintrag Gruppen aktivieren, bevor Sie
auf die Schaltfläche Suchen klicken. Die Liste im unteren Bereich sollte nun den gewünschten
Eintrag anzeigen, den Sie durch Markieren und Schließen des Dialogs übernehmen.
Abbildung 16.15: Suchen nach Windows-Benutzern oder Windows-Benutzergruppen
415
Kapitel 16 Sicherheit und Benutzerverwaltung
Standarddatenbank einstellen
Im Dialog Anmeldung – Neu legen Sie noch die Standarddatenbank fest – in diesem Fall
die Beispieldatenbank AEMA_SQL. Auf diese Weise können Sie später beim Erstellen der
Verbindungszeichenfolgen direkt auf die Standarddatenbank zugreifen.
Serverrolle festlegen
Nun wechseln Sie zur Seite Serverrollen. Hier legen Sie fest, welche administrativen Rechte die
neue Anmeldung im SQL Server hat. Standardmäßig sind alle Anmeldungen der Serverrolle public zugeordnet (siehe Abbildung 16.16).
Abbildung 16.16: Die Serverrollen vom SQL Server
Die Serverrolle public stellt den kleinsten gemeinsamen Nenner der Berechtigungen zur
Verwaltung des SQL Servers dar. Durch Auswahl einer oder mehrerer anderer Serverrollen erweitern Sie die Rechte einer Anmeldung.
»» sysadmin: Ausführen aller Aktivitäten im SQL Server
»» serveradmin: Ändern der SQL Server-Konfiguration, sowie Beenden vom SQL Server-Dienst
»» securityadmin: Verwalten von Anmeldungen
»» processadmin: Beenden von Prozessen
416
Herunterladen