Android

Cách hiển thị / liệt kê người dùng trong mysql

SQL-13A: Ràng buộc FOREIGN KEY trong SQL Server

SQL-13A: Ràng buộc FOREIGN KEY trong SQL Server

Mục lục:

Anonim

Bạn đã bao giờ cần để có được một danh sách tất cả người dùng trong máy chủ MySQL của bạn chưa? Có các lệnh để hiển thị cơ sở dữ liệu và bảng, nhưng không có lệnh show users MySQL.

Hướng dẫn này giải thích cách liệt kê tất cả các tài khoản người dùng trong máy chủ cơ sở dữ liệu MySQL thông qua dòng lệnh. Chúng tôi cũng sẽ chỉ cho bạn cách tìm ra người dùng nào có quyền truy cập vào cơ sở dữ liệu nhất định.

Trước khi bắt đầu

Chúng tôi giả định rằng bạn đã cài đặt máy chủ MySQL hoặc MariaDB trên hệ thống của mình.

Tất cả các lệnh được thực thi bên trong shell MySQL với tư cách là người dùng root. Để truy cập shell MySQL, gõ lệnh sau và nhập mật khẩu người dùng root MySQL của bạn khi được nhắc:

mysql -u root -p Nếu bạn quên mật khẩu root MySQL, bạn có thể đặt lại bằng cách làm theo các hướng dẫn sau.

Hiển thị tất cả người dùng MySQL

MySQL lưu trữ thông tin về người dùng trong một bảng có tên user trong cơ sở dữ liệu mysql .

Để có danh sách tất cả các tài khoản người dùng MySQL, hãy sử dụng SELECT để truy xuất tất cả các hàng từ bảng mysql.users :

SELECT User, Host FROM mysql.user;

Đầu ra sẽ trông tương tự như dưới đây:

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

Lệnh trên chỉ hiển thị hai cột từ bảng mysql.user ( User Host ), Bảng này chứa hơn 40 cột như Password , Select_priv , Update_priv , v.v.

Tài khoản người dùng trong MySQL bao gồm hai phần: tên người dùng và tên máy chủ.

Sử dụng desc mysql.user; tuyên bố để hiển thị thông tin về các cột của bảng. Khi bạn biết tên cột, bạn có thể chạy truy vấn đối với dữ liệu đã chọn.

Ví dụ: để có danh sách tất cả các tài khoản người dùng MySQL bao gồm thông tin về mật khẩu và liệu nó đang hoạt động hay đã hết hạn, bạn sẽ sử dụng truy vấn sau:

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)

Hiển thị người dùng có quyền truy cập vào cơ sở dữ liệu cụ thể

Thông tin về các đặc quyền cấp cơ sở dữ liệu được lưu trữ trong bảng mysql.db .

Bạn có thể truy vấn bảng để tìm ra người dùng nào có quyền truy cập vào cơ sở dữ liệu nhất định và mức độ đặc quyền.

Ví dụ: để có được danh sách tất cả người dùng có quyền truy cập cấp độ vào cơ sở dữ liệu có tên db_name bạn sẽ sử dụng truy vấn sau:

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)

Để chỉ tìm nạp thông tin về các tài khoản người dùng có quyền truy cập vào cơ sở dữ liệu nhất định mà không hiển thị các đặc quyền sử dụng:

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

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

Truy vấn sau đây sẽ cho bạn thấy thông tin về tất cả các cơ sở dữ liệu và người dùng được liên kết:

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

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ ra cách lấy danh sách tất cả người dùng MySQL và tìm ra người dùng nào có quyền truy cập vào cơ sở dữ liệu cụ thể.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

mysia mariadb