Die meisten Webanwendungen müssen nur Daten lesen und schreiben — sie erstellen niemals Tabellen, löschen Indizes oder verwalten gespeicherte Prozeduren. Indem Sie nur SELECT, INSERT, UPDATE und DELETE gewähren, geben Sie Ihrer Anwendung genau die benötigten Berechtigungen und nichts mehr.
Warum Nur-Daten-Berechtigungen Ideal für Anwendungen Sind
Eine Standard-Webanwendung führt vier Datenoperationen aus:
- SELECT — Zeilen aus Tabellen lesen (Seiten laden, Datensätze abrufen).
- INSERT — Neue Zeilen hinzufügen (Benutzerregistrierungen, Formulareinreichungen).
- UPDATE — Vorhandene Zeilen ändern (Profile bearbeiten, Einstellungen aktualisieren).
- DELETE — Zeilen entfernen (Beiträge löschen, Sitzungen bereinigen).
Diese vier Berechtigungen decken praktisch jede Abfrage ab, die ein CMS, eine E-Commerce-Plattform oder eine benutzerdefinierte Webanwendung jemals ausführen wird. Zusätzliche Struktur- oder Administrationsberechtigungen zu gewähren, erzeugt unnötiges Risiko.
Methode 1: Bei der Benutzererstellung
- Melden Sie sich unter mysql.nobregas.org an.
- Gehen Sie zu Database Users > klicken Sie auf Create User.
- Geben Sie Benutzername, Passwort und Host ein.
- Wählen Sie die Ziel-Datenbank im Dropdown Grant to Database aus.
- Der Privileges-Bereich erscheint mit ALL PRIVILEGES aktiviert.
- Deaktivieren Sie ALL PRIVILEGES, um einzelne Checkboxen sichtbar zu machen.
- Unter Data aktivieren Sie: SELECT, INSERT, UPDATE, DELETE.
- Lassen Sie alle Structure- und Administration-Checkboxen deaktiviert.
- Klicken Sie auf Create User.
Methode 2: Über Manage (Vorhandener Benutzer)
- Gehen Sie zu Database Users und klicken Sie beim Benutzer auf Manage.
- Wählen Sie im Bereich Add Database Access die Datenbank aus.
- Deaktivieren Sie ALL PRIVILEGES.
- Aktivieren Sie nur SELECT, INSERT, UPDATE, DELETE.
- Klicken Sie auf Add Grant.
Methode 3: Eine Vorhandene Berechtigung Herabstufen
Wenn ein Benutzer derzeit ALL PRIVILEGES hat und Sie auf Nur-Daten einschränken möchten:
- Klicken Sie beim Benutzer auf Manage.
- Finden Sie die Datenbank unter Current Grants und klicken Sie auf Edit.
- Deaktivieren Sie ALL PRIVILEGES.
- Aktivieren Sie nur SELECT, INSERT, UPDATE, DELETE.
- Klicken Sie auf Save Changes.
Was Dieser Benutzer Tun Kann
| Operation | Beispielabfrage | Erlaubt? |
|---|---|---|
| Daten lesen | SELECT * FROM users |
Ja |
| Zeilen hinzufügen | INSERT INTO orders (...) |
Ja |
| Zeilen bearbeiten | UPDATE products SET price = 9.99 |
Ja |
| Zeilen entfernen | DELETE FROM sessions WHERE expired = 1 |
Ja |
| Tabelle erstellen | CREATE TABLE logs (...) |
Nein |
| Tabelle löschen | DROP TABLE users |
Nein |
| Struktur ändern | ALTER TABLE users ADD COLUMN age INT |
Nein |
Wann Diese Konfiguration Verwenden
- WordPress, Joomla, Laravel, Django — Diese Frameworks benötigen nach der Ersteinrichtung nur CRUD-Operationen.
- E-Commerce-Shops — WooCommerce, PrestaShop und ähnliche Plattformen.
- Benutzerdefinierte APIs — REST- oder GraphQL-Backends, die Daten lesen und schreiben.
- Shared-Hosting-Umgebungen — Begrenzen Sie den Schadenradius, falls Zugangsdaten durchsickern.
Sicherheitsvorteil
Wenn ein Angreifer Zugriff auf einen Nur-Daten-Benutzer erhält, kann er nicht:
- Ihre Tabellen droppen oder leeren.
- Ihre Tabellenstruktur ändern.
- Trigger oder gespeicherte Prozeduren erstellen.
- Irreversiblen strukturellen Schaden verursachen.
Ihre Daten können zwar gefährdet sein, aber Ihr Datenbankschema bleibt intakt — was die Wiederherstellung erheblich erleichtert.