Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

SQL Server 2016 Grundkurs: Administration

Datenbankbenutzer

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Was sind Datenbankbenutzer, welche Abgrenzung gibt es zu einem Login und wie erfolgt die Erteilung der Berechtigung an bestimmte Benutzer? In diesem Video geht Daniel Caesar ausführlich auf die Beantwortung dieser Fragen ein.
10:56

Transkript

In diesem Video sehen Sie, was im SQL Server Datenbankbenutzer sind, welche Abgrenzung es zu einem Login gibt und wie die Verwaltung der Datenbankbenutzer beziehungsweise die Erteilung der Berechtigungen erfolgt. Was sind Datenbankbenutzer? Bisher haben wir kennengelernt, dass wir im Knoten Sicherheit auf Instanzebene, unter "Anmeldung" unsere Logins anlegen können und diesen Logins Berechtigungen auf Serverebene zuweisen. Wenn wir uns jetzt mal in den Kontext einer Datenbank begeben, ich öffne also mal den Konten "Datenbanken", nehme eine Datenbank. Dann sehen Sie, dass es hier ebenfalls einen Knoten Sicherheit gibt, das heißt also, jede Datenbank hat noch mal so einen Knoten Sicherheit. Wenn ich diesen Knoten Sicherheit öffne, sehe ich, dass es hier Benutzer gibt, und wenn ich diesen Knoten Benutzer öffne, sehe ich, welche Benutzer sind jetzt innerhalb der Datenbank hinterlegt. Wenn wir uns das Berechtigungskonzept anschauen, es ist hier rarisch, das heißt, die übergeordnete Ebene ist die SQL Server Instanz, und wenn ich natürlich einen Benutzer in einer Datenbank berechtigen möchte, muss ich ihn Erstmal dieser Datenbank zuweisen, vor allen Dingen, wir haben ja vielleicht 30-40 verschiedene Datenbanken, nun müssen wir gucken, worauf soll er berechtigt werden. Ein erster Ansatz besteht darin, dass ich mir die jeweilige Datenbank nehme, zum Knoten "Benutzer" gehe, rechte Maustaste, neuer Benutzer, und jetzt die Möglichkeit habe, hier einen Benutzernamen zu hinterlegen, das ist kein Auswahlfeld, das heißt also, der Benutzername ist jetzt der Name, der hier im Knoten "Benutzer" unter "Sicherheit" innerhalb der Datenbank verwendet wird. Dieser Benutzer kann und das ist hier oben bei Benutzertyp definiert, einen Benutzer mit Anmeldenamen sein, das bedeutet, dass ich hier jetzt durchsuche nach meinen Logins, die auf der Instanz existieren. Das mache ich, indem ich hier hinten auf den Button gehe. Anmeldung, auf "Durchsuchen" klicken. Wähle mir jetzt meinen Benutzer aus, das heißt, hier sind jetzt meine Logins drin enthalten, das ist also keine Aussage darüber, ob die irgendwo in einer Datenbank berechtigt sind, sondern meine Logins. dieses Login übernehme ich. Kann jetzt den Benutzernamen hier innerhalb meiner Datenbank natürlich übernehmen, könnte auch sagen, DBUser, also das ich das Ganze jetzt noch ergänze und weiß, das ist jetzt mein Login-Kürzel für DBUser und lege das Ganze an. So dann sehe ich, dass hier mir jetzt dieser Benutzer existiert, und ich über dieses einfache Verfahren jetzt eine Zuordnung Erstmal getroffen habe, welcher Benutzer bekommt Zugang zu welcher Datenbank oder welches Login auf der Instanz bekommt Zugang zu welcher Datenbank. Um jetzt vielleicht ein bisschen die Transparenz beizubehalten hinsichtlich der Namensvergabe, entferne ich das noch mal, kann ihn also auch rauslöschen, gehe noch mal auf "Benutzer", "neuer Benutzer", "Durchsuchen", "Durchsuchen" wähle den aus, und im ersten Step übernehme ich den Namen mal hier 1 zu1, wie es im Login existiert, auch in Bezug auf meine Datenbank, so. Das bedeutet, dass dieser Benutzer jetzt speziell dieser Datenbank zugewiesen ist, wenn ich jetzt hier unten, wo ich als dieser Benutzer angemeldet bin, diesen Knoten öffne und gehe mal zur Datenbank oder zu einer anderen Datenbank, bis dahin sehe ich Erstmal noch keine Unterschiede. Wenn ich jetzt hier den Knoten "Tabellen" öffne, Systemtabellen bleibt leer, wenn ich hier oben sage Tabellen, Systemtabellen bleibt leer. Das heißt also, es ist für mich jetzt noch nicht erkennbar ich mache das mal als Administrator, dass hier zum Beispiel Tabellen existieren in der Datenbank, als dieser Benutzer, weil das Zuordnen zur Datenbank lediglich den ersten Schritt darstellt. Ich natürlich im zweiten Schritt jetzt schauen muss, was soll der Benutzer jetzt innerhalb dieser Datenbank für Berechtigungen bekommen. Und dazu führe ich das Ganze fort, das heißt ich gehe noch mal zu dieser Datenbank, zu entsprechend dem Knoten Sicherheit und dem Benutzer. Klicke jetzt mal doppelt drauf auf diesen Benutzer und jetzt gibt es hier, das waren die allgemeinen Einstellungen, was wir festgelegt haben, jetzt gibt es hier eine Mitgliedschaft, und wir sehen, dass wir hier Datenbankrollen haben, also genau wie auf der Serverebene, wo es Serverrollen gibt, gibt es hier also auch Datenbankrollen beziehungsweise sicherungsfähige Elemente, das war auch schon mal auf der Serverebene zu sehen. Und wir jetzt die Möglichkeit haben, den Benutzer entsprechend entweder einzeln zu berechtigen Oer über eine Mitgliedschaft in einer Datenbankrolle das Ganze zuzuweisen. Das was wir jetzt einzeln gemacht haben, über die Datenbank, den Knoten Sicherheit, Benutzer, den Benutzer einer Datenbank zu ordnen, dafür gibt es ein alternatives Verfahren, was vielleicht ein bisschen übersichtlicher ist, ich nutze es ganz gern, dass ich hier Ansätze nicht auf der Ebene der Datenbank, sondern auf der Ebene Sicherheit meiner Instanz, zu den Anmeldungen gehe, den Benutzer entsprechend selektiere. Und hier haben wir die Serverrollen, das ist schon bekannt, jetzt gehe ich mal zu dem nächsten Punkt, Benutzerzuordnung, und im Grunde genommen ist das genau diese Punkt, wo ich einem Benutzer einer Datenbank zuordnen kann und ihn anschließend auch gleich hier unten einer Rolle innerhalb der Datenbank zuweisen. Ich mache das jetzt mal, indem ich einfach zusätzlich für diesen Benutzer MMuster sage, Okay, er soll der AdventureWorks Datenbank zugeordnet werden. Wenn ich das jetzt hier links überprüfen würde noch mal, im Vorfeld AdventureWorks, Sicherheit, Benutzer, steht er noch nicht drin, das heißt also zurück zu diesem Dialog, wo ich bin. Ich setze das Häkchen, sage "OK". Und wenn ich dann hier oben, das ist meine AdventureWorks-Datenbank, im Knoten "Sicherheit" unter "Benutzer" schaue, taucht er jetzt auf. Insofern ist das ein alternatives Verfahren, was für mich natürlich ein bisschen das Ganze übersichtlicher an der Stelle macht, dass ich vom Hauptknoten Sicherheit eben ausgehe und sage okay, schauen wir einfach mal auf welche Datenbank der Benutzer überall Zugriff hat. Dann sehe ich hier natürlich in der Liste jetzt komplett die Datenbanken, weiß er ist zugeordnet der AdventureWorks, er ist zugeordnet der Demo, er ist zugeordnet der sqlxpert. Interessant ich sehe hier hinten unter "Benutzer", dass er Datenbank zugeordnet ist als Datenbankbenutzer mit dem Namen MMuster, dieser Datenbank auch, hier steht "dbo", das bedeutet, daran erkenne ich, dass er derjenige ist, der die Datenbank angelegt hat, also der Eigentümer, der Owner und das sind dann die nachträglich zugewiesenen Rechte, wo er selber nicht der Eigentümer der Datenbank ist. Möchte jetzt noch anhand eines letzten Hinweises zeigen, dass es also hier wirklich Unterschiede gibt zwischen dem Login und dem Datenbankbenutzer, dass wir natürlich auch hinsichtlich mit TSQL das sehr gut erkennen können, ich gehe mal hier, wo die Logins sind, auf "Anmeldung" und sage "neue Anmeldung", trage mal eine SQL Server Anmeldung ein, also einen Namen, nehme mir einfach mal Test, ein Kennwort, und generiere anschließend das Script in einem Anfragefenster. So, hier sehen wir recht klar, "CREATE LOGIN WITH PASSWORD", daran erkenne ich also, dass es sich um ein SQL Server Login handelt. Wenn ich jetzt ein Login anlegen möchte, mache das noch mal, mit Windows-Authentifizierung, gehe auf "Durchsuchen", mein Active Directory. So, wir machen jetzt den Ceasar aus, mache genau die gleiche Geschichte, scheibe jetzt das allerdings in die Zwischenablage, um es unten drunter in dem Fenster einzufügen. Dann sehe ich, dass ich hier "CREATE LOGIN FROM WINDOWS" habe, also das betrifft die Logins. Wenn ich jetzt zu meiner Datenbank gehe, in dem Fall also zur AdventureWorks, ich schmeiße ihn hier noch mal raus, zu "Benutzer", "rechte Maustaste", "neuer Benutzer", "Durchsuchen". Habe meine Logins, meine Anmeldungen. Wähle ihn aus, so. Den Namen innerhalb der Datenbank, generiere das Skript. Wieder in die Zwischenablage, damit wir den Vergleich hier sehr schön sehen. Füge dieses Script ein, dann sehe ich, dass es hier sich um die Anweisung "CREATE USER" handelt, "FOR LOGIN" heißt, er wird zum Datenbankbenutzer, in der Datenbank heißt er DCeaser. Zugeordnet dem Login, DCeasar aus der Domäne SQLXPERT. Im Grunde genommen muss uns hier eins klar sein, was später wichtig ist, dass vom Objekt her zwei verschiedene Objekte existieren, dass wir einmal im Login die Objekte haben, die Logins, und dass wir auf der Datenbankebene die Benutzer haben, die eigene Objekte darstellen. Wichtig wir das Ganze mal an der Stelle, wenn wir ein Backup einer Datenbank machen und die Datenbank auf einer anderen Instanz recovern, muss uns klar sein, dass alle Objekte, die unterhalb des Knotens der Datenbank hängen, dazu zählen auch im Knoten "Sicherheit", die Benutzer, dass die mit dem Backup mitgenommen werden auf der anderen Instanz recovert, das Problem aber jetzt entstehen kann, wo wir uns dann Gedanken zu machen müssen, dass der Benutzer, der jetzt innerhalb der Datenbank existiert, natürlich auf der anderen Instanz noch kein Login hat. Diese Abhängigkeiten müssen dann berücksichtigt werden. In diesem Video haben Sie gesehen, was im SQL Server ein Datenbankbenutzer ist, wo die Abgrenzung zu einem Login erfolgt, dass es sich letztendlich um zwei Objekte handelt, wie Sie einen Datenbankbenutzer anlegen können, vom Kontext der Datenbank der oder aus dem Knoten Login, um ihn dann im nächsten Step entsprechend Berechtigungen zuzuweisen und dass da es sich um zwei Objekte handelt, später es wichtig wird, wenn eine Datenbank gesichert auf einer anderen Instanz wiederhergestellt wird, dass man dran denkt, dass es dort das Login gegebenenfalls noch nicht gibt und man sich dann darum kümmern muss.

SQL Server 2016 Grundkurs: Administration

Erlernen Sie die Administration des SQL Server 2016 vom Umgang mit dem Management Studio bis zu Automatisierung und Monitoring.

6 Std. 10 min (60 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Hersteller:
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:08.05.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!