In vielen MySQL-Tutorials sehe ich oft, dass Benutzer den Befehl IDENTIFIED BY 'password'
sowohl während der Benutzererstellung verwenden als auch ihm Privilegien gewähren.
Zum Beispiel:
%Vor% Ich habe versucht, GRANT
ohne IDENTIFIED BY
zu verwenden, und es funktioniert.
Kann mir jemand erklären, warum es zweimal benutzt wird? Könnte es ein anderes Passwort für bestimmte Privilegien geben?
GRANT
ist zum Hinzufügen von Berechtigungen für Benutzer gedacht. Verwirrenderweise hat es auch die Fähigkeit, Benutzer zu erstellen und ihre Passwörter zu ändern. Diese Funktionalität ist veraltet und sollte nicht verwendet werden.
Wenn Sie GRANT
mit IDENTIFIED
verwenden, können Sie das Passwort des Benutzers ändern:
Wenn IDENTIFIED vorhanden ist und Sie das globale Grant-Privileg (GRANT OPTION) haben, wird jedes angegebene Passwort zum neuen Passwort für das Konto, auch wenn das Konto existiert und bereits ein Passwort hat. Ohne IDENTIFIED bleibt das Kontopasswort unverändert.
Ab MySQL 5.7.2 ist IDENTIFIED WITH, wenn das Konto bereits existiert, verboten, da es nur für die Erstellung neuer Konten vorgesehen ist.
Außerdem kann GRANT
den Benutzer erstellen, wenn dieser nicht existiert:
Wenn ein in einer GRANT-Anweisung benanntes Konto nicht existiert, hängt die durchgeführte Aktion vom SQL-Modus NO_AUTO_CREATE_USER ab:
- Wenn NO_AUTO_CREATE_USER nicht aktiviert ist, erstellt GRANT das Konto. Dies ist sehr unsicher, es sei denn, Sie geben ein nicht leeres Passwort mit IDENTIFIED BY.
an- Wenn NO_AUTO_CREATE_USER aktiviert ist, schlägt GRANT fehl und erstellt das Konto nicht, es sei denn, Sie geben ein nicht leeres Kennwort mit IDENTIFIED BY an oder benennen ein Authentifizierungs-Plug-in mit IDENTIFIED WITH.
Die Verwendung von GRANT zum Definieren von Kontobestätigungsmerkmalen ist seit MySQL 5.7.6 veraltet. Definieren oder ändern Sie Authentifizierungsmerkmale stattdessen mit CREATE USER oder ALTER USER. Diese GRANT-Funktion wird in einer zukünftigen MySQL-Version entfernt.
Siehe Ссылка
Zusammenfassend verwenden Sie CREATE
, um einen Benutzer zu erstellen, und verwenden Sie GRANT
, um Berechtigungen hinzuzufügen:
Als selbst erstellter Benutzer gewähren, so dass unter Zeile für Rechte reicht -
%Vor%Hinweis: Identifizieren stellt zu Ihrem Passwort dar, welches Passwort Sie für die Überprüfung der Anmeldedaten speichern möchten.
Es ist nur eine zusätzliche Sicherheitsmaßnahme. Sie haben möglicherweise unterschiedliche Kennwörter für denselben Benutzer auf verschiedenen Servern, z. B. in einer freigegebenen Hostumgebung. Wenn es Ihr eigener Server ist und Sie und Ihre Kollegen die einzigen sind, die ihn verwenden, müssen Sie nicht die Benutzer identifizieren, denen Sie Berechtigungen gewähren.
Wenn Sie Benutzer identifizieren, kann nur das von Ihnen angegebene Kennwort für diesen Benutzer verwendet werden.
und was ist, wenn ich dasselbe über Windows habe:
%Vor%mysql & gt; GRANT ALLE PRIVILEGES AUF students_db. * ZU 'students_db_user' @ 'localhost' IDENTEFIED VON 'password';
Tags und Links mysql grant privileges