MySQL là một cơ sở dữ liệu quan hệ đối tượng mã nguồn mở được xây dựng chú trọng đến tốc độ và độ tin cậy. Cộng đồng nhà phát triển lớn và tích cực của nó đã tạo ra nhiều ứng dụng, công cụ và thư viện của bên thứ ba giúp mở rộng chức năng của MySQL
Các đặc quyền được cấp cho người dùng MySQL xác định những thao tác mà người dùng đó có thể thực hiện. Các đặc quyền của MySQL được tổ chức phù hợp
Đặc quyền quản trị cho phép người dùng quản lý các hoạt động của chính máy chủ MySQL, bao gồm các đặc quyền của người dùng khác. Còn được gọi là đặc quyền toàn cầu
Đặc quyền cơ sở dữ liệu cho phép người dùng quản lý một cơ sở dữ liệu cụ thể và tất cả các đối tượng trong cơ sở dữ liệu đó. Chúng có thể được cấp trên toàn cầu hoặc chỉ cho các cơ sở dữ liệu cụ thể
Đặc quyền đối tượng cơ sở dữ liệu cho phép người dùng quản lý các đối tượng cụ thể trong cơ sở dữ liệu. Các đặc quyền này có thể được cấp cho các đối tượng cụ thể trong cơ sở dữ liệu, cho toàn bộ cơ sở dữ liệu hoặc toàn cầu
Hạn chế đặc quyền đối với Cơ sở dữ liệu được quản lý MySQL của DigitalOcean
Theo mặc định, các cụm cơ sở dữ liệu MySQL đi kèm với một người dùng, doadmin
, có toàn quyền truy cập vào mọi cơ sở dữ liệu bạn tạo. Thay vì sử dụng doadmin
để truy cập cơ sở dữ liệu, chúng tôi khuyên bạn nên tạo thêm người dùng chỉ có các đặc quyền mà họ cần, tuân theo nguyên tắc đặc quyền tối thiểu
MySQL đặt các đặc quyền dựa trên tên tài khoản, bao gồm tên người dùng và tên máy chủ ở định dạng
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
0. Bạn có thể chỉ định máy chủ theo tên [
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
1], địa chỉ IP [
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
2] hoặc sử dụng ký tự đại diện [
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
3, khớp với tất cả máy chủ]. Tìm hiểu thêm trong tài liệu của MySQL về cách chỉ định tên tài khoảnĐể đảm bảo tính ổn định của nền tảng, Cơ sở dữ liệu MySQL được quản lý của DigitalOcean có một số hạn chế mặc định đối với đặc quyền của người dùng không thể thay đổi. Người dùng không thể chèn hoặc chỉnh sửa bất kỳ cơ sở dữ liệu nào sau đây, nhưng có thể chọn từ chúng
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
Người dùng trên Cơ sở dữ liệu MySQL được quản lý của DigitalOcean không thể chèn, chỉnh sửa hoặc chọn từ cơ sở dữ liệu
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
8Hiện tại, bạn không thể thay đổi đặc quyền của người dùng trong bảng điều khiển, vì vậy, để làm như vậy, bạn cần sử dụng ứng dụng khách MySQL dòng lệnh như
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
4. Sau khi bạn tạo người dùng trong cụm, hãy kết nối với cụm với tên doadmin
hoặc người dùng quản trị khác. Từ đây, các lệnh bạn cần thực hiện tùy thuộc vào quyền mà bạn muốn người dùng cóCấp đặc quyền
Để cấp tất cả các đặc quyền trên một cơ sở dữ liệu cụ thể cho người dùng, bạn có thể sử dụng các lệnh sau
GRANT ALL ON example_database.* TO 'example_user'@'%';
Bạn không thể tạo thêm người dùng quản trị. Tuy nhiên, bạn có thể cấp cho người dùng toàn quyền truy cập vào tất cả các cơ sở dữ liệu mà bạn đã tạo bằng cách chạy lệnh
GRANT SELECT ON example_database TO 'example_user'@'%';
1 cho mỗi cơ sở dữ liệuĐể cấp đặc quyền quản trị người dùng cho một cơ sở dữ liệu cụ thể, bạn cũng phải cấp cho họ đặc quyền
GRANT SELECT ON example_database TO 'example_user'@'%';
2. Đây là một ví dụ
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
Để cấp quyền chỉ đọc cho người dùng trên cơ sở dữ liệu, bạn có thể sử dụng lệnh sau
GRANT SELECT ON example_database TO 'example_user'@'%';
Để chỉ cấp đặc quyền cho người dùng trên một bảng cụ thể trong cơ sở dữ liệu, bạn có thể sử dụng lệnh sau
GRANT SELECT ON example_database TO 'example_user'@'%';
mysql> GRANT INSERT ON example_database.example_table TO 'example_user'@'%';
Cấp đặc quyền bổ sung cho người dùng không xóa bất kỳ đặc quyền hiện có nào. Để , sử dụng lệnh
GRANT SELECT ON example_database TO 'example_user'@'%';
3Thu hồi đặc quyền
Thu hồi các đặc quyền khá giống với việc cấp cho chúng. Để thu hồi đặc quyền của người dùng, hãy sử dụng cú pháp lệnh
GRANT SELECT ON example_database TO 'example_user'@'%';
4. Ví dụ: để thu hồi tất cả các đặc quyền trên một cơ sở dữ liệu cụ thể, hãy sử dụng lệnh sau
REVOKE ALL ON example_database FROM 'example_user'@'%';
Nếu người dùng đã có đặc quyền và bạn muốn thu hồi chúng nhưng vẫn cho phép người dùng đọc cơ sở dữ liệu, bạn có thể sử dụng lệnh sau
REVOKE ALL ON example_database FROM 'example_user'@'%';
mysql> GRANT SELECT ON example_database TO 'example_user'@'%';
Xem đặc quyền
Để xem các đặc quyền cho người dùng hiện tại, bạn có thể sử dụng lệnh
GRANT SELECT ON example_database TO 'example_user'@'%';
5 và sẽ thấy đầu ra tương tự như sau, hiển thị các đặc quyền mặc định cho người dùng doadmin