Da Meister Wolf nirgends geschrieben hat, dass er ISPC überhaupt einsetzt wäre das Anlegen der DB unter phpMyAdmin eigentlich in Ordnung. Sollte er es einsetzen, wäre das natürlich fatal, denn am System vorbei Änderungen machen ist wenig sinnvoll wenn nicht gar sinnbefreit.
Nichts desto trotz scheint mir hier Neuling auf Unwissen zu treffen wenn es um Datenbanken geht, wenn ich die bisherigen Zeilen über Rechte lese.
Richtig ist wie Till schon schrieb, dass der Zugriff auf die Datenbank mit dem DB-User geschieht, der in der Datenbank anzulegen ist (ich lese viel zu oft hier etwas von Benutzer für Domain angelegt, Systembenutzer haben mit Datenbankbenutzern aber nichts zu tun. Obacht hier beim Neuland Datenbanken).
Desweiteren wird gerne mal beim Anlegen viel zu viel Rechte an den User der Datenbank vergeben, die dieser im Leben niemals braucht (und was potentiell gefährlich und ein Sicherheitsverstoß sein kann). Darum - wenn schon phpMyAdmin eingesetzt wird (und KEIN ISPC installiert ist! Sonst dort unbedingt anlegen und nicht direkt im System!) - den Benutzer am Besten zusammen mit der Datenbank anlegen lassen. Dafür hat phpmyadmin einen extra Punkt beim Erstellen eines Benutzers:
Rechte / Neuer Benutzer hinzufügen / Datenbank für Benutzer: Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte.
Gut, wenn die Datenbank nicht den gleichen Namen haben soll - sehr verständlich - sollte man folgendes beherzigen:
- DB User bekommen nur Zugriff auf ihre Datenbank (ihr DB-Schema)
- Globale Rechte sind meist unnötig!
- Wenn auf einer lokalen DB gearbeitet wird (DB wird mit localhost angesprochen), KEINEN Zugriff auf '%' gewähren (% ist in MySQL der Platzhalter für *, also alle. Damit könnte - sofern Benutezrname/Passwort bekannt und keine Firewall vorhanden, jemand aus dem Internet direkt auf die Datenbank verbinden und darin herumwüten)
Am Besten also den User (wenn schon manuell) so anlegen:
Code:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'passwort';
GRANT USAGE ON * . * TO 'username'@'localhost' IDENTIFIED BY 'passwort' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
GRANT ALL PRIVILEGES ON `datenbank` . * TO 'username'@'localhost';
Natürlich müssen "datenbank", "username" und "passwort" ersetzt werden. Danach sollte der User nur 2 Schemas in phpMyAdmin sehen: das "information_schema" (readonly) und sein eigenes (datenbank).
Ich hoffe ich konnte weiterhelfen
Grüßend