Ich nahm eine MySQL-Klasse vor ein paar Jahren, wo der Lehrer uns separate Benutzer mit verschiedenen Berechtigungen auf den Tabellen als letzte Verteidigungslinie gegen Angriffe wie SQL-Injektion erstellen ließ. Die Nutzer würden im Grunde wie folgt erstellt werden:MySQL separate Benutzer für Lesen, Schreiben und Admin
CREATE USER 'read'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT ON * TO 'read'@'localhost';
CREATE USER 'write'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON * TO 'write'@'localhost';
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON * TO 'admin'@'localhost';
Dann basiert, was die Anwendung mit der Datenbank tun würden Sie die Anmeldeinformationen verwenden, die einen ausreichenden Zugang hatte. Ich habe kürzlich versucht, dies zu implementieren und habe versucht zu sehen, was die besten Praktiken dafür sind, aber ich konnte nichts finden.
Gibt es Best Practices dafür? Machen die Leute das wirklich? Ist es mit vorbereiteten und sanierten Aussagen übertrieben?
FYI: Die üblichen Berechtigungen sind 'SELECT, INSERT, UPDATE, DELETE'. – duskwuff
Ich habe DELETE vergessen. Ich habe es hinzugefügt. – AkBKukU