SQL Grundkurs 1: Die Sprache erlernen

Überblick über die DCL

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Darfst Du denn das? Für den Zugriff auf Daten werden entsprechende Berechtigungen benötigt. Lernen Sie in diesem Video die Basisanweisungen für MS SQL Server, Oracle und MySQL kennen, mit denen Sie Benutzer erstellen, diesem Berechtigungen erteilen und auch wieder entziehen können.

Transkript

In diesem Video möchte ich Ihnen einen Überblick über die DCL, die Data Control Language, geben. Die Data Control Language dient dem Erstellen und Verwalten von Benutzern und Zugriffsberechtigungen. Die Verwaltung der Zugriffsberechtigungen obliegt bei Datenbanksystemen, den DBAs, den Datenbank-Administratoren. Die Möglichkeiten und Varianten, die hierbei von unterschiedlichen Datenbankmanagement-Systemen zur Verfügung gestellt werden, unterschieden sich teilweise gravierend. Daher möchte ich hier nicht im Detail auf die Sicherheits-Features der einzelnen Produkte eingehen, sondern Ihnen lediglich einen Überblick über die Sprache DCL geben. Mit DCL-Anweisungen können Sie Benutzer und Rollen erstellen mit "Create", ändern mit "Alter", und auch wieder löschen mit "Drop". Hierbei möchte ich erwähnen, dass Rollen, also Gruppen, über die indirekt Berechtigungen erteilt werden können, nicht von allen Datenbankmanagement- Systemen unterstützt werden. So müssen Sie zum Beispiel bei MySQL ohne diesen Feature auskommen. Mit der Anweisung "Grant" können Sie Rechte an Objekten vergeben. Das können einerseits Leserechte und Schreibrechte auf Tabellen sein, aber auch Ausführungsberechtigungen, um z.B. neue Tabellen zu erzeugen. Ein einmal erteiltes Recht kann mit der Anweisung "Revoke" wieder entzogen werden. Manche Datenbankmanagement-Systeme unterstützen darüber hinaus noch ein "Deny". Ein "Deny" entspricht einem expliziten Ausschließen von Berechtigungen. Damit können Sie bestimmten Personen ein Recht verwehren, das diese bereits indirekt aufgrund einer Mitgliedschaft andererseits erhalten haben. Damit können Sie ausnahmsweise Berechtigungen, die an Personen indirekt aufgrund von Rollenmitgliedschaft gegeben worden sind, wieder entziehen. Betrachten wir nun die wichtigsten DCL-Anweisungen bei den einzelnen Datenbankmanagement-Systemen. Fangen wir mit MySQL an. Ein wichtiger Hinweis: Um diese Anweisungen ausführen zu können, müssen Sie teilweise als Administrator bzw. mit administrativen Berechtigungen am Datenbanksystem angemeldet sein. Die erste Anweisung, die Sie hier im Script sehen, wird dazu verwendet, um einen Benutzer, einen User, zu erstellen. Mit der Anweisung "Create User identified by" wird ein neuer Benutzer mit dem hier angegebenen Passwort erzeugt. Wichtig ist bei MySQL, dass das Passwort hier unter einfache Hochkomma gesetzt wird. Ich führe diese Anweisung nun aus, um diesen Benutzer zu erstellen. Nun möchte ich diesem Benutzer Berechtigungen erteilen. Wer kann das machen? Das kann jemand mit übergeordneten administrativen Berechtigungen machen, oder der Schema-Eigentümer. Das heißt, die nachfolgende Anweisung könnte ich auch ausführen, wenn ich als Wawi angemeldet bin, als Benutzer Wawi, oder als Benutzer mit Administratorberechtigungen. Mit der Anweisung "Grant Select" wird die Leseberechtigung für diese Tabelle an diesen Benutzer übergeben. Ich führe diese Anweisung aus, das hat funktioniert. Und damit damit darf der Benutzer V2B direkt den kompletten Inhalt dieser einen Tabelle lesen. Ich kann aber mit einer Anweisung auch mehrere Berechtigungen erteilen. Z.B. mit der Anweisung "Grant Insert, Update, Delete on Name der Tabelle to", das bleibt gleich gegenüber der vorherigen Variante, würde ich alle drei Berechtigungen, nämlich einzufügen, zu ändern und zu löschen gemeinsam vergeben. Ich führe diese Anweisung aus. Ich kann Berechtigungen aber auch detaillierter erteilen, z.B. beim Lesen und beim Ändern. Das Select- und Update-Recht kann ich auch auf einige Spalten oder einzelne Spalten limitieren. Dazu muss ich die Spalten hinter dem Recht in runden Klammern angeben. Mit der Anweisung "Grant Select, Update (Ekpreis, Vkpreis, Lief)" würde ich dem Benutzer V2B nun für die Artikel-Tabelle komplett Leseberechtigungen geben, aber er darf nur die drei Spalten "Einkaufspreis", "Verkaufspreis" und "Lieferanten" bearbeiten. Löschen dürfte er damit noch nichts. Um eine Berechtigung wieder zu entziehen, verwende ich die Anweisung "Revoke". "Revoke" ist die Umkehrung von "Grant". Eigentlich ist die komplette Syntax gleich. Sie müssen nur anstelle von "Grant" "Revoke" verwenden und anstelle von "To" "From", weil Sie erteilen etwas an und entziehen etwas von. Das brauchen Sie einfach nur wörtlich übersetzen. Also mit "Revoke" einzelne Rechte, in dem Fall "Insert" und "Delete on Wawi Artikelgruppen from V2B", entziehen Sie diesem Benutzer wieder diese Berechtigungen. Wie kann ein Benutzer selber ein Passwort wieder ändern oder auch ein anderer? Wenn Sie administrative Berechtigungen haben, können Sie die Passwörter natürlich auch für andere Benutzer ändern. Das realisieren Sie bei MySQL mit der Anweisung "Set Password for Name des Benutzers =" und dann die Funktion "Password". Und als Parameter übergeben Sie das neue Passwort, wie auch immer es lauten sollte. Wenn Sie das eigene Passwort ändern wollen, dann müssten Sie einfach nur die Ergänzung "For" und Usernamen weglassen. "Set Password = Password, neues Passwort", damit würden Sie das eigene Passwort ändern. Diese Berechtigung hat jeder Benutzer für sich selber. Um einen Benutzer, der nicht mehr benötig wird, wieder zu löschen, verwenden Sie die Anweisung "Drop User". Damit wäre der Benutzer gelöscht, und damit auch alle Berechtigungen, die er gegebenenfalls noch gehabt hat. Wenn wir nun zu Oracle wechseln, sehen wir, dass es nur sehr geringe Unterschiede gibt. Ein Unterschied ist z.B., dass das Passwort nicht unter Hochkomma, sondern direkt wie eine Objektbezeichnung übergeben wird. Damit kann ich aber ansonsten mit derselben Anweisung "Create User identified by" einen neuen Benutzer erzeugen. Ich habe mich jetzt hier mit Adminstratorberechtigungen auch angemeldet, um diese Anweisungen ausführen zu können. Indem ich diesem Benutzer nun mit der Anweisung "Grant" die Mitgliedschaft in der Rolle "Connect", das ist eine Systemrolle, die es hier standardmäßig gibt, und "Resource" zuteile, bekommt er einerseits die Berechtigung, sich anzumelden. Ohne diesen "Grant Connect" könnte er sich nämlich nicht einmal anmelden. Man könnte zwar die Berechtigung auch separat erteilen, aber typischerweise macht man das indirekt über die Mitgliedschaft in dieser Rolle. "Resource" würde bedeuten, dass dieser Benutzer auch ein Schema hat, und Objekte in diesem Schema erzeugen kann. Die Vergabe von Berechtigungen entspricht von der Syntax her exakt dem was wir bereits unter MySQL gesehen haben. Alle Anweisungen sind hier ident und können mit Copy-Paste übernommen werden. Ich führe sie hier aus. Sie sehen, es funktioniert alles auf die gleiche Art und Weise. Ein bisschen anders schaut die Syntax aus, wenn Sie ein Passwort ändern wollen. Das ändern Sie mit der Anweisung "Alter User", geben den Usernamen an, das kann auch der eigene sein, wenn Sie das eigene Passwort ändern möchten. Denn das ist etwas, das jeder Benutzer kann. Um die Passwörter von anderen zu ändern, müssen Sie administrative Berechtigungen haben. Und hinter "Identified by" geben Sie dann das neue Passwort hier ein. Einen Benutzer löschen Sie auf die gleiche Art und Weise wie wir es bei MySQL gesehen haben, mit der Anweisung "Drop User". Abschließend wenden wir uns noch dem Microsoft-SQL-Server zu. Hier haben wir eine kleine Verschiebung in der Logik. Hier wird nämlich zwischen "Login" und "Benutzer" unterschieden. "Login" finden unter dem deutschen Begriff "Anmeldungen" auf Systemebene, und "Benutzer" oder "User" finden wir auf Datenbankebene. Mittels "Login" können Sie sich auf einem Server anmelden, mittels "User" können Sie in einer Datenbank arbeiten. Nach außen sichtbar ist für den Endanwender nur der Login, der bekommt ein Passwort, und mit dem kann man sich anmelden. Mit der Anweisung "Create Login with Password =" kann ich diesen Benutzer erzeugen. Über den Parameter "Check Policies Of" habe ich hier nur die Kennwortrichtlinie der Domäne deaktiviert, damit ich dieses einfache Passwort hier verwenden kann. Ich erzeuge diesen Login. Wenn ich jetzt hier bei den Anmeldungen aktualisiere, dann sehen wir ihn momentan nicht. Warum? Das hängt damit zusammen, weil ich hierauch noch mit einem normalen Benutzer angemeldet bin. Ich ändere jetzt hier die Verbindung auf einen anderen Benutzer, der administrative Berechtigungen aufweist. Und jetzt scheint dieser Benutzer hier auch auf. Nun wechsle ich zur Datenbank "Wawi Use". "Wawi" ist das selbe, als würde ich hier oben diese Datenbank auswählen. Und hier kann ich mit der Anweisung "Create User" jetzt einen User in dieser Datenbank für den vorher generierten Login erzeugen. Das heißt, da gibt es eine direkte Zuordnung. Der Benutzer muss jetzt nicht noch einmal ein Kennwort eingeben. Und diesem User werden nun die Berechtigungen innerhalb der Datenbank erteilt. Die Anweisungen zum Erteilen von Berechtigungen sind wieder identisch mit dem, was wir bei MySQL und bei Oracle verwendet haben. Diese Anweisungen unterscheiden sich von der Syntax her nicht, und können eins zu eins hierher kopiert und ausgeführt werden. Wie können wir hier das Kennwort ändern? Mit der Anweisung "Alter Login", das Kennwort bezieht sich ja auf das Login und nicht auf den Benutzer, mit der Option "With Password =" und hier ein "Neues Passwort". Damit kann jeder Benutzer auch das eigene Passwort ändern, wenn er seinen eigenen Login-Namen hier eingibt. Sowohl User als auch Login können mit der Anweisung "Drop" auch wieder gelöscht werden. Das realisiere ich jetzt hier noch zum Abschluss. Und damit ist dieser Login, wenn ich hier aktualisiere, auch wieder entfernt. Sie haben in diesem Video also einen Grobüberblick über Anweisungen aus der Data Control Language bekommen. Mit "Create" können Sie User erzeugen. Mit "Grant" können Sie einem User Berechtigungen erteilen, und mit "Revoke" können Sie die Berechtigungen wieder entziehen. Mit der Anweisung "Drop" können Sie Benutzer, die nicht mehr benötigt werden, auch wieder aus dem System entfernen. Berechtigungen können Sie erteilen, wenn Sie entweder administrative Berechtigungen selber besitzen, oder Schema-Eigentümer sind. Sie können die Berechtigungen für die Objekte im eigenen Schema selbstständig vergeben. Dies, sozusagen als Auszug aus dem Thema Security, das an und für sich sehr umfangreich ist, und von Administratoren bei den einzelnen Datenbankmanagement- Systemen sauber implementiert wird.

SQL Grundkurs 1: Die Sprache erlernen

Arbeiten Sie sich in die Grundlagen der Datenbanksprache SQL am Beispiel von Microsoft SQL Server, Oracle und MySQL ein und lassen Sie sich die praktische Nutzung erklären.

14 Std. 40 min (112 Videos)
Derzeit sind keine Feedbacks vorhanden...

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!