SQL Server: Sicherheit für Entwickler

Rollen: Demo

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Sehen Sie in dieser Demonstration, was Sie im Umgang mit Rollen wissen sollten.
10:39

Transkript

So, hier zeige ich Ihnen zunächst einmal, wie die Verwaltung von Server-Rollen aussieht. Ich gehe dazu in den Ordner Security direkt unter dem Server und hier befindet sich ein weiterer Unterordner mit dem Namen Server Roles oder Server-Rollen und in diesem Ordner befinden sich alle standardmäßig vordefinierten Rollen. Ich kann zum Beispiel mal eine öffnen, Doppelklick, und Sie sehen hier eine Liste der potenziellen Mitglieder. Und wir sehen, hier ist das Admin, da sind eine ganze Menge sogar drin. Kann einzelne Mitglieder entfernen oder hinzufügen. Wenn ich einen hinzufüge, dann muss es zwangsläufig ein Login sein. Ich kann zum Beispiel dieses Login auswählen und dann ist auch dieser User, der hinter diesem Login steht, entsprechend SysAdmin. Wie gesagt, Achtung, es könnte sich auch um eine Windows-AD-Gruppe handeln, das heißt, damit hätte ich gleich eine ganze Gruppe von Anwendern zum Administrator gemacht. Dann können Sie hier eigene Server-Rollen anlegen. Zunächst einmal der Server-Rolle einen richtigen Namen geben, dann bei benutzerdefinierten Server-Rollen festlegen, was diese dürfen, das heißt, Rechte auf Securables vergeben. Und das ist das, was Sie in der Übersicht schon gesehen haben, die einzelnen Objekte, die ich in einem Server habe, für die ich Rechte definieren kann, kann ich hier angeben. Und ich kann jetzt Server zum Beispiel definieren, ich kann hier definieren, entsprechende Server-Rollen wiederum administriert werden dürfen und so weiter und so fort. Das heißt, hier kann ich die Berechtigung für diese Gruppe einstellen. Da es ein Kurs für Entwickler ist, ist das vermutlich nicht ganz so interessant für Sie, insofern gehe ich jetzt hier nicht in die Tiefe ein. Ich lege aber trotzdem meine Server-Rolle an, ich gebe da einen etwas passenderen Namen ein und ich kann dann dieser Server-Rolle direkt sagen, wo drin sie Mitglied sein soll. Ja, sie können zum Beispiel direkt Mitglied sein der ServerAdmins und welche Member, also welche Mitglieder sie wiederum haben soll. Das heißt, hiermit lege ich fest, worin diese Gruppe Mitglied ist und hier definiere ich ihre eigenen Mitglieder. Das heißt, hier kann ich dann auch wieder hingehen und die einzelnen Logins auswählen, die mich da interessieren. Dann taucht diese Rolle hier unten in der Liste auf. Dann wenden wir uns den Rollen in der Datenbank zu. Picken also hier eine Datenbank raus, öffne hier den Ordner Security, Sicherheit und hier wiederum den Ordner Roles, Rollen. Und Sie sehen, hier gibt es sogar zwei Unterordner, einmal Database Roles und einmal Application Roles, zu letzteren kommen wir später noch einmal. Hier in diesem Ordner Database Roles sehen Sie alle vordefinierten Datenbank-Rollen. Können wir zum Beispiel die Eigenschaften mal anschauen, dann sehe ich zum einen, welche Schemata dieser Rolle gehören. Das sind also nicht die Mitglieder, auch wenn es sehr häufig so interpretiert wird, sind definitiv die Schemata, die dieser Rolle gehören. Das hier unten sind die Rollen-Mitglieder, die Role Members. Und hier kann ich auch, wenn ich möchte, weitere User der Datenbank auswählen. Und die tauchen dann ebenfalls hier unten in der Liste auf, und ich kann die auch wieder entfernen, keine Sache. Ich kann eigene Rollen festlegen, gebe der Rolle Namen. Die Rolle soll kein Schema besitzen, das heißt, hier sollte kein Häkchen gesetzt werden. Ich kann hier unten die Mitglieder bestimmen. Und kann hier auf diesen Kartei weiter Securables sagen, worauf diese Rolle Rechte haben soll. Das heißt, ich könnte zum Beispiel hingehen und sagen, ich möchte ein bestimmtes Objekt auswählen. Mich interessieren zum Beispiel Stored procedures und mich interessieren Tabellen. Ich kann dann hier unter Browse hingehen und entsprechend alle Stored Procedures, Sie sehen, das ist eine große Menge von Stored Procedures aus dem System bereits vorhanden, aber ich kann zum Beispiel die Tabellen, die ich angelegt habe, auswählen, die tauchen hier in der Liste auf. Ich kann immer natürlich tippen, aber ich habe mich hier der GUI bedient, dann habe ich die einzelnen Objekte hier und kann deren Rechte hier unten administrieren. Da werden wir später im Zuge der Rechte noch mal darauf zu sprechen kommen. Wichtig ist erst mal, dass Sie hier diese Securables mit Rechten für die Rollen versehen können. Wenn ich auf OK klicke, dann taucht meine Rolle auch hier unten auf. Ich kann eine weitere Rolle anlegen, RolleB und RolleB soll Mitglied RolleA haben. Und ich kann noch mal eine dritte Rolle anlegen, RolleC. RolleC soll Mitglieder haben aus RolleB. Und wenn ich jetzt in RolleC reingehe, sehen Sie, dass er das hier anzeigt. Das ist das, was ich vorhin etwas als unglücklich bezeichnet habe. Zwar ist es möglich, Rollen zu verschachteln, allerdings zeigt die GUI das relativ seltsam an. Das sieht jetzt so aus, als wenn die alle Mitglied der RolleC wären, das ist aber nicht der Fall. Hier der User Bernd gehört nicht direkt zur RolleC, sondern den haben wir hier in RolleA ausgewählt. So, und dann kann ich das Ganze natürlich auch mit T-SQL machen. Öffne dafür die Datei Roles.sql und zeige mal, wie das hier mit dem Scripten aussieht. Ich lege zunächst eine Datenbank an, damit ich ein kleines Spielfeld habe. Es gibt die Funktion IS_MEMBER, die prüft, ob der aktuelle Benutzer Mitglied dieser Rolle ist. Eins bedeutet, er ist Mitglied, eine Null bedeutet, er ist kein Mitglied und Null bedeutet keine Ahnung, was das für eine Rolle ist, ich kenne sie auf jeden Fall nicht. So, dann kann ich hingehen und Logins anlegen. Das geschieht dann auf Server-Ebene. Ich kann dann für diesen Login einen User anlegen. Und der taucht dann in meiner Datenbank auch auf, also ich könnte es hier auch auf Aktualisieren gehen, dann kann ich mir die Datenbank raussuchen, gehe auf Security, auf Users und hier taucht dieser User auch auf. Dann kann ich entsprechend einige Objekte anlegen, damit ich ein bisschen was zum Berechtigen habe. Ich kann dem User Mitglied zu dieser Rolle werden lassen. Auch das geht relativ einfach. Dann kann ich das Script mit dem Sicherheitskontext dieses Users ausführen. Sie sehen, er wechselt hier in den Sicherheitskontext dieses Users. Das ist für Demos einfach immer relativ elegant, wenn man hingeht und das über EXECUTE AS USER gleicht und dann den User angibt. In dem Moment muss ich mich nicht neu anmelden oder Ähnliches. Und ich kann auch hier Datenbank-Rollen anlegen, gleich drei Stück auf einmal und kann gleichzeitig das machen, was ich gerade gemacht habe, das heißt, die einzelnen Rollen ineinander verschachteln. Und ich kann sagen, okay, die db_Owner-Gruppe soll Mitglied RolleA haben, RolleA soll ein Mitglied mit dem Namen RolleB haben, RolleB soll Mitglied Name RolleC haben und RolleC soll ein Mitglied haben, die Jens heißt. Sie sehen hier schon, hier ist nicht zu erkennen, ob es eine Rolle oder ob es ein User ist, das heißt, User und Rollen müssen durchaus eindeutige Namen haben. Und ich kann das Ganze noch mal in einem kleinen Test-Script ausprobieren, indem ich einfach teste, ob ich Mitglied der einzelnen Rolle bin. Und Sie sehen, dieser Jens ist Mitglied von db_Owner, von RolleA, von RolleB, von RolleC und das, obwohl er eigentlich nur direkt in RolleC Mitglied ist. So, dann kann ich über diese Abfrage kommt aus der MSDN im Wesentlichen, abfragen, welche Rolle und welche User vorhanden sind, und eine kleine Übersicht, ist manchmal ganz praktisch, zum Wesentlichen das, was auch das SQL Server Management Studio tut. Dann kann ich Server-Rollen verwenden. Ich gehe dafür einmal in die Master-Datenbank, ich kann gucken, ob ich Mitglied der SysAdmin-Server-Rolle bin hier mit der Funktion IS Server Role Member, also IS_SRVROLEMEMBER. Hat funktioniert. Ich kann eigene Rolle anlegen, ich kann mich Mitglied der neuen Gruppe werden lassen in dieser neuen Rolle und kann das prüfen, ob das funktioniert hat. Das wäre auch kein Ding. Sie sehen also, das geht auch ohne Weiteres mit T-SQL. Im Übrigen der SQL-Server versteht eigentlich auch nur T-SQL, das heißt, alles, was das SQL Server Management Studio tut, ist letztendlich irgendeinen T-SQL-Code zu erzeugen, der gegen den Server geschickt wird und das erreicht, was Sie in der Oberfläche eingestellt haben. So das waren die Demos rund um die Rollen. Sie haben gesehen, welche Möglichkeiten Sie haben, sowohl Server- als auch Datenbank-Rollen anzulegen, wie Sie Mitglieder festlegen können und wie Sie den einzelnen Rollen auch schon das ein oder andere Recht zuweisen können.

SQL Server: Sicherheit für Entwickler

Lernen Sie, wie sich das Thema Sicherheit im Entickleralltag mit Microsofts Datenbankserver umsetzen lässt.

2 Std. 31 min (25 Videos)
Derzeit sind keine Feedbacks vorhanden...
Hersteller:
Exklusiv für Abo-Kunden
Erscheinungsdatum:15.01.2016

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!