Hướng dẫn liệt kê các user và quyền hạn của user trong MySQL
Wednesday August 7th, 2024 Blog, Cloud, , Tin tứcHướng dẫn liệt kê các user và quyền hạn của user trong MySQL
Qúy khách 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
– Giả sử trong hệ thống dịch vụ 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 |
+----------+------------+
rows in set (0.00 sec)
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.
Cấu trúc câu lệnh
SHOW GRANTS FOR [username]@[host]
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 quý khách 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'|
+-----------------------------------------------------------------------+
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'@'%'.... |
+------------------------------------------------------+
mysql> SHOW GRANTS FOR 'root'@'%';
+------------------------------------------------------+
| Grants for root@% |
+------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'.... |
+------------------------------------------------------+
– Quý khách 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“.
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 |
+--------------------+---------------+-------------------------+--------------+
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 quý khách đã xong phần hướng dẫn này chúc quý khách thành công.