Korzystam z narzędzia wiersza polecenia MySQL i mogę nawigować po bazie danych. Teraz muszę zobaczyć listę kont użytkowników. W jaki sposób mogę to zrobić?
Używam wersji MySQL 5.4.1
.
mysql
command-line
mysql5
Burntsugar
źródło
źródło
Odpowiedzi:
Użyj tego zapytania:
Które wygeneruje tabelę taką jak ta:
Jak zauważa Matthew Scharley w komentarzach do tej odpowiedzi , możesz pogrupować dane według
User
kolumny, jeśli chcesz zobaczyć unikalne nazwy użytkowników.źródło
User
, aby uzyskać tylko unikalne wartości użytkownika, ponieważ dla każdego wpisuuser
@ jest osobny wierszhost
.DELETE FROM mysql.user;
lepiej miećWHERE user='someuser' and host='somehost';
Jeśli to zrobiszDELETE FROM mysql.user;
, wszyscy użytkownicy znikną. Loguje się po następnym uruchomieniu mysql lubFLUSH PRIVILEGES;
wyeliminowaniu użytkowników z pamięci. Oto przykład jednego z moich postów na tematDELETE FROM mysql.user
odpowiedzialnego działania : dba.stackexchange.com/questions/4614/…SHOW GRANTS FOR 'user'@'host';
DISTINCT
słowa kluczowego:SELECT DISTINCT user FROM mysql.user;
Uważam ten format za najbardziej użyteczny, ponieważ zawiera pole hosta, które jest ważne w MySQL do rozróżnienia rekordów użytkownika.
źródło
host
w grę podczas pracy z bazami danych MySQL? [Mysql Noob]host
wchodzi w grę, gdy łączysz się z innego serwera. Możliwe jest przyznanie innego dostępu do'packer'@'example.com'
i'packer'@'google.com'
Konto użytkownika obejmuje nazwę użytkownika i dostęp na poziomie hosta.
Dlatego jest to zapytanie, które daje wszystkie konta użytkowników
źródło
user@host
format służy do ustawiania haseł. Pominięcie hosta wSET PASSWORD
poleceniu powoduje błąd.SET PASSWORD FOR wordpressuser = PASSWORD('...');
produkuje błądERROR 1133 (42000): Can't find any matching row in the user table
. Dołącz hosta i to działa.SET PASSWORD FOR wordpressuser@localhost = PASSWORD('...');
produkujeQuery OK, 0 rows affected (0.00 sec)
.ORDER BY user
do niej.aby uniknąć powtórzeń użytkowników, gdy łączą się z innego źródła:
źródło
MySQL przechowuje informacje o użytkowniku we własnej bazie danych. Nazwa bazy danych to
MySQL
. W tej bazie danych informacje o użytkowniku znajdują się w tabeli, w zbiorze danych o nazwieuser
. Jeśli chcesz zobaczyć, którzy użytkownicy są skonfigurowani w tabeli użytkowników MySQL, uruchom następującą komendę:źródło
Jeśli masz na myśli rzeczywistych użytkowników MySQL, spróbuj:
źródło
To duży stół, więc możesz chcieć być bardziej selektywnym w wybranych polach.
źródło
localhost
,127.0.0.1
I::1
. Który muszę zachować, a co usunąć? Dzięki!Zaloguj się do mysql jako root i wpisz następujące zapytanie
źródło
GRANT SELECT ON mysql.user TO 'user1'@'localhost';
teraz zaloguj się jako użytkownik1 i wpisz polecenieselect User from mysql.user;
Zobaczysz wyświetloną listę użytkowników. :) +1 EnjoyTabela mysql.db jest prawdopodobnie ważniejsza przy określaniu uprawnień użytkownika. Wydaje mi się, że tworzony jest w nim wpis, jeśli wspominasz o tabeli w poleceniu GRANT. W moim przypadku tabela mysql.users nie pokazała żadnych uprawnień dla użytkownika, gdy oczywiście był w stanie połączyć się i wybrać itp.
źródło
Używam tego do sortowania użytkowników, więc łatwiejszymi do zlokalizowania dozwolonymi hostami są:
źródło
Peter i Jesse mają rację, ale upewnij się, że najpierw wybrałeś DB MySQL.
use mysql;
select User from mysql.user;
to powinno wystarczyć
źródło
use mysql;
w przypadku, gdy zakres tabeli zostanie zawarty w bazie danych mysql. Możesz po prostuselect User from mysql.user;
use mysql;
jest tylko po to, abyś mógł użyćselect User from user;
zamiast tego,select User from mysql.user;
ponieważ jest to zwykle zapytanie jednorazowe, nie ma potrzeby używania mysql dbuse mysql
jeśli użyłeś,select user from user;
to mogło być coś, ale zamiast tego używaszmysql.user
, co sprawia, że używanieuse mysql
na początku nie jest konieczne.Wyświetla listę unikalnych użytkowników:
źródło
Wykonanie tej komendy w wierszu poleceń linuksa najpierw poprosi o hasło użytkownika root mysql, po podaniu prawidłowego hasła wydrukuje wszystkich użytkowników bazy danych do pliku tekstowego.
źródło
Uważam, że jest on bardziej przydatny, ponieważ zapewnia dodatkowe informacje na temat uprawnień DML i DDL
źródło
użyj powyższego zapytania, aby uzyskać użytkowników MySQL
źródło