MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen und Beispiele zum Knacken des Root-Passworts

MySQL-Benutzer und -Berechtigungen

In MySQL gibt es eine Datenbank namens MySQL, die mit dem System geliefert wird. Nach der Installation der Datenbank verfügt das System über mehrere Datenbanken, und MySQL ist eine davon. Die MySQL-Datenbank verfügt über eine Tabelle mit den Berechtigungen für Benutzerkontos, die als Benutzertabelle bezeichnet wird und die erstellten Benutzer enthält.

Der vollständige Benutzername in MySQL wird aus Benutzer + Hostname gebildet. Der Hostname bestimmt, auf welchem ​​Host sich der Benutzer anmelden kann.

1. Benutzererstellung und Passwortänderung

1. Benutzererstellung

Erstellen Sie den Benutzer „BENUTZERNAME“@„HOST“, identifiziert durch „PASSWORT“.

BENUTZERNAME: Benutzername
HOST: Hostadresse
PASSWORT: Passwort

Beispiel:

MariaDB [(keine)]> Benutzer [email protected] erstellen, identifiziert durch „centos“;
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+--------+-------------------------------------+------------------------------------------+
| Benutzer | Host | Passwort |
+--------+-------------------------------------+------------------------------------------+
| root | lokaler Host | |
| Stammverzeichnis | localhost.localdomain | |
| Wurzel | 127.0.0.1 | |
| Wurzel | ::1 | |
| | lokaler Host | |
| | lokaler Host.lokale Domäne | |
| masuri | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED |
+--------+-------------------------------------+------------------------------------------+
7 Zeilen im Satz (0,00 Sek.)

Es gibt anonyme Konten in MySQL, die durch Ausführen des Sicherheitshärtungsskripts mysql_secure_installation oder manuell gelöscht werden können.

So löschen Sie einen Benutzer:

DROP USER 'BENUTZERNAME'@'HOST';

Beispiel:

MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+--------+-------------------------------------+------------------------------------------+
| Benutzer | Host | Passwort |
+--------+-------------------------------------+------------------------------------------+
| root | lokaler Host | |
| Stammverzeichnis | localhost.localdomain | |
| Wurzel | 127.0.0.1 | |
| Wurzel | ::1 | |
| | lokaler Host | |
| | lokaler Host.lokale Domäne | |
| masuri | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED |
+--------+-------------------------------------+------------------------------------------+
7 Zeilen im Satz (0,00 Sek.)

MariaDB [(keine)]> DROP USER ''@'localhost';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> DROP USER ''@'localhost.localdomain';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+--------+-------------------------------------+------------------------------------------+
| Benutzer | Host | Passwort |
+--------+-------------------------------------+------------------------------------------+
| root | lokaler Host | |
| Stammverzeichnis | localhost.localdomain | |
| Wurzel | 127.0.0.1 | |
| Wurzel | ::1 | |
| masuri | 192.168.73.133 | *128977E278358FF80A246B5046F51043A2B1FCED |
+--------+-------------------------------------+------------------------------------------+
5 Zeilen im Satz (0,00 Sek.)

2. Passwort ändern

Ändern des MySQL-Passworts

PASSWORT FESTLEGEN FÜR Benutzer = PASSWORT('Klartext-Passwort')
UPDATE-Tabelle SET-Passwort = Passwort('Klartext-Passwort')

Beispiel:

Ändern Sie das Passwort für den Masuri-Benutzer

MariaDB [(keine)]> PASSWORT FESTLEGEN FÜR [email protected] = PASSWORT ('magedu');
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+--------+-------------------------------------+-------------------------------------------+
| Benutzer | Host | Passwort |
+--------+-------------------------------------+------------------------------------------+
| root | lokaler Host | |
| Stammverzeichnis | localhost.localdomain | |
| Wurzel | 127.0.0.1 | |
| Wurzel | ::1 | |
| masuri | 192.168.73.133 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 |
+--------+-------------------------------------+------------------------------------------+
#Das Passwort wurde zu diesem Zeitpunkt geändert

Das Root-Kontokennwort ist leer. Legen Sie ein Kennwort für das Root-Kennwort fest. Da es zu mühsam ist, es einzeln festzulegen, können Sie das Kennwort auch mit der Operation „Tabelle ändern“ ändern.

MariaDB [(keine)]> mysql.user aktualisieren, Passwort=Passwort('centos') festlegen, wobei Benutzer='root';
Abfrage OK, 4 Zeilen betroffen (0,01 Sek.)
Übereinstimmende Zeilen: 4 Geändert: 4 Warnungen: 0

MariaDB [(keine)]> wähle Benutzer, Host, Passwort aus mysql.user;
+--------+-------------------------------------+------------------------------------------+
| Benutzer | Host | Passwort |
+--------+-------------------------------------+------------------------------------------+
| root | lokaler Host | *128977E278358FF80A246B5046F51043A2B1FCED |
| Stamm | localhost.localdomain | *128977E278358FF80A246B5046F51043A2B1FCED |
| root | 127.0.0.1 | *128977E278358FF80A246B5046F51043A2B1FCED |
| Wurzel | ::1 | *128977E278358FF80A246B5046F51043A2B1FCED |
| masuri | 192.168.73.133 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 |
+--------+-------------------------------------+------------------------------------------+
5 Zeilen im Satz (0,00 Sek.)

Zu diesem Zeitpunkt wurde das Passwort geändert, aber Sie können sich immer noch nicht anmelden. Sie müssen die Berechtigungen aktualisieren

MariaDB [(keine)]> FLUSH-PRIVILEGIEN;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

2. MySQL-Berechtigungsverwaltung

Die Berechtigungsverwaltung umfasst mehrere Berechtigungskategorien, z. B. Verwaltungs-, Programm-, Datenbankebene, Tabellenebene und Feldebene.

Verwaltung: ob Benutzer erstellt werden können, ob die Datenbankliste angezeigt werden kann, ob die Konfigurationsdatei neu geladen werden kann, ob die Datenbank geschlossen werden kann, ob Funktionen im Zusammenhang mit der Replikation ausgeführt werden können, ob Prozesse verwaltet werden können, ob temporäre Tabellen erstellt werden können und ob Dateien in der Datenbank erstellt werden können.

Programme umfassen hauptsächlich drei Programmtypen: Funktionen, gespeicherte Prozeduren und Trigger. Sie können diese Programme beispielsweise erstellen, ändern, löschen und ausführen. Sie können Berechtigungen auch auf Bibliotheks-, Tabellen- und Feldebene verwenden: Sie können beispielsweise Vorgänge in Bibliotheken, Tabellen und Feldern hinzufügen, löschen, abfragen und ändern.

1. Autorisierung GRANT

Wenn Sie einen Benutzer autorisieren und dieser noch nicht existiert, können Sie ihn erstellen. Vor der Autorisierung müssen Sie zunächst bestätigen, dass Sie ein Administrator mit Autorisierungsberechtigung sind.

GEWÄHREN 
 priv_type [(Spaltenliste)]
  [, priv_type [(Spaltenliste)]] …
 ON [Objekttyp] Privilegebene
 TO Benutzerspezifikation [, Benutzerspezifikation] ...
 [ERFORDERLICH {KEINE | ssl_option [[UND] ssl_option] ...}]
 [MIT mit_Option ...]

Beispiel:

Erstellen Sie einen WordPress-Benutzer und autorisieren Sie ihn.

MariaDB [(keine)]> DATENBANK ERSTELLEN wordpress;
Abfrage OK, 1 Zeile betroffen (0,02 Sek.)

MariaDB [(keine)]> GRANT ALL ON wordpress.* TO wpuser@'192.168.73.%' identifiziert durch 'mylinuxops';
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

2. Überprüfen Sie die Berechtigungen des Benutzers

MariaDB [(keine)]> Berechtigungen für wpuser@'192.168.73.%' anzeigen;
+----------------------------------------------------------------------------------------------------------------------------------+
| Zuschüsse für [email protected].% |
+----------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* AN 'wpuser'@'192.168.73.%' IDENTIFIZIERT DURCH PASSWORT '*EC0DBFB480593BB6ED2EC028A4231A72D8137406' |
| GEWÄHREN SIE 'wpuser'@'192.168.73.%' ALLE PRIVILEGIEN FÜR `wordpress`.* |
+----------------------------------------------------------------------------------------------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)

3. Weitere Möglichkeiten der Autorisierung

MAX_QUESRIES_PER_HOUR Anzahl #Maximale Anzahl von Abfragen pro Stunde MAX_UPDATES_PER_HOUR Anzahl #Maximale Anzahl von Änderungen pro Stunde MAX_CONNECTIONS_PER_HOUR Anzahl #Maximale Anzahl von Verbindungen pro Stunde MAX_USER_CONNECTIONS Anzahl #Maximale Anzahl von Benutzerverbindungen

Berechtigungen widerrufen

WIDERRUFEN
 priv_type [(Spaltenliste)]
  [, priv_type [(Spaltenliste)]] …
 ON [Objekttyp] Privilegebene
 VON Benutzer [, Benutzer] …

Beispiel:

MariaDB [(keine)]> Löschung auf wordpress.* von wpuser@'192.168.73.%' widerrufen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

MariaDB [(keine)]> Berechtigungen für wpuser@'192.168.73.%' anzeigen;
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Zuschüsse für [email protected].% |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* AN 'wpuser'@'192.168.73.%' IDENTIFIZIERT DURCH PASSWORT '*EC0DBFB480593BB6ED2EC028A4231A72D8137406' |
| GRANT SELECT, INSERT, UPDATE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `wordpress`.* TO 'wpuser'@'192.168.73.%' |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 Zeilen im Satz (0,00 Sek.)
# Zu diesem Zeitpunkt hat wpuser@'192.168.73.%' nicht mehr die Löschberechtigung

MySQL-Root-Passwort knacken

Manchmal kann es vorkommen, dass Sie Ihr Root-Passwort während der Arbeit verlieren. Sie können die folgenden Methoden verwenden, um Ihr Root-Passwort wiederherzustellen:

Nachfolgend wird gezeigt, wie man das Root-Passwort knackt.

1. Anmeldung bei MySQL aufgrund unbekannten Passworts nicht möglich

[root@localhost ~]# mysql
FEHLER 1045 (28000): Zugriff für Benutzer „root“@„localhost“ verweigert (mit Passwort: NEIN)

2. Knacken

1. Ändern Sie die Konfigurationsdatei /etc/my.cnf und fügen Sie zwei Parameterzeilen hinzu

skip_grant_tables: Überspringen Sie die Informationen zur Autorisierungstabelle. Nachdem diese Option wirksam geworden ist, müssen Sie MySQL nicht mehr mit einem Kennwort verwenden. Andere Remotebenutzer können sich jedoch auch ohne Kennwort anmelden, was gewisse Risiken birgt.

skip_networking: Schalten Sie die Netzwerkfunktion aus. Wenn Sie nur die Option skip_grant_tables aktivieren, können sich andere Benutzer ohne Kennwort bei MySQL anmelden, was sehr gefährlich ist. Daher müssen Sie die Netzwerkfunktion ausschalten und nur lokalen Benutzern den Betrieb erlauben.

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
skip_networking=on #Netzwerkfunktion nicht aktivieren skip_grant_tables=on #Autorisierungstabelle überspringen [root@localhost ~]# service mysqld restart #Nachdem Sie die Standortdatei geändert haben, müssen Sie den Dienst neu starten. Neustart von mysqld (über systemctl): [ OK ]

2. Melden Sie sich bei MySQL an und ändern Sie das Passwort

[root@localhost ~]# mysql #Sie können sich ohne Passwort anmelden. Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 11
Serverversion: 10.2.23-MariaDB-log Quellverteilung

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> UPDATE mysql.user SET password=PASSWORD('123456') where user='root'; #Ändern Sie das Root-Passwort. Abfrage OK, 4 Zeilen betroffen (0,01 Sek.)
Übereinstimmende Zeilen: 4 Geändert: 4 Warnungen: 0

3. Nachdem das Passwort geändert wurde, muss die Konfigurationsdatei wiederhergestellt werden

Deregistrieren oder löschen Sie die beiden soeben aktivierten Optionen und starten Sie den Dienst anschließend neu.

[root@localhost ~]# vim /etc/my.cnf
[mysqld]
#skip_networking=on   
#skip_grant_tables=ein   

[root@localhost ~]# service mysqld restart
Neustart von mysqld (über systemctl): [ OK ]

4. Melden Sie sich mit dem neuen Passwort bei MySQL an

[root@localhost ~]# mysql -uroot -p123456 
Willkommen beim MariaDB-Monitor. Befehle enden mit ; ​​oder \g.
Ihre MariaDB-Verbindungs-ID ist 10
Serverversion: 10.2.23-MariaDB-log Quellverteilung

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab und andere.

Geben Sie „help;“ oder „\h“ ein, um Hilfe zu erhalten. Geben Sie „\c“ ein, um die aktuelle Eingabeanweisung zu löschen.

MariaDB [(keine)]> 

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Zusammenfassung der Methoden zum Abfragen von MySQL-Benutzerberechtigungen
  • Der einfachste Weg, einen neuen Benutzer zu erstellen und Berechtigungen für MySQL zu erteilen
  • Detaillierte Erläuterung der MySQL-Benutzer- und Berechtigungsverwaltung
  • Detaillierte Erläuterung des Prozesses zum Abfragen von Benutzerberechtigungen mithilfe von MySQL-Anweisungen
  • Ausführliche Erläuterung der MySQL-Benutzerkontenverwaltung und Berechtigungsverwaltung
  • Detaillierte Erklärung der Lösung für den Fehler beim Erstellen eines Benutzers und Erteilen von Berechtigungen in mysql8.0
  • Detaillierte Erläuterung der Methoden zur Überprüfung und Verwaltung von MySQL-Benutzerrechten
  • Beispiel zum Erstellen eines lokalen Benutzers in MySQL und Erteilen von Datenbankberechtigungen
  • Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung
  • MySql legt die angegebenen Benutzerdatenbankansichtsabfrageberechtigungen fest

<<:  Detaillierte Erklärung der Requisiten und Kontextparameter der SetUp-Funktion in Vue3

>>:  Alibaba Cloud Ubuntu 16.04 baut IPSec-Dienst auf

Artikel empfehlen

JavaScript-Grundlagen: Geltungsbereich

Inhaltsverzeichnis Umfang Globaler Umfang Funktio...

Einige Verbesserungen in MySQL 8.0.24 Release Note

Inhaltsverzeichnis 1. Verbindungsmanagement 2. Ve...

Detaillierte Erklärung von PID und Socket in MySQL

Inhaltsverzeichnis 1. Einführung in die PID-Datei...

Einführung in JavaScript-Zahlen- und Mathematikobjekte

Inhaltsverzeichnis 1. Zahlen in JavaScript 2. Mat...

Erste Schritte Tutorial für Anfänger ④: So binden Sie Unterverzeichnisse

Um zu verstehen, was das bedeutet, müssen wir zunä...

Ausführliches Tutorial zur Installation von Deepin in VMware15 (Bild und Text)

Vorwort Die Benutzeroberfläche von Deepin sieht w...

Detailliertes Tutorial zur schnellen Installation von Zookeeper in Docker

Docker: Zookeeper schnell installieren Ich habe Z...

Welche Regeln gelten für den Kontext in JavaScript-Funktionen?

Inhaltsverzeichnis 1. Regel 1: Objekt.Methode() 1...

Kombinieren von XML- und CSS-Stilen

student.xml <?xml version="1.0" enco...

Teilen Sie das Problem, dass Ubuntu 19 die Docker-Quelle nicht installieren kann

Entsprechend den wichtigsten Websites und persönl...

7 Fähigkeiten, die großartige Grafikdesigner beherrschen müssen

1》Seien Sie gut im Webdesign 2》Wissen, wie man Web...