Android

Anzeigen / Auflisten von Benutzern in MySQL

MS-SQL-Server für Anfänger - Teil 7: Benutzer anlegen und verwalten

MS-SQL-Server für Anfänger - Teil 7: Benutzer anlegen und verwalten

Inhaltsverzeichnis:

Anonim

Haben Sie jemals eine Liste aller Benutzer auf Ihrem MySQL-Server benötigt? Es gibt Befehle zum Anzeigen von Datenbanken und Tabellen, aber keinen MySQL-Befehl show users .

In diesem Tutorial wird erklärt, wie Sie alle Benutzerkonten in einem MySQL-Datenbankserver über die Befehlszeile auflisten. Wir zeigen Ihnen auch, wie Sie herausfinden, welche Benutzer Zugriff auf eine bestimmte Datenbank haben.

Bevor Sie beginnen

Wir gehen davon aus, dass Sie bereits einen MySQL- oder MariaDB-Server auf Ihrem System installiert haben.

Alle Befehle werden in der MySQL-Shell als Root-Benutzer ausgeführt. Um auf die MySQL-Shell zuzugreifen, geben Sie den folgenden Befehl ein und geben Sie Ihr MySQL-Root-Benutzerkennwort ein, wenn Sie dazu aufgefordert werden:

mysql -u root -p Wenn Sie Ihr MySQL-Root-Passwort vergessen haben, können Sie es mithilfe dieser Anweisungen zurücksetzen.

Alle MySQL-Benutzer anzeigen

MySQL speichert Informationen zu den Benutzern in einer Tabelle namens user in der mysql Datenbank.

Um eine Liste aller MySQL-Benutzerkonten zu erhalten, verwenden Sie die SELECT Anweisung, um alle Zeilen aus der mysql.users Tabelle mysql.users :

SELECT User, Host FROM mysql.user;

Die Ausgabe sollte wie folgt aussehen:

+------------------+-----------+ | user | host | +------------------+-----------+ | root | localhost | | luke | % | | yoda | % | | jabba | 10.10.0.6 | | jabba | 10.10.0.9 | | chewbacca | localhost | | leia | localhost | | han | localhost | +------------------+-----------+ 8 rows in set (0.00 sec)

Der obige Befehl zeigt nur zwei Spalten aus der mysql.user Tabelle ( User und Host ). Diese Tabelle enthält mehr als 40 Spalten wie Password , Select_priv , Update_priv usw.

Ein Benutzerkonto in MySQL besteht aus zwei Teilen: einem Benutzernamen und einem Hostnamen.

Verwenden Sie den desc mysql.user; Anweisung, um Informationen zu den Tabellenspalten anzuzeigen. Sobald Sie den Spaltennamen kennen, können Sie eine Abfrage für ausgewählte Daten ausführen.

Um beispielsweise eine Liste aller MySQL-Benutzerkonten mit Informationen zum Kennwort und zu dessen Gültigkeit oder Ablauf zu erhalten, verwenden Sie die folgende Abfrage:

SELECT User, Host, Password, password_expired FROM mysql.user;

+----------------+-----------+-------------------------------------------+------------------+ | User | Host | Password | password_expired | +----------------+-----------+-------------------------------------------+------------------+ | root | localhost | | N | | luke | % | *ADC3B5B27617732CD6320A2DA976258E149A7EC8 | N | | yoda | % | *9550E004046348198A143A115550E1262209FB6F | N | | jabba | 10.10.0.6 | *F91C86B486B945C083B61A05FF6E197560D187EC | Y | | jabba | 10.10.0.9 | | Y | | chewbacca | localhost | *17F2B1E48029294841AD66772BEBB7E6E6A005AF | N | | leia | localhost | *74409C8DB55AC1A6829D801915981C46EDBFC64A | N | | han | localhost | *7B3022FCAEC3534CE67C68322D8AF0C240D95745 | N | +----------------+-----------+-------------------------------------------+------------------+ 8 rows in set (0.00 sec)

Zeigen Sie Benutzer an, die Zugriff auf eine bestimmte Datenbank haben

Die Informationen zu den Berechtigungen auf Datenbankebene werden in der Tabelle mysql.db gespeichert.

Sie können die Tabelle abfragen, um herauszufinden, welche Benutzer Zugriff auf eine bestimmte Datenbank haben und wie hoch die Berechtigungen sind.

Um beispielsweise eine Liste aller Benutzer zu erhalten, die über eine bestimmte Zugriffsstufe auf die Datenbank mit dem Namen db_name Sie die folgende Abfrage:

SELECT * FROM mysql.db WHERE Db = 'db_name'\G;

*************************** 1. row *************************** Host: localhost Db: db_name User: db_user Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: Y 1 row in set (0.00 sec)

Um nur Informationen über die Benutzerkonten abzurufen, die Zugriff auf eine bestimmte Datenbank haben, ohne die Berechtigungen anzuzeigen, verwenden Sie:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+

Die folgende Abfrage zeigt Informationen zu allen Datenbanken und zugeordneten Benutzern an:

SELECT db, host, user FROM mysql.db WHERE db = 'db_name'

+------------------+-----------+-----------+ | db | host | user | +------------------+-----------+-----------+ | db_name | localhost | db_user | | ghost_production | localhost | chewbacca | | blog_db | localhost | leia | | linuxize | localhost | han | +------------------+-----------+-----------+

Fazit

In diesem Tutorial haben wir gezeigt, wie Sie eine Liste aller MySQL-Benutzer abrufen und herausfinden, welche Benutzer Zugriff auf eine bestimmte Datenbank haben.

Fühlen Sie sich frei, einen Kommentar zu hinterlassen, wenn Sie Fragen haben.

MySQL Mariadb