Hướng dẫn mysql list user - người dùng danh sách mysql

Th8 29, 2022

Hai G.

2ít nhất Đọc

MySQL là một trong những ứng dụng quản lý database phổ biến nhất thế giới. Nó có nhiều tính năng đáng tin cậy, nhanh và hiệu quả. Tuy nhiên, như những ứng dụng khác, bạn chỉ có thể tối đa hóa khả năng của nó nếu dùng đúng cách. Nếu bạn mới quản lý database, bạn cần biết cách show user MySQL để ít nhất biết được rằng có bao nhiêu user quản lý database và những user này có quyền gì.

Cách dễ nhất để tăng bảo mật cho MySQL là tạo user với quyền hạn chế lên database. Trong bài hướng dẫn này, chúng tôi sẽ chỉ bạn cách liệt kê toàn bộ người dùng trong MySQL – show user MySQl để quản lý database hiệu quả hơn trong môi trường Linux VPS.

Vì sao cần tạo user trong MySQL?

Khi cài đặt MySQL, user đầu tiên được tạo là root user – administrator MySQL. Root user có quyền làm mọi chuyện trên MySQL database, vì vậy rất không tiện nếu người khác cũng sử dụng chung tài khoản này để quản lý database với bạn.

Mặc khác, hacker cũng luôn thử đăng nhập bằng root user để đánh cắp thông tin chứa trên database. Thậm chí là hủy dịch vụ và dữ liệu của nó.

Vậy, sysadmin luôn phải tạo user để xác định rõ quyền của database mà user có thể truy cập vào bảng nào. Với cách này, nếu user bị tấn công, mức độ ảnh hưởng cũng hạn chế hoặc có thể xử lý được. Trong phần tiếp theo chúng tôi sẽ chỉ bạn cách liệt kê toàn bộ người dùng MySQL ra – show user mysql

Cách Show User MySQL trên Linux

Cách này là dễ nhất:

  1. Đăng nhập qua SSH

Để truy cập server thông qua SSH, bạn có thể đọc thêm bài hướng dẫn này nếu chưa biết!

ssh your-user@your-server
  1. Kiểm tra xem mình có quyền root không

Sau khi đã truy cập server, chúng ta sẽ vào MySQL console. Để làm vậy, bạn cần có quyền root trước. Điền lệnh sau để sử dụng quyền root:

sudo mysql -u root -p
  1. Gõ MySQL Root Password

Sau đó bạn cần nhập MySQL root password. Nó sẽ khác với system root password.

Sau khi đã vào trong MySQL console với user root, bạn có thể thực thi lệnh liệt kê user.

  1. Show MySQL Users

Giờ bạn có thể show mysql user bằng lệnh MySQL sau:

mysql> SELECT user FROM mysql.user;

Kết quả bạn sẽ thấy toàn bộ user [người dùng] đã tạo torng MySQl.

  1. Thêm cột Host [tùy chọn]

Có thể có người dùng trùng nhau. Vì MySQL lọc truy cập vào server qua IP address. Nên bạn có thể thêm một cột tên host:

Mysql> SELECT user,host FROM mysql.user;

Với lệnh này, bạn có thể thấy MySQL user nào đến từ host hoặc IP nào, họ có quyền truy cập

Lời kết

Quản trị database server không phải. Bạn phải thật cẩn thận tạo và phân quyền người dùng cho đúng. GIờ bạn đã biết cách làm thế nào để show MySQL user trong database, nhưng bạn vẫn có thể đọc thêm tài liệu chính thức của MySQL để biết cách sử dụng quyền mở rộng kiến thức của bạn!

Hải G. là chuyên gia quản lý, vận hành các dịch vụ website. Anh có nhiều năm kinh nghiệm về VPS, Hosting, technical SEO, CMS. Đặc biệt yêu thích WordPress và đã dùng nó hơn 5 năm nay. Sở thích của anh là đọc, viết blog, đi du lịch và tư vấn cho các bạn trẻ khởi nghiệp.

Bạn có thể thực hiện việc liệt kê các danh sách các user đã được tạo ra trong dịch vụ MySQL bằng cách query thông tin đến table của MySQL có tên là “mysql.users” và bạn cũng hoàn toàn có thể liệt kê các quyền hạn mà từng user được phép tương tác với database cụ thể trong MySQl. 1. Liệt kê các user đang có trong dịch vụ MySQL

1. Liệt kê các user đang có trong dịch vụ MySQL

– Giả sử trong hệ thống dịch vụ của mình chỉ có 3 user tương ứng 3 host khác nhau.

mysql> SELECT user, host FROM mysql.user;
+----------+------------+
| user     | host       |
+----------+------------+
| cuongqc  | %          |
| root     | %          |
| root     | localhost  |
+----------+------------+
3 rows in set [0.00 sec]


2. Liệt kê các quyền hạn được cấp cho 1 user

– Trong dịch vụ MySQL, bạn có thể sử dụng lệnh “SHOW GRANTS” để hiển thị thông tin về phân quyền được gán cho user. Lệnh này sẽ hiển thị đầy đủ những quyền hạn nào đã được gán cho user trước đó được gán quyền bằng lệnh “GRANT”.– Để coi được quyền của 1 user khác, bạn phải có quyền sử dụng “SELECT” trong Cơ Sở Dữ Liệu MySQL.
– Để coi được quyền của 1 user khác, bạn phải có quyền sử dụng “SELECT” trong Cơ Sở Dữ Liệu MySQL.

Cấu trúc câu lệnh

SHOW GRANTS FOR [username]@[host]

Chú thích :– username : tên của user mysql mà bạn muốn hiển thị thông tin. – host : gồm “%”, “127.0.0.1” và “localhost” . Các giá trị này đại diện cho cổng kết nối tới CSDL của dịch vụ như “127.0.0.1” thì kết nối thông qua socket 127.0.0.1:3306 ; “localhost” thì thông qua socket pipe ; % thì có thể kết nối từ bất cứ IP local hay public hoặc socket đều được. Phần này các bạn sẽ cần coi lại ở phần khởi tạo User trong MySQL. :
username : tên của user mysql mà bạn muốn hiển thị thông tin.
– host : gồm “%”, “127.0.0.1” và “localhost” . Các giá trị này đại diện cho cổng kết nối tới CSDL của dịch vụ như “127.0.0.1” thì kết nối thông qua socket 127.0.0.1:3306 ; “localhost” thì thông qua socket pipe ; % thì có thể kết nối từ bất cứ IP local hay public hoặc socket đều được. Phần này các bạn sẽ cần coi lại ở phần khởi tạo User trong MySQL.

Ví dụ 1::

mysql> SHOW GRANTS FOR 'cuongquach'@'localhost';
+-----------------------------------------------------------------------+
| Grants for cuongquach@localhost                                       |
+-----------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'cuongquach'@'localhost'                        |
| GRANT ALL PRIVILEGES ON `cuongquachp_db`.* TO 'cuongquach'@'localhost'|
+-----------------------------------------------------------------------+


Ví dụ 2::

mysql> SHOW GRANTS FOR 'root'@'%';
+------------------------------------------------------+
| Grants for root@%                                    |
+------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'....        |
+------------------------------------------------------+

– Bạn cũng có thể sử dụng cách khác để liệt kê quyền hạn của các user bằng cách query table “user_privileges” nằm trong CSDL “information_schema“. user_privileges” nằm trong CSDL “information_schema“.

mysql> SELECT * FROM information_schema.user_privileges;
+--------------------+---------------+-------------------------+--------------+
| GRANTEE | TABLE_CATALOG | PRIVILEGE_TYPE | IS_GRANTABLE |
+--------------------+---------------+-------------------------+--------------+
| 'root'@'localhost' | NULL | SELECT | YES |
| 'root'@'localhost' | NULL | INSERT | YES |
| 'root'@'localhost' | NULL | UPDATE | YES |
| 'root'@'localhost' | NULL | DELETE | YES |
| 'root'@'localhost' | NULL | CREATE | YES |
| 'root'@'localhost' | NULL | DROP | YES |
| 'root'@'localhost' | NULL | RELOAD | YES |
| 'root'@'localhost' | NULL | SHUTDOWN | YES |
| 'root'@'localhost' | NULL | PROCESS | YES |
| 'root'@'localhost' | NULL | FILE | YES |
| 'root'@'localhost' | NULL | REFERENCES | YES |
| 'root'@'localhost' | NULL | INDEX | YES |
| 'root'@'localhost' | NULL | ALTER | YES |
| 'root'@'localhost' | NULL | SHOW DATABASES | YES |
| 'root'@'localhost' | NULL | SUPER | YES |
| 'root'@'localhost' | NULL | CREATE TEMPORARY TABLES | YES |
| 'root'@'localhost' | NULL | LOCK TABLES | YES |
| 'root'@'localhost' | NULL | EXECUTE | YES |
| 'root'@'localhost' | NULL | REPLICATION SLAVE | YES |
| 'root'@'localhost' | NULL | REPLICATION CLIENT | YES |
| 'root'@'localhost' | NULL | CREATE VIEW | YES |
| 'root'@'localhost' | NULL | SHOW VIEW | YES |
| 'root'@'localhost' | NULL | CREATE ROUTINE | YES |
| 'root'@'localhost' | NULL | ALTER ROUTINE | YES |
| 'root'@'localhost' | NULL | CREATE USER | YES |
| 'root'@'localhost' | NULL | EVENT | YES |
| 'root'@'localhost' | NULL | TRIGGER | YES |
| 'root'@'%' | NULL | USAGE | NO |
| 'cuongquach'@'localhost' | NULL | USAGE | NO |
+--------------------+---------------+-------------------------+--------------+

Như vậy chúng ta đã xong phần hướng dẫn này chúc các bạn thành công.

Bài Viết Liên Quan

Chủ Đề