Android

Hur man visar / listar användare i mysql

MySQL - MySQL Introduction

MySQL - MySQL Introduction

Innehållsförteckning:

Anonim

Har du någonsin behövt få en lista över alla användare på din MySQL-server? Det finns kommandon för att visa databaser och tabeller, men det finns inget MySQL- show users kommando.

Denna handledning förklarar hur man listar alla användarkonton på en MySQL-databasserver via kommandoraden. Vi visar också hur du hittar vilka användare som har tillgång till en given databas.

Innan du börjar

Vi antar att du redan har MySQL eller MariaDB-server installerat på ditt system.

Alla kommandon körs inuti MySQL-skalet som root-användare. För att komma åt MySQL-skalet skriver du följande kommando och anger ditt MySQL-root-användarlösenord när du uppmanas:

mysql -u root -p Om du har glömt ditt MySQL root-lösenord kan du återställa det genom att följa dessa instruktioner.

Visa alla MySQL-användare

MySQL lagrar information om användarna i en tabell med namnet user i mysql databasen.

För att få en lista över alla MySQL-användarkonton använder du SELECT uttalandet för att hämta alla rader från tabellen mysql.users :

SELECT User, Host FROM mysql.user;

Utgången ska se ut som nedan:

+------------------+-----------+ | 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)

Kommandot ovan visar bara två kolumner från tabellen mysql.user ( User och Host ). Denna tabell innehåller mer än 40 kolumner som Password , Select_priv , Update_priv , etc.

Ett användarkonto i MySQL består av två delar: ett användarnamn och värdnamn.

Använd desc mysql.user; uttalande för att visa information om tabellens kolumner. När du vet kolumnnamnet kan du köra en fråga mot en vald data.

Till exempel för att få en lista över alla MySQL-användarkonton inklusive information om lösenordet och om det är aktivt eller löpt ut använder du följande fråga:

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)

Visa användare som har tillgång till en särskild databas

Informationen om behörigheterna på mysql.db lagras i tabellen mysql.db .

Du kan fråga tabellen för att ta reda på vilka användare som har tillgång till en given databas och behörighetsnivån.

För att få en lista med alla användare som har viss nivååtkomst till databasen med namnet db_name skulle du använda följande fråga:

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)

För att hämta information endast om de användarkonton som har tillgång till en given databas utan att visa behörigheterna använder du:

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

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

Följande fråga visar information om alla databaser och tillhörande användare:

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 | +------------------+-----------+-----------+

Slutsats

I denna handledning har vi visat hur man får en lista över alla MySQL-användare och ta reda på vilka användare som har tillgång till en viss databas.

Lämna gärna en kommentar om du har några frågor.

mysql mariadb