Android

Hoe gebruikers in MySQL te tonen / vermelden

Windows 2008 - PHP and MySQL installation on IIS

Windows 2008 - PHP and MySQL installation on IIS

Inhoudsopgave:

Anonim

Heeft u ooit een lijst nodig gehad van alle gebruikers op uw MySQL-server? Er zijn opdrachten om databases en tabellen weer te geven, maar er is geen opdracht MySQL show users .

In deze zelfstudie wordt uitgelegd hoe u alle gebruikersaccounts in een MySQL-databaseserver kunt weergeven via de opdrachtregel. We laten u ook zien hoe u erachter komt welke gebruikers toegang hebben tot een bepaalde database.

Voordat je begint

We gaan ervan uit dat u MySQL of MariaDB-server al op uw systeem heeft geïnstalleerd.

Alle opdrachten worden als rootgebruiker in de MySQL-shell uitgevoerd. Om toegang te krijgen tot de MySQL-shell typt u de volgende opdracht en voert u uw MySQL-rootgebruikerswachtwoord in wanneer daarom wordt gevraagd:

mysql -u root -p Als u uw MySQL-rootwachtwoord bent vergeten, kunt u het opnieuw instellen door deze instructies te volgen.

Toon alle MySQL-gebruikers

MySQL slaat informatie over de gebruikers op in een tabel met de naam user in de mysql database.

Om een ​​lijst met alle MySQL-gebruikersaccounts te krijgen, gebruikt u de SELECT instructie om alle rijen uit de tabel mysql.users te halen:

SELECT User, Host FROM mysql.user;

De output moet er ongeveer zo uitzien:

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

De bovenstaande opdracht toont slechts twee kolommen uit de tabel mysql.user ( User en Host ). Deze tabel bevat meer dan 40 kolommen zoals Password , Select_priv , Update_priv , enz.

Een gebruikersaccount in MySQL bestaat uit twee delen: een gebruikersnaam en hostnaam.

Gebruik de desc mysql.user; instructie om informatie over de kolommen van de tabel weer te geven. Zodra u de kolomnaam weet, kunt u een query uitvoeren op basis van geselecteerde gegevens.

Als u bijvoorbeeld een lijst wilt krijgen van alle MySQL-gebruikersaccounts, inclusief informatie over het wachtwoord en of het wachtwoord actief of verlopen is, gebruikt u de volgende zoekopdracht:

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)

Toon gebruikers die toegang hebben tot een bepaalde database

De informatie over de bevoegdheden op databaseniveau wordt opgeslagen in de tabel mysql.db .

U kunt de tabel opvragen om erachter te komen welke gebruikers toegang hebben tot een bepaalde database en het niveau van de rechten.

Als u bijvoorbeeld een lijst wilt krijgen van alle gebruikers die enige toegang hebben tot de database met de naam db_name u de volgende query:

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)

Gebruik alleen informatie over de gebruikersaccounts die toegang hebben tot een bepaalde database, zonder de rechten weer te geven:

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

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

De volgende zoekopdracht toont u informatie over alle databases en bijbehorende gebruikers:

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

Conclusie

In deze tutorial hebben we laten zien hoe u een lijst van alle MySQL-gebruikers kunt krijgen en kunt u achterhalen welke gebruikers toegang hebben tot een bepaalde database.

Als je nog vragen hebt, kun je een reactie achterlaten.

mysql mariadb