MS-SQL-Server für Anfänger - Teil 7: Benutzer anlegen und verwalten
Inhaltsverzeichnis:
- Bevor Sie beginnen
- Alle MySQL-Benutzer anzeigen
- Zeigen Sie Benutzer an, die Zugriff auf eine bestimmte Datenbank haben
- Fazit
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.
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 MariadbFacebook zur Behebung von Fehlernummern von Benutzern
Facebook hat einen Patch zur Behebung eines seltenen Fehlers in seiner API veröffentlicht *
Empfangen von Dateien von Nicht-Dropbox-Benutzern an Ihre Dropbox
Erfahren Sie, wie Sie Dateien von einem Nicht-Dropbox-Benutzer erhalten Dropbox-Konto. Balloon ist eine Web-App, mit der andere Dateien auf Ihr Dropbox-Konto hochladen können.
Auflisten (Anzeigen) von Tabellen in einer MySQL-Datenbank
Dieser Artikel zeigt, wie Tabellen in einer MySQL- oder MariaDB-Datenbank über die Befehlszeile mit dem Befehl SHOW TABLES aufgelistet werden.