MySQL Stored Procedures All-in-One Quick Start Tutorial Series (1 HOUR!)
Spisu treści:
- Zanim zaczniesz
- Pokaż wszystkich użytkowników MySQL
- Pokaż użytkowników, którzy mają dostęp do określonej bazy danych
- Wniosek
Czy kiedykolwiek potrzebowałeś uzyskać listę wszystkich użytkowników na serwerze MySQL? Istnieją polecenia do wyświetlania baz danych i tabel, ale nie ma polecenia MySQL
show users
.
W tym samouczku wyjaśniono, jak wyświetlić listę wszystkich kont użytkowników na serwerze bazy danych MySQL za pomocą wiersza polecenia. Pokażemy także, w jaki sposób dowiedzieć się, którzy użytkownicy mają dostęp do danej bazy danych.
Zanim zaczniesz
Zakładamy, że masz już serwer MySQL lub MariaDB zainstalowany w systemie.
Wszystkie polecenia są wykonywane w powłoce MySQL jako użytkownik root. Aby uzyskać dostęp do powłoki MySQL, wpisz następującą komendę i po wyświetleniu monitu wprowadź hasło użytkownika root MySQL:
mysql -u root -p
Jeśli nie pamiętasz hasła root MySQL, możesz je zresetować, postępując zgodnie z tymi instrukcjami.
Pokaż wszystkich użytkowników MySQL
MySQL przechowuje informacje o użytkownikach w tabeli o nazwie
user
w bazie danych
mysql
.
Aby uzyskać listę wszystkich kont użytkowników MySQL, użyj instrukcji
SELECT
, aby pobrać wszystkie wiersze z tabeli
mysql.users
:
SELECT User, Host FROM mysql.user;
Dane wyjściowe powinny wyglądać podobnie do poniższych:
+------------------+-----------+ | 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)
Powyższe polecenie pokazuje tylko dwie kolumny z tabeli
mysql.user
(
User
i
Host
). Ta tabela zawiera ponad 40 kolumn, takich jak
Password
,
Select_priv
,
Update_priv
itp.
Użyj
desc mysql.user;
instrukcja, aby wyświetlić informacje o kolumnach tabeli. Po poznaniu nazwy kolumny można uruchomić zapytanie dotyczące wybranych danych.
Na przykład, aby uzyskać listę wszystkich kont użytkowników MySQL, w tym informacje o haśle i czy jest ono aktywne, czy wygasło, należy użyć następującego zapytania:
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)
Pokaż użytkowników, którzy mają dostęp do określonej bazy danych
Informacje o uprawnieniach na poziomie bazy danych są przechowywane w tabeli
mysql.db
.
Możesz przeszukać tabelę, aby dowiedzieć się, którzy użytkownicy mają dostęp do danej bazy danych i jaki jest poziom uprawnień.
Na przykład, aby uzyskać listę wszystkich użytkowników, którzy mają pewien poziom dostępu do bazy danych o nazwie
db_name
, należy użyć następującego zapytania:
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)
Aby pobrać informacje tylko o kontach użytkowników, którzy mają dostęp do danej bazy danych, bez wyświetlania uprawnień użyj:
SELECT db, host, user FROM mysql.db WHERE db = 'db_name'
+---------+-----------+---------+ | db | host | user | +---------+-----------+---------+ | db_name | localhost | db_user | +---------+-----------+---------+
Poniższe zapytanie pokaże informacje o wszystkich bazach danych i powiązanych użytkownikach:
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 | +------------------+-----------+-----------+
Wniosek
W tym samouczku pokazaliśmy, jak uzyskać listę wszystkich użytkowników MySQL i dowiedzieć się, którzy użytkownicy mają dostęp do konkretnej bazy danych.
Jeśli masz jakieś pytania, zostaw komentarz.
mysql mariadbJak dodawać użytkowników i zarządzać kontami użytkowników w systemie Windows 8
Dowiedz się, jak dodawać nowych użytkowników i zarządzać kontami użytkowników w systemie Windows 8. Jest to nieco inny interfejs i ogólnie łatwiej jest zmieniać użytkowników.
Jak wyświetlić listę użytkowników w systemie Linux
Czy kiedykolwiek chciałeś wyświetlić listę wszystkich użytkowników w systemie Linux lub policzyć liczbę użytkowników w systemie? Istnieją polecenia, aby utworzyć użytkownika, usunąć użytkownika, wyświetlić listę zalogowanych użytkowników, ale jakie jest polecenie, aby wyświetlić listę wszystkich użytkowników w systemie Linux?
Jak wyświetlić listę wszystkich baz danych w mysql
Podczas administrowania serwerami baz danych MySQL jednym z najczęstszych zadań, które musisz wykonać, jest zapoznanie się ze środowiskiem. W tym samouczku wyjaśniono, jak wyświetlać wszystkie bazy danych na serwerze MySQL lub MariaDB za pomocą wiersza polecenia.