2.1 Datenbanken und Benutzer verwalten
Administration beginnt mit einer sicheren Verbindung, einem passenden Zeichensatz und dem Prinzip der minimal notwendigen Rechte. Datenbankkonten sind nicht automatisch identisch mit Konten des Betriebssystems oder der Anwendung.
Datenbanken anlegen und auswählen
Zeichensatz und Kollation bestimmen, welche Zeichen gespeichert und wie Texte verglichen und sortiert werden. Eine Datenbank sollte nur mit gesicherter Zuständigkeit gelöscht werden: DROP DATABASE entfernt alle enthaltenen Objekte und Daten.
MariaDB/MySQL
CREATE DATABASE lager
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
USE lager;Konten und Herkunft
In MariaDB und MySQL besteht ein Konto aus Benutzername und Hostanteil. app_lager@localhost und app_lager@10.20.% sind daher unterschiedliche Konten. Platzhalter vergrößern die Angriffsfläche; Herkunft so eng wie praktisch möglich festlegen.
Passwörter gehören nicht in Quellcode oder frei lesbare Skripte. Produktiv werden Secrets über eine geeignete Geheimnisverwaltung bereitgestellt.
Konto erstellen
CREATE USER IF NOT EXISTS 'app_lager'@'10.20.%'
IDENTIFIED BY 'ein-starkes-geheimes-passwort';
ALTER USER 'app_lager'@'10.20.%' IDENTIFIED BY 'neues-geheimnis';Rechte nach dem Least-Privilege-Prinzip
Anwendungen erhalten nur die Rechte, die ihr konkreter Zweck benötigt. ALL PRIVILEGES und administrative Rechte sind für Anwendungskonten meist ungeeignet. Nach CREATE USER, GRANT oder REVOKE ist in aktuellen MariaDB-/MySQL-Versionen normalerweise kein FLUSH PRIVILEGES erforderlich; dieser Befehl ist vor allem nach direkter Änderung interner Grant-Tabellen relevant, die vermieden werden sollte.
Gezielt berechtigen
GRANT SELECT, INSERT, UPDATE ON lager.*
TO 'app_lager'@'10.20.%';
SHOW GRANTS FOR 'app_lager'@'10.20.%';
REVOKE UPDATE ON lager.*
FROM 'app_lager'@'10.20.%';Quellen zur fachlichen Prüfung
PDF-Download nach Anmeldung
Zum Schutz der Unterrichtsunterlagen steht der PDF-Download ausschließlich angemeldeten Nutzern zur Verfügung.
