Ziel dieser Seite Ein praxisnaher Überblick für Mediamatik-Lernende: Was bedeutet Datenschutz konkret bei MySQL? Was ist in der Schweiz (DSG) sowie im EU-Kontext (DSGVO) zu beachten? Welche technischen & organisatorischen Massnahmen (TOM) sind sinnvoll?
Hinweis (keine Rechtsberatung): Diese Unterlage dient der Sensibilisierung und Praxisorientierung im Unterricht. Für verbindliche Auskünfte bitte interne Richtlinien/Datenschutzbeauftragte/Jurist:innen konsultieren.
Merke: Recht klärt das «Was & Warum», Technik (MySQL/Architektur) liefert das «Wie» (Sicherheit, Zugriffskontrolle, Logs, Backups).
| Kategorie | Beispiele | Schutz-Niveau |
|---|---|---|
| PII (Personendaten) | Name, E-Mail, IP, Benutzername | Mittel–hoch |
| Besonders schützenswerte Daten | Gesundheit, Religion, politische Meinung | Hoch |
| Geschäftsgeheimnisse | Preise intern, Prototypen | Mittel–hoch |
| Betriebsdaten | Log- & Metrikdaten (können PII enthalten) | Abhängig vom Inhalt |
root). user'@'localhost statt %). -- Beispiel: minimaler App-User (nur SELECT/INSERT auf produktivem Schema) CREATE USER 'app_ro'@'localhost' IDENTIFIED BY 'Str0ng!Pass'; GRANT SELECT ON prod_db.* TO 'app_ro'@'localhost';
-- Passwortrichtlinie (Beispiel; Anpassung je nach Policy) INSTALL COMPONENT 'file://component_validate_password'; SET PERSIST validate_password.length = 12; -- Ablauf/Lock pro Benutzer ALTER USER 'app_rw'@'localhost' PASSWORD EXPIRE INTERVAL 180 DAY; ALTER USER 'app_rw'@'localhost' FAILED_LOGIN_ATTEMPTS 6 PASSWORD_LOCK_TIME 2;
Transport erzwingen (Server)
# my.cnf (Beispiel) require_secure_transport = ON ssl_cert = /etc/mysql/ssl/server-cert.pem ssl_key = /etc/mysql/ssl/server-key.pem ssl_ca = /etc/mysql/ssl/ca.pem
At-Rest (InnoDB)
# my.cnf early-plugin-load = keyring_file.so keyring_file_data = /var/lib/mysql-keyring/keyring innodb_encrypt_tables = ON innodb_encrypt_log = ON
-- Schlüsselrotation ALTER INSTANCE ROTATE INNODB MASTER KEY;
mysqldump | gpg). # Beispiel: verschlüsseltes Dump mysqldump --single-transaction --routines prod_db \ | gpg --symmetric --cipher-algo AES256 \ > prod_db-$(date +%F).sql.gpg
-- Beispiel: Sicht mit maskierter E-Mail CREATE OR REPLACE VIEW v_users_masked AS SELECT user_id, display_name, CONCAT(LEFT(email,2),'***@',SUBSTRING_INDEX(email,'@',-1)) AS email_masked FROM users; -- Pseudonymisierung (one-way Hash) UPDATE users SET email = SHA2(email,256) WHERE /* in Dev/Copy */ 1=1;
require_secure_transport)?
- [ ] At-Rest-Verschlüsselung (InnoDB + Keyring)?
- [ ] Passwortrichtlinie & Rotation aktiv (validate_password, PASSWORD EXPIRE)?
- [ ] Backups verschlüsseln, Restore getestet, Retention definiert?
- [ ] Logs/Audit: nur notwendige Daten, Zugriff limitiert, Löschfristen?
- [ ] Anonymisierte Testdaten statt produktiver PII in Dev/Schulung?
- [ ] WP-Härtung (Updates, SALTS, kein root, HTTPS, 2FA)?
- [ ] Prozesse für Auskunft/Löschung/Breach vorhanden & dokumentiert?
===== 8) Glossar (kurz) =====
^ Begriff ^ Erklärung ^
| PII | *Personally Identifiable Information* – Personendaten (z. B. Name, E-Mail, IP). |
| TOM | Technische & organisatorische Massnahmen (Sicherheitsmassnahmen). |
| At Rest / In Transit | Daten im Speicher / während der Übertragung. |
| Least Privilege | Nur minimal notwendige Rechte vergeben. |
| AVV/SCC** | Auftragsverarbeitungsvertrag / Standardvertragsklauseln (EU). |