MySQL - MySQL Introduction
Innehållsförteckning:
- Innan du börjar
- Visa alla MySQL-användare
- Visa användare som har tillgång till en särskild databas
- Slutsats
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.
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 mariadbLedamöter av Europaparlamentet kommer att avgöra om en rad frågor, bland annat hur man reglerar telekomföretag i EU, hur man straffar företag som snedvrider konkurrensen, hur man delar radiofrekvenser som släpps av TV: s migrering till digital sändning och hur man skyddar medborgarnas data i den digitala tiden.
Men de är delade om huruvida IP-adresser ska ses som personuppgifter. "Vi kommer att be kommissionen att formellt lägga fram en rapport om detta", säger Malcolm Harbour, en brittisk konservativ parlamentsledamot som spelar en central roll för att hylla den så kallade telekomrevisionen genom parlamentet.
Anfallet börjar med att användare får ett spam-e-postmeddelande med namnet på ämnesraden och ett kort meddelande om "kolla in den här sidan" följt av en lite förkortad länk. Genom att klicka på länken tar användare till en webbplats masquerading som MSNBC-nyhetssiten som innehåller en artikel om hur man tjänar pengar medan man arbetar hemifrån, sa Bitdefender-forskarna onsdagen i ett blogginlägg.
Vid första ögonkastet verkar det inte annorlunda från andra scam-webbplatser från hemmet. Men i bakgrunden utnyttjar en del JavaScript-kod en XSS-sårbarhet på webbplatsen Yahoo Developer Network (YDN) för att stjäla besökarens Yahoo-kaka.
Hur man listar användare i Linux
Har du någonsin velat lista alla användare i ditt Linux-system eller räkna antalet användare i systemet? Det finns kommandon för att skapa en användare, ta bort en användare, lista inloggade användare, men vad är kommandot för att lista alla användare i Linux?