Ein charakteristisches Merkmal von MySQL ist seine eigene Sicherheit, die auf externen Schutz angewiesen ist. Als modernes, voll funktionsfähiges und effizientes Datenbankverw altungssystem verfügt MySQL über eigene Tools zur Verw altung von Benutzern und deren Zugriff auf die von ihm kontrollierten Ressourcen.
Wenn Sie den richtigen Benutzernamen und das richtige Passwort nicht kennen, ist der Zugriff auf die Datenbank über MySQL sehr schwierig.
Im normalen Hosting-Modus ist dies ausreichend. Unvorhergesehene Situationen, Hackerangriffe und andere Probleme sind Sache externer Systemadministration und Sicherheitsdienste. Dieses Konzept ist traditionell geworden und wird praktisch nicht diskutiert.
MySQL-Server und Benutzer root installieren
In welcher Betriebsumgebung auch immer das Datenbankverw altungssystem installiert ist, es hat immer mindestens einen Benutzer: root. Installieren Sie MySQL, erstellen Sie einen Benutzer mit allen Root-Rechten - ohne dies, arbeiten Sie mitServer ist nicht möglich. Die Rechte dieses Benutzers reichen aus, um:
- neue Benutzer erstellen und verw alten;
- Datenbanken erstellen und verw alten.
Es ist grundsätzlich möglich, dass "passwortlose" Benutzer in MySQL existieren, aber das ist nicht akzeptabel.
Allgemeine Praxis:
- Server auf eigenem Rechner installiert, auf dem Hosting installiert werden kann (lokale Option);
- Server ist öffentlich im Internet gehostet.
Im ersten Fall ist es möglich, mit dem Server von der Kommandozeile aus zu arbeiten und phpMyAdmin zu verwenden, im zweiten Fall nur phpMyAdmin oder ein ähnliches Tool, aber die Kommandozeile kann über einen Remote-SSH-Zugriff erreicht werden.
Eigene Verw altungstools
Das Gefühl der Verwandtschaft mit der Unixoid-Familie und mit der Vergangenheit von Apache-Servern ist ein Markenzeichen von MySQL: create user ist eine Befehlszeile mit seltsamer Syntax. Für Profis, die mit Linux und ähnlichen Systemen arbeiten, ist dies so vertraut, wie es in den Augen von Windows-Benutzern, die noch nie „das wirkliche Leben betreten haben“, wild aussieht.
Das Erstellen eines Benutzers beginnt mit dem Starten der Server-Befehlszeile. In einer Windows-Umgebung geschieht dies wie folgt.
Zuerst (1) müssen Sie die Befehlszeile als Administrator ausführen, dann zu dem Ordner gehen, in dem sich MySQL befindet (2), dannServer selbst starten (3):
mysql -u… -p
hier sind "-u…" und "-p" Schlüssel, die auf den Namen "…"=root (oder anderen Namen) und sein Passwort zeigen. Grundsätzlich darf ein Benutzer nicht root sein, aber einer, der "root" (administrative) Rechte hat.
Wichtig: der Server läuft eigentlich immer, hier ist mysql -u… -p der Befehl um auf den Server zuzugreifen, nicht ihn zu starten.
In einer Linux-Umgebung und ähnlichen Systemen ist ein solcher Befehl eine "native" Aktion und wird in der Regel durch einfaches Starten von mysqld an der richtigen Stelle (im richtigen Pfad) bestimmt, dies sollte überprüft werden der Administrator. Hier gibt es meist einen anderen Namen: nicht mysql, sondern mysqld. Auch hier steht diese Aktion nicht immer allen Benutzern (des Betriebssystems, nicht des MySQL-Servers) zur Verfügung. Im Gegensatz zu Windows sind Ordnung und Sicherheit bei Linuxoiden ein natürliches und nicht verhandelbares Erfordernis, mit dem stets zivilisiert umgegangen wird.
In jedem Fall wird mysql dies nach dem Start mit einem Prompt (4) ankündigen:
mysql>
und es wird möglich sein, sowohl mit Benutzern als auch mit Datenbanken zu arbeiten.
Hinweis. Bei der Installation in einer Windows-Umgebung kann alles: Apache, MySQL, PHP, phpMyAdmin auf Standardpfade gesetzt werden, aber es wird empfohlen, kompaktere und näher gelegene Speicherorte für diese wichtigen Tools zu verwenden:
- c:\SCiA\Apache;
- c:\SCiA\PHP;
- c:\SCiA\MySQL;
- …
- c:\SCiB\localhost\www\phpMyAdmin;
- c:\SCiB\site1\www;
- c:\SCiB\site2\www;
- …
- c:\SCiB\siteN\www\.
Diese Logik vereinfacht nicht nur die Verw altung, sondern erweitert auch die Möglichkeiten des Entwicklers, zwischen Produktversionen zu wechseln und deren Funktionalität zu verw alten.
Arbeiten an der MySQL-Befehlszeile
Sobald der Server geantwortet und seine Befehlszeile bereitgestellt hat, können Benutzer erstellt und Berechtigungen zugewiesen werden.
In diesem Beispiel hat der create user-Befehl den Benutzer Petrov mit dem Passwort 123DFG erstellt. Wenn bei der Eingabe eines Befehls ein Fehler gemacht wird, bietet der Server an, ihn zu korrigieren, aber es ist besser, niemals Fehler zu machen, wenn Sie auf der Befehlszeile arbeiten!
Der folgende Befehl grant allprivilegien gibt allen Rechten für alles. Der Flush-Befehl kann weggelassen werden, aber er 'öffnet' den Befehlspuffer, d. h. er korrigiert ihre Ausführung.
MySQL: Erstellen Sie einen Benutzer und vergeben Sie Rechte für die Datenbank
Im Beispiel verwendeter Befehl:
GEWÄHREN SIE ALLE PRIVILEGIEN AUF. AN 'Petrov'@'localhost';
gewährt Benutzer Petrov tatsächlich Zugriff auf alle Datenbanken (erstes Sternchen) auf alle Tabellen (zweites Sternchen).
Als allgemeine MySQL-Regel lautet das Erstellen eines Benutzers:
GRANT [Berechtigungstyp] ON [Datenbankname].[Tabellenname] TO '[Benutzer]'@'localhost';
Folgende Berechtigungen sind erlaubt:
- ALLE PRIVILEGES - alle Rechte.
- CREATE - das Recht, neue Tabellen/Datenbanken zu erstellen.
- DROP - das Recht, Tabellen/Datenbanken zu löschen.
- DELETE - das Recht, Informationen in Tabellen zu löschen.
- INSERT - das Recht Informationen in Tabellen zu schreiben.
- SELECT - das Recht, Informationen aus Tabellen zu lesen.
- UPDATE - das Recht, Informationen in Tabellen zu aktualisieren.
- GRANT OPTION - das Recht, mit den Privilegien anderer Benutzer zu arbeiten.
Aus praktischer Sicht impliziert "Benutzer erstellen" in MySQL drei Optionen für Rechte:
- alle Rechte an allen Datenbanken und allen Benutzern;
- lesen und schreiben;
- schreibgeschützt.
Andere Möglichkeiten der Rechtevergabe werden selten benötigt. Im Linux-Umfeld gibt es viel mehr Gründe für "rechtliche" Freiheit (und Notwendigkeit), aber es gibt dort viel mehr Möglichkeiten als in Windows.
Die umgekehrte Operation von MySQL "Benutzer erstellen" ist drop.
Benutzer 'Petrov'@'localhost'; löschen
Nach Ausführung dieses Befehls ist Petrov kein Benutzer mehr und seine Privilegien gehen verloren. Um die Berechtigungen zu ändern, verwenden Sie den Befehl:
REVOKE [Privileg] ON [DB].[Table] TO '[user]'@'localhost';
Die übliche Aktion in MySQL besteht darin, einen Benutzer zu erstellen oder ihn zu löschen, aber das Ändern von Berechtigungen ist auch eine gültige Operation (selten angefordert).
Verwendung von phpMyAdmin
Es gibt viele Implementierungen dieses wunderbaren Tools. Je nach verwendeter Apache-, PHP- und MySQL-Version dauert es oft lange, die richtige Version dieses Produkts zu finden, aber sobald phpMyAdmin erfolgreich installiert ist, hat der Benutzer viele praktische Funktionen und eine komfortableSchnittstelle.
Mit phpMyAdmin können Sie MySQL anweisen, einen Benutzer für jeden Host zu erstellen und vorhandene Benutzer auf fast chirurgische Weise zu verw alten.
phpMyAdmin ist nicht das einzige Tool mit einer komfortablen, intuitiven und funktionsreichen Oberfläche, aber es ist das beliebteste Tool zur Verw altung von MySQL-Servern.
Über die Befehlszeile und Sicherheit
Natürlich ist die Verwendung der MySQL-Befehlszeile eine unattraktive Übung, aber es sollte bedacht werden, dass in einigen Fällen nur die Server-Befehlszeile die Datenbank oder den Benutzer speichern, den Import oder Export von Informationen sicherstellen kann.
Softwareversionen entwickeln sich so schnell, dass Entwickler einfach keine Zeit haben, die Funktionen von beispielsweise PHP und MySQL, MySQL und phpMyAdmin zu kombinieren. Wenn etwas passiert, rettet die Befehlszeile immer den Tag.
Man sollte auch nie vergessen: Bei der MySQL-Administration geht es nur um den Zugriff auf seine Datenbanken und durch seine Funktionalität. Auf die Datenbankdateien kann außerhalb von MySQL zugegriffen werden. Die externe Sicherung von MySQL und den von ihm kontrollierten Ressourcen ist eine echte und wichtige Notwendigkeit.