DCL

Aus FLBK-Wiki
Zur Navigation springen Zur Suche springen

Einführung

Die Data Control Language (kurz DCL) ist die Datenüberwachungs- und Berechtigungssprache und ein Teilbereich der Structured Query Language (SQL). Sie wird in relationalen Datenbanksystemen verwendet, um Zugriffsrechte, Rollen und Sicherheitsrichtlinien für Datenbankbenutzer zu verwalten (Berechtigungen vergeben oder entziehen).

Abgrenzung und Systemabhängigkeit

Die Implementierung der DCL existiert in unterschiedlichen Datenbanksystemen in verschiedenen Ausprägungen. Es gibt in der Datenbankwelt keine absolut einheitliche Trennung der SQL-Teilsprachen: Einige Datenbank-Hersteller verwenden den isolierten Begriff der DCL nicht und zählen die Berechtigungsbefehle stattdessen mit zur Data Definition Language (DDL) oder zur Systemverwaltung.

Die Kernbefehle der DCL

Die Zugriffssteuerung in SQL basiert primär auf zwei fundamentalen Befehlen: GRANT und REVOKE.

GRANT (Rechte vergeben)

Mit dem Befehl `GRANT` werden einem Datenbankbenutzer oder einer Benutzerrolle spezifische Berechtigungen (Privilegien) für bestimmte Datenbankobjekte (wie Tabellen, Views oder die gesamte Datenbank) erteilt.

Syntax:

GRANT <Privilegien> ON <Datenbankobjekt> TO <Benutzer>;

Beispiel: Einem Benutzer namens mitarbeiter wird das Recht gegeben, Datensätze in der Tabelle `salon` der Datenbank `friseur` zu lesen (`SELECT`) und neue Datensätze hinzuzufügen (`INSERT`).

GRANT SELECT, INSERT ON friseur.salon TO 'mitarbeiter'@'localhost';

REVOKE (Rechte entziehen)

Der Befehl `REVOKE` ist das Gegenstück zu `GRANT` und wird verwendet, um zuvor erteilte Berechtigungen wieder zu entziehen.

Syntax:

REVOKE <Privilegien> ON <Datenbankobjekt> FROM <Benutzer>;

Beispiel: Dem Benutzer mitarbeiter wird das Recht, Datensätze hinzuzufügen, wieder entzogen. Das Leserecht bleibt dabei bestehen.

REVOKE INSERT ON friseur.salon FROM 'mitarbeiter'@'localhost';

Typische Berechtigungen (Privilegien)

Beim Vergeben oder Entziehen von Rechten können verschiedene Abstufungen vorgenommen werden. Zu den gängigsten Privilegien gehören:

Privileg Beschreibung
SELECT Erlaubt das Abfragen/Lesen von Daten (DQL).
INSERT Erlaubt das Einfügen neuer Datensätze (DML).
UPDATE Erlaubt das Ändern bestehender Datensätze (DML).
DELETE Erlaubt das Löschen von Datensätzen (DML).
ALL PRIVILEGES Erteilt alle verfügbaren Rechte für das angegebene Objekt (oft Administratoren vorbehalten).

Herstellerspezifische Umsetzung (MySQL)

Da die genaue Syntax für die Benutzerverwaltung (z. B. das Anlegen von Benutzern mit Passwörtern) stark vom eingesetzten Datenbankmanagementsystem abhängt, weichen die Befehle in der Praxis oft leicht ab. Der exakte Befehlsumfang der DCL für das Produkt MySQL (von Oracle) kann im offiziellen MySQL-Manual nachgeschlagen werden.