Cách tạo người dùng mới và cấp quyền trong MySQL
MySQL là phần mềm quản lý database open-souce giúp user lưu trữ, sắp xếp và truy xuất dữ liệu sau này. Nó có nhiều tùy chọn khác nhau để cấp cho user cụ thể các quyền theo sắc thái trong bảng và database — hướng dẫn này sẽ cung cấp một cái nhìn tổng quan ngắn gọn về một vài trong số nhiều tùy chọn.Những điểm nổi bật nghĩa là gì
Trong suốt hướng dẫn này, bất kỳ dòng nào mà user cần nhập hoặc tùy chỉnh sẽ được đánh dấu ! Phần còn lại chủ yếu phải là copy-and-paste.
Cách tạo user mới
Trong Phần 1 của Hướng dẫn sử dụng MySQL , ta đã thực hiện tất cả chỉnh sửa trong MySQL với quyền là user root , có toàn quyền truy cập vào tất cả các database . Tuy nhiên, trong trường hợp có thể yêu cầu nhiều hạn chế hơn, có nhiều cách để tạo user có quyền tùy chỉnh.
Hãy bắt đầu bằng cách tạo một user mới trong MySQL shell:
- CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Lưu ý: Khi thêm user trong MySQL shell trong hướng dẫn này, ta sẽ chỉ định server của user là localhost
chứ không phải địa chỉ IP của server . localhost
là tên server nghĩa là “máy tính này” và MySQL xử lý tên server cụ thể này một cách đặc biệt: khi user có server đó đăng nhập vào MySQL, nó sẽ cố gắng kết nối với server local bằng cách sử dụng file socket Unix. Do đó, localhost
thường được sử dụng khi bạn định kết nối bằng SSHing vào server của bạn hoặc khi bạn đang chạy client mysql
local để kết nối với server MySQL local .
Tại thời điểm newuser này không có quyền làm gì với database . Trong thực tế, ngay cả khi newuser cố gắng đăng nhập (với password , mật khẩu), họ sẽ không thể đạt được vỏ MySQL.
Do đó, điều đầu tiên cần làm là cung cấp cho user quyền truy cập thông tin họ cần .
- GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
Các dấu hoa thị trong lệnh này đề cập đến database và bảng (tương ứng) mà họ có thể truy cập — lệnh cụ thể này cho phép user đọc, chỉnh sửa, thực thi và thực hiện tất cả các việc trên tất cả các database và bảng.
Xin lưu ý trong ví dụ này, ta được cấp giấy newuser đầy đủ quyền truy cập root để tất cả mọi thứ trong database của ta . Mặc dù điều này hữu ích cho việc giải thích một số khái niệm MySQL, nhưng nó có thể không thực tế đối với hầu hết các trường hợp sử dụng và có thể khiến bảo mật database của bạn gặp rủi ro cao.
Khi bạn đã hoàn tất các quyền mà bạn muốn cài đặt cho user mới của bạn , hãy luôn nhớ reload tất cả các quyền .
- FLUSH PRIVILEGES;
Các thay đổi bây giờ sẽ có hiệu lực.
Cách cấp quyền cho user khác nhau
Dưới đây là danh sách ngắn các quyền phổ biến khác mà user có thể tận hưởng.
- TẤT CẢ CÁC QUYỀN RIÊNG TƯ- như ta đã thấy trước đây, điều này sẽ cho phép user MySQL toàn quyền truy cập vào database được chỉ định (hoặc nếu không có database nào được chọn, quyền truy cập global trên toàn hệ thống)
- CREATE- cho phép họ tạo các bảng hoặc database mới
- DROP- cho phép họ xóa bảng hoặc database
- DELETE- cho phép họ xóa các hàng khỏi bảng
- INSERT- cho phép họ chèn các hàng vào bảng
- SELECT- cho phép họ sử dụng
SELECT
để đọc qua database - CẬP NHẬT- cho phép họ cập nhật các hàng trong bảng
- TÙY CHỌN CẤP- cho phép họ cấp hoặc xóa các quyền của user khác
Để cung cấp cho một user cụ thể quyền, bạn có thể sử dụng khung này:
- GRANT type_of_permission ON database_name.table_name TO ‘username’@'localhost’;
Nếu bạn muốn cấp cho họ quyền truy cập vào bất kỳ database nào hoặc vào bất kỳ bảng nào, hãy đảm bảo đặt dấu hoa thị (*) vào vị trí của tên database hoặc tên bảng.
Mỗi khi bạn cập nhật hoặc thay đổi quyền, hãy chắc chắn sử dụng lệnh Flush Privileges.
Nếu bạn cần thu hồi quyền, cấu trúc gần như giống hệt với việc cấp quyền đó:
- REVOKE type_of_permission ON database_name.table_name FROM ‘username’@‘localhost’;
Lưu ý khi thu hồi quyền, cú pháp yêu cầu bạn sử dụng FROM
, thay vì TO
như ta đã sử dụng khi cấp quyền.
Bạn có thể xem lại các quyền hiện tại của user bằng cách chạy như sau:
- SHOW GRANTS FOR 'username'@'localhost';
Cũng giống như bạn có thể xóa database với DROP, bạn có thể sử dụng DROP để xóa hoàn toàn một user :
- DROP USER ‘username’@‘localhost’;
Để kiểm tra user mới của bạn, hãy đăng xuất bằng lệnh :
- quit
và đăng nhập lại bằng lệnh này trong terminal:
- mysql -u [username] -p
Kết luận
Sau khi hoàn thành hướng dẫn này, bạn sẽ hiểu cách thêm user mới và cấp cho họ nhiều quyền khác nhau trong database MySQL. Từ đây, bạn có thể tiếp tục khám phá và thử nghiệm các cài đặt quyền khác nhau cho database của bạn hoặc bạn có thể cần tìm hiểu thêm về một số cấu hình MySQL cấp cao hơn.
Để biết thêm thông tin về những điều cơ bản của MySQL, ta khuyến khích bạn xem các hướng dẫn sau:
- Cách tạo và quản lý database trong MySQL và MariaDB trên server cloud
- Cách nhập và xuất database và đặt lại password root trong MySQL
- Cách di chuyển database MySQL giữa hai server
- Cách cài đặt Master Slave Replication trong MySQL
Các tin liên quan
Làm việc với JSON trong MySQL2020-09-15
Cách cài đặt MySQL trên Ubuntu 20.04
2020-07-30
Cách cài đặt MySQL trên Ubuntu 20.04 [Quickstart]
2020-07-30
Cách triển khai Laravel 7 và MySQL trên Kubernetes bằng Helm
2020-06-23
Cách đặt lại mật khẩu gốc MySQL hoặc MariaDB của bạn
2020-05-05
Cách sử dụng Kiểu dữ liệu MySQL BLOB để lưu trữ image bằng PHP trên Ubuntu 18.04
2020-05-05
Cách cài đặt MySQL trên Ubuntu 18.04
2020-04-21
Cách cài đặt MySQL trên CentOS 8
2020-03-18
Cách triển khai phân trang trong MySQL với PHP trên Ubuntu 18.04
2020-01-29
Cách tối ưu hóa truy vấn MySQL với bộ đệm ProxySQL trên Ubuntu 16.04
2019-12-30