"IDENTIFIED VON 'password'" in MySQL

8

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?

    
user3461823 29.06.2015, 09:12
quelle

4 Antworten

5

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:

%Vor%     
SystemParadox 24.03.2017 11:27
quelle
3

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.

    
Zafar Malik 29.06.2015 09:17
quelle
0

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.

    
Robbie Averill 29.06.2015 20:47
quelle
-1

und was ist, wenn ich dasselbe über Windows habe:

  

mysql & gt; GRANT ALLE PRIVILEGES AUF students_db. * ZU 'students_db_user' @ 'localhost' IDENTEFIED VON 'password';

%Vor%     
Denys Burimov 05.03.2018 10:56
quelle

Tags und Links