Som databaseadministrator vil du møte forekomster der du trenger å kjenne brukerne på en MySQL -server. Dette vil tillate deg å vite hvilke brukere som kan utføre spesifikke oppgaver og administrere tillatelsene sine.
Denne opplæringen vil utforske metoden for å hente brukerne som er tilgjengelige i en MySQL -server.
Krav
Før vi begynner med denne opplæringen, antar vi at du har:
Trinn 1 - Logg på MySQL
Du får tilgang til MySQL -skallet ditt for å vise og administrere brukere på MySQL -serveren din.
Kommandosyntaks:
$ mysql -u-p
Bytt ut brukernavnet med målbrukeren du ønsker å logge inn.
For eksempel, som rot, utfør:
$ mysql -u root -p
Skriv inn brukernavnets passord. Når du er autentisert, bør du slippe inn SQL -skallet som vist:
Her kan du begynne å utføre SQL -kommandoer og se den resulterende utgangen.
Oppføring av brukere i MySQL
Dessverre gir MySQL ikke en innfødt showbrukere -kommando som vi kan bruke. Dette betyr at vi må leke med hvordan MySQL lagrer informasjon.
For eksempel bruker MySQL MySQL.Brukertabell for å lagre brukerinformasjon. Vi kan deretter bruke informasjonen som er lagret i denne tabellen for å hente ulik informasjon.
Mysql viser alle brukere
La oss starte med å diskutere hvordan vi kan hente alle brukere. Kjør spørringen:
PLUKKE UT
bruker
FRA
mysql.bruker;
Kommandoen vil hente brukerkolonnen fra MySQL.Brukertabell og returner resultatene som vist:
Fra utgangen over kan vi se forskjellige brukere som Root, MySQL.Sys, MySQL.økt osv.
Husk at kommandoen ovenfor kan kreve at du endrer databaser. Hvis du får "Query 1: Table" MySQL.Bruker 'eksisterer ikke "feil, kjør kommandoen nedenfor for å bytte databaser.
> Bruk mysql
Når du har fått listen over brukere på serveren, kan du samle informasjon om brukeren ved å bruke kommandoer som DESC.
Vis brukere med aktiv økt
Vi kan også få en liste over brukere med aktive økter ved hjelp av informasjons_schema -databasen. Denne databasen lagrer informasjon om serveren og gjeldende økter.
Utfør kommandoen:
Kommandoen over vil hente brukernavnet, verten og databasen fra prosessliste -tabellen. Dette viser det nåværende brukernavnet, verten som klienten kobler til, og databasen de har koblet til.
Et eksempelutgang er som vist:
Fra utdataene over kan vi se at det for øyeblikket er tre brukere tilkoblet. Husk at det samme brukernavnet, men en annen vert blir behandlet som et annet brukernavn.
Vis nåværende bruker
Noen ganger kan det hende du må samle rask informasjon om den nåværende brukeren. Heldigvis har MySQL en bruker () -funksjon som returnerer den for øyeblikket innloggede brukeren.
Et eksempel er som vist:
PLUKKE UT
bruker();
Kommandoen skal returnere gjeldende brukerinformasjon som:
Få bruk med tilgang til en bestemt database
Anta at du ønsker å bestemme brukernavnet med tilgang til et mål DB? Du kan bruke DB -tabellen og filteret til det aktuelle brukernavnet.
Ta kodeillustrasjonen nedenfor:
PLUKKE UT
*
FRA
mysql.db
HVOR
Db = 'sys' \ g;
Kommandoen over vil returnere brukeren med all tilgang til SYS -databasen. Bytt gjerne SYS med databasenavnet du ønsker å evaluere.
Kommandoen vil returnere en utgang som vist:
*************************** 1. rad ***************************
Vert: Localhost
DB: Sys
Bruker: MySQL.sys
SELECT_PRIV: n
Insert_priv: n
Update_priv: n
Delete_priv: n
Create_priv: n
Drop_priv: n
Grant_priv: n
REFERANSER_PRIV: n
Indeks_priv: n
Alter_priv: n
Create_tmp_table_priv: n
LOCK_TABLES_PRIV: n
Create_view_priv: n
Show_view_priv: n
Create_routine_priv: n
Alter_routine_priv: n
Execute_priv: n
Event_priv: n
Trigger_priv: y
1 rad i sett (0.00 sek)
Fra utgangen over kan vi se at mysql.SYS -bruker har utløst privilegium i databasen.
Konklusjon
Som illustrert i denne opplæringen, kan vi bruke forskjellige MySQL -tabeller og databaser for å hente informasjon om brukerne. Denne kraftige funksjonen lar deg lage prosedyrer og andre brukerdefinerte typer for å samle brukerinformasjon.