Mysql lưu trữ thông tin người dùng ở đâu?

MySQL không có bất kỳ lệnh nào như SHOW USERS để hiển thị danh sách người dùng đối với bảng và cơ sở dữ liệu trong lệnh SHOW TABLES và SHOW DATABASES. Thông tin về tất cả người dùng được lưu trữ bên trong bảng có tên người dùng. Bảng người dùng chứa tất cả thông tin liên quan đến người dùng máy chủ cơ sở dữ liệu MySQL của bạn. Bảng người dùng này được lưu trữ trong cơ sở dữ liệu có tên MySQL của máy chủ cơ sở dữ liệu của bạn. Ngoài ra, còn có các hàm có sẵn trong MySQL để lấy người dùng hiện tại như các hàm user() hoặc current_user(). Chúng tôi thậm chí có thể kiểm tra danh sách người dùng hiện đang đăng nhập vào máy chủ cơ sở dữ liệu của bạn. Chúng ta sẽ tìm hiểu về cú pháp và cách sử dụng của tất cả các truy xuất dữ liệu liên quan đến người dùng ở trên trong bài viết này

Sử dụng truy xuất dữ liệu liên quan đến người dùng

Hãy để chúng tôi tìm hiểu về cú pháp và cách sử dụng

1. Thông tin liên quan đến người dùng trong bảng người dùng

Như đã thảo luận trước đây, có một cơ sở dữ liệu có tên MySQL lưu trữ thông tin liên quan đến người dùng trong bảng có tên người dùng. Bảng này có tổng cộng 45 cột để lưu trữ thông tin người dùng. Một số trong số đó là người dùng, máy chủ, ssl_type, ssl_cipher, max_questions, max_connections, authentication_string, password_expired, account_locked, password_lifetime, password_last_changed và các cột khác liên quan đến các đặc quyền được gán cho người dùng đối với các hoạt động cơ sở dữ liệu khác nhau

Bước 1. Để xem danh sách đầy đủ các cột của bảng người dùng, bạn có thể mô tả bảng người dùng bằng truy vấn sau

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

Mã số

DESC user;

HOẶC LÀ

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?

Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?
Mysql lưu trữ thông tin người dùng ở đâu?

Giá bán
Xem các khóa học

Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (86.241 xếp hạng)

nếu cơ sở dữ liệu được chọn hiện tại của bạn đang được sử dụng là MySQL hoặc bạn có thể sử dụng

Mã số

DESC mysql.user;

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Bước 2. Trước tiên, chúng tôi sẽ truy xuất tên của tất cả người dùng từ bảng người dùng bằng truy vấn CHỌN sau

Mã số

SELECT USER FROM mysql.user;

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Chúng ta có thể thấy rằng có bốn người dùng cho máy chủ cơ sở dữ liệu của tôi

Bước 3. Để truy xuất dữ liệu từ bảng người dùng của cơ sở dữ liệu MySQL, trước tiên bạn cần đăng nhập vào MySQL bằng lệnh MySQL -u root pg nếu bạn đang sử dụng MySQL từ dòng lệnh thông qua thiết bị đầu cuối hoặc bằng cách nhập thông tin đăng nhập trong trường hợp nếu bạn đang sử dụng bất kỳ

Một cách khác để sử dụng truy vấn chọn ở trên, trước tiên bạn có thể kích hoạt lệnh để chọn cơ sở dữ liệu MySQL và sau đó chỉ cần kích hoạt truy vấn chọn sau sẽ tạo ra kết quả tương tự như trên

Mã số

SELECT user from user;

Để lấy thêm thông tin về người dùng, chúng ta có thể thêm các cột muốn lấy vào select query như sau

Mã số

SELECT
USER,
HOST,
account_locked,
password_last_changed,
password_lifetime,
max_connections
FROM
USER;

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Bước 4. Giả sử, bạn muốn truy xuất thông tin liên quan đến đặc quyền được chỉ định của người dùng. Sau đó, trong trường hợp đó, bạn có thể chọn các cột liên quan đến đặc quyền như được thực hiện trong truy vấn CHỌN sau

Mã số

SELECT
USER,
Insert_priv,
Select_priv,
Update_priv,
Delete_priv,
Create_priv,
Drop_priv,
File_priv,
Grant_priv,
Index_priv,
Alter_priv
FROM
USER;

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Tương tự, các cột khác cũng có thể được truy xuất bất cứ thứ gì bạn muốn bằng cách sử dụng truy vấn chọn. Hầu hết các cột của bảng người dùng lưu trữ các giá trị như boolean i. e đúng hoặc sai có kiểu dữ liệu của một enum có các giá trị 'Y' là viết tắt của true và 'N' chỉ định sai i. e enum(‘N’,’Y’) kiểu dữ liệu cho biết đặc quyền nhất định có được gán cho người dùng hay không

2. Xem thông tin người dùng hiện tại

MySQL cung cấp cho chúng ta hàm user() có thể được sử dụng để lấy người dùng hiện tại của cơ sở dữ liệu

Bước 1. Truy vấn sau đây có thể được sử dụng cho mục đích đó

Mã số

SELECT user();

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Hàm trên trả về tên của người dùng hiện tại, sau đó là máy chủ trong trường hợp của chúng ta là % và sau đó là địa chỉ của máy chủ cơ sở dữ liệu

Bước 2. Ngoài ra còn có một phương thức nữa để truy xuất người dùng hiện tại đó là hàm current_user(). Điều này có thể được sử dụng theo cách sau

Mã số

SELECT CURRENT_USER();

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Kết quả trả về ở trên của hàm CURRENT_USER() có định dạng tên của người dùng và sau đó là biểu tượng @, tiếp theo là máy chủ lưu trữ trong trường hợp của chúng tôi, đó là (%). Cả hai hàm USER() và CURRENT_USER() đều có thể được sử dụng để truy xuất và tìm nạp người dùng hiện tại của cơ sở dữ liệu

3. Kiểm tra tất cả người dùng hiện đang đăng nhập

Có thể xảy ra trường hợp có nhiều người dùng máy chủ cơ sở dữ liệu MySQL và nhiều người dùng có thể truy cập hệ thống cùng một lúc. Trong trường hợp đó, nếu chúng tôi muốn tìm nạp danh sách người dùng hiện đang đăng nhập vào máy chủ MySQL của bạn, có thể thực hiện bằng cách truy vấn trên bảng processlist của information_schema. Lược đồ danh sách quy trình lưu trữ danh sách tất cả người dùng đã đăng nhập và dữ liệu liên quan đến từng thao tác đang được người dùng thực hiện trên cơ sở dữ liệu đó tại thời điểm cụ thể khi truy vấn được kích hoạt

Bước 1. Trước tiên, chúng tôi sẽ truy xuất toàn bộ danh sách quy trình hiện đang được thực thi bởi MySQL. Điều này có thể được thực hiện theo cách sau

Mã số

________số 8_______

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Bảng này chứa thông tin liên quan đến quy trình như id quy trình, người dùng, máy chủ, DB, Lệnh, Thời gian, Trạng thái và THÔNG TIN

Bước 2. Bây giờ, nếu bạn muốn lấy danh sách những người dùng hiện đang đăng nhập vào hệ thống, chúng ta có thể viết truy vấn bằng từ khóa DISTINCT theo cách sau

Mã số

SELECT
DISTINCT(USER)
FROM
information_schema.processlist;

đầu ra

Mysql lưu trữ thông tin người dùng ở đâu?

Giải trình. Đầu ra ở trên cho thấy rằng chỉ có một người dùng đăng nhập vào hệ thống của tôi là người dùng AcmeInfi

Kết luận – MySQL Hiển thị Người dùng

Thông tin liên quan đến người dùng như các trường liên quan đến mật khẩu, máy chủ lưu trữ và các đặc quyền khác được gán cho người dùng đều được lưu trữ trong bảng có tên người dùng nằm trong cơ sở dữ liệu MySQL. Chúng tôi có thể lấy thông tin người dùng bằng cách truy vấn nó. Để truy xuất người dùng hiện tại, có hai chức năng được cung cấp bởi MySQL là user() và current_user() gần như hoạt động giống như cách truy xuất tên người dùng và máy chủ lưu trữ. Hàm User() truy xuất địa chỉ cơ sở dữ liệu cùng với tên máy chủ và tên người dùng. Nếu bạn muốn xem danh sách tất cả người dùng hiện đang đăng nhập vào cơ sở dữ liệu, bạn có thể truy vấn bảng processlist của cơ sở dữ liệu information_schema

Bài viết được đề xuất

Đây là hướng dẫn về MySQL Show Users. Ở đây chúng tôi thảo luận về phần giới thiệu về MySQL Show Users, cách sử dụng truy xuất dữ liệu liên quan đến người dùng với ví dụ truy vấn. Bạn cũng có thể xem qua các bài viết liên quan khác của chúng tôi để tìm hiểu thêm –

Mysql lưu trữ tài khoản người dùng trong bảng nào?

MySQL lưu trữ thông tin xác thực trong bảng người dùng trong cơ sở dữ liệu hệ thống mysql.

Mysql lưu trữ dữ liệu như thế nào?

MySQL lưu trữ từng cơ sở dữ liệu (còn được gọi là lược đồ) dưới dạng thư mục con của thư mục dữ liệu trong hệ thống tệp bên dưới . Khi bạn tạo một bảng, MySQL lưu định nghĩa bảng trong một. tệp frm có cùng tên với bảng. Như vậy, khi bạn tạo một bảng có tên là MyTable, MySQL sẽ lưu định nghĩa bảng trong MyTable.