MySQL ist ein plattformübergreifendes relationales Open-Source-Datenbankverwaltungssystem. Aufgrund seiner geringen Größe, hohen Geschwindigkeit und niedrigen Gesamtbetriebskosten, insbesondere der Open-Source-Funktion, ist es die wirtschaftlichste und kostengünstigste Datenbank, die wir häufig verwenden Um die praktischsten Ergebnisse zu erzielen, wissen viele Benutzer nicht viel über die Autorisierungsprinzipien in Anwendungen. MySQL ist ein plattformübergreifendes relationales Open-Source-Datenbankverwaltungssystem. Aufgrund seiner geringen Größe, hohen Geschwindigkeit und niedrigen Gesamtbetriebskosten, insbesondere der Open-Source-Funktion, ist es die wirtschaftlichste und kostengünstigste Datenbank, die wir häufig verwenden Um die praktischsten Ergebnisse zu erzielen, wissen viele Benutzer nicht viel über die Autorisierungsprinzipien in Anwendungen.
Server-Neustart-Situation
Wenn mysqld startet, werden alle Inhalte der Grant-Tabelle in den Speicher eingelesen und sind ab diesem Zeitpunkt wirksam.
Bei sofortiger Anwendung durch den Server
Änderungen an der Berechtigungstabelle mittels GRANT, REVOKE oder SET PASSWORD werden vom Server sofort bemerkt.
Direkte Änderung des Autorisierungsformulars
Wenn Sie die Grant-Tabellen manuell ändern (mit INSERT, UPDATE usw.), sollten Sie eine FLUSH PRIVILEGES-Anweisung ausführen oder mysqladmin Flush-Privileges ausführen, um den Server anzuweisen, die Grant-Tabellen neu zu laden. Andernfalls werden Ihre Änderungen erst wirksam, wenn Sie einen Neustart durchführen Der Server.
Auswirkungen auf bestehende Kundenbeziehungen
Wenn der Server feststellt, dass die Berechtigungstabelle geändert wurde, haben bestehende Clientverbindungen folgende Auswirkungen:
·Tabellen- und Spaltenberechtigungen werden bei der nächsten Anfrage des Clients wirksam.
·Änderungen der Datenbankberechtigungen werden mit dem nächsten USE db_name-Befehl wirksam.
·Globale Berechtigungsänderungen und Passwortänderungen werden wirksam, wenn der Client das nächste Mal eine Verbindung herstellt.
Delegationsprinzip
Egal wie vorsichtig Sie sind, Sie werden bei der Autorisierung von Benutzern zwangsläufig Lücken hinterlassen. Ich hoffe, der folgende Inhalt kann Ihnen helfen. Sie sollten sich grundsätzlich an diese Regeln halten.
Nur der Root-Benutzer hat das Recht, die Berechtigungstabelle neu zu schreiben
Gewähren Sie anderen Benutzern außer dem Root-Benutzer nicht das Recht, die Autorisierungstabelle neu zu schreiben (natürlich können Sie zur Erhöhung der Sicherheit einen anderen Benutzer verwenden, um den Root-Benutzer für die Verwaltung zu ersetzen). Aus diesem Grund können Benutzer vorhandene Berechtigungen außer Kraft setzen, indem sie die Berechtigungstabelle überschreiben. Schaffen Sie Sicherheitslücken.
Normalerweise machen Sie diesen Fehler nicht, aber nach der Installation einer neuen Distribution wird die Erstautorisierungstabelle angezeigt. Diese Sicherheitslücke besteht und Sie können Fehler machen, wenn Sie den Inhalt des Autorisierungsformulars zu diesem Zeitpunkt nicht verstehen.
Unter Unix (Linux) müssen Sie nach der Installation von MySQL gemäß den Anweisungen im Handbuch das Skript mysql_install_db ausführen, um die MySQL-Datenbank einschließlich der Autorisierungstabelle und der anfänglichen Berechtigungen einzurichten. Führen Sie unter Windows das Setup-Programm in der Distribution aus, um das Datenverzeichnis und die MySQL-Datenbank zu initialisieren. Es wird davon ausgegangen, dass auch der Server läuft.
Wenn Sie MySQL zum ersten Mal auf Ihrem Computer installieren, werden die Autorisierungstabellen in der MySQL-Datenbank wie folgt initialisiert:
·Sie können sich als Root von localhost aus verbinden, ohne ein Passwort anzugeben. Der Root-Benutzer hat alle Rechte (einschließlich Administratorrechte) und kann alles tun. (Der MySQL-Superuser und der Unix-Superuser haben übrigens denselben Namen und haben nichts miteinander zu tun.)
·Anonymer Zugriff wird Benutzern gewährt, die sich lokal mit der Datenbank „test“ und allen Datenbanknamen, die mit „test_“ beginnen, verbinden können. Anonyme Benutzer können alles mit der Datenbank machen, haben aber keine Administratorrechte.
Im Allgemeinen wird empfohlen, anonyme Benutzerdatensätze zu löschen:
mysql> DELETE FROM user WHERE User="";
Gehen Sie noch einen Schritt weiter und löschen Sie auch alle anonymen Benutzer in anderen Autorisierungstabellen. Die Tabellen mit den Benutzerspalten sind db, tables_priv und columns_priv.
Legen Sie außerdem ein Passwort für den Root-Benutzer fest.
Über Benutzer-, Passwort- und Hosteinstellungen
·Verwenden Sie Passwörter für alle MySQL-Benutzer.
Denken Sie daran: Wenn other_user kein Passwort hat, kann sich jeder wie jeder andere einfach mit mysql -u other_user db_name anmelden. Bei Client/Server-Anwendungen ist es üblich, dass der Client einen beliebigen Benutzernamen angibt. Bevor Sie es ausführen, können Sie die Passwörter für alle Benutzer oder nur das MySQL-Root-Passwort ändern, indem Sie das Skript mysql_install_db wie folgt bearbeiten:
Shell> MySQL -u Root MySQL
mysql> UPDATE user SET Password=PASSWORD('new_password')
-> WHERE user='root';
mysql> FLUSH PRIVILEGES;