Fachkonzept - Benutzerverwaltung

Benutzer einer Datenbank

Zentrales Konzept für den Schutz von Daten in einer Datenbank ist der (Datenbank-)Benutzer. Für diesen können Rechte innerhalb des Datenbanksystems vergeben werden.

Als besonders ausgezeichneter Benutzer besitzt der Administrator (meist mit dem Namen root) in der Regel alle Rechte auf dem Datenbanksystem. Insbesondere kann dieser Benutzer weitere Benutzer anlegen und ihnen Rechte vergeben.

Rechtevergabe

Aktionen auf einer Datenbank können nur durch einen angemeldeten Benutzer ausgeführt werden.

Rechte (engl.: privileges) können auf unterschiedlichen Ebenen vergeben werden. Der Zugriff auf ganze Datenbanken, einzelne Tabellen bis hin zu einzelnen Attributen kann eingeschränkt werden.
Wesentliche Rechte auf den Daten sind das Recht zum Lesen von Daten (SELECT), Einfügen/Ändern von Daten (INSERT/UPDATE) und das Löschen von Daten (DELETE).

Auch andere Rechte auf einem Datenbanksystem (z.B. für das Anlegen neuer Datenbanken, dem Anlegen neuer Benutzer, etc.) können vergeben werden. Dies wird hier nicht weiter behandelt.

Erweitern von SQL

SQL bietet neben den schon bekannten Anweisungen zum Auslesen von Daten (DML - Data Manipulation Language) auch Befehle, um die Benutzer und ihre Rechte zu verwalten (sog. DDL - Data Definition Language und DCL - Data Control Language).

Bereiche von SQL

So kann mit den folgenden Befehlen ein neuer Benutzer mit Passwort gesetzt werden. MySQL (und MariaDB) unterscheiden dabei zwischen Benutzern, die vom gleichen Rechner (localhost) oder von anderen Rechnern (%) zugreifen; die beiden folgenden Anweisungen erzeugen also zwei unterschiedliche Benutzer:

CREATE USER meinneuerbenutzer@localhost IDENTIFIED BY 'pwd'
# oder für externe Benutzer
CREATE USER 'meinneuerbenutzer'@'%' IDENTIFIED BY 'pwd'

Die Rechtevergabe erfolgt ebenfalls über SQL-Anweisungen (DCL). Dabei können auf unterschiedlicher Ebene Rechte vergeben werden:

GRANT SELECT ON terra.* TO webterra@localhost 
# oder alle Rechte nur für die Tabelle land in terra
GRANT SELECT, INSERT, UPDATE, DELETE ON terra.land TO webterra@localhost 
# oder Leserecht nur für zwei Attribute der Kontinent-Tabelle
GRANT SELECT (KNR,Name) ON terra.kontinent TO webterra@localhost 

Das Entziehen von Rechten erfolgt analog mit dem REVOKE-Befehl:

REVOKE SELECT ON terra.* FROM webterra@localhost 
# alle Rechte an der Tabelle land in terra entziehen
REVOKE ALL ON terra.land FROM webterra@localhost 
X

Fehler melden

X

Suche