Quyền của người dùng MySQL

Giới thiệu nhanh về Quyền người dùng trong Cơ sở dữ liệu MySQL

Hãy xem cách cấp quyền (được gọi là đặc quyền) cho người dùng cơ sở dữ liệu MySQL

Theo mặc định khi bạn tạo người dùng MySQL mới bằng cú pháp

CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';

người dùng không thể làm gì nhiều. Chúng tôi có thể nói rằng nó không thể làm bất cứ điều gì, thực sự.

Nó không thể đọc dữ liệu từ bất kỳ cơ sở dữ liệu hiện có nào, chưa nói đến việc sửa đổi dữ liệu. Và nó thậm chí không thể tạo một cơ sở dữ liệu mới.

Để khiến người dùng làm bất cứ điều gì, bạn phảicấp đặc quyềnvới nó.

Bạn có thể làm như vậy bằng cách sử dụngGRANTchỉ huy.

Chúng ta có thể sử dụngGRANT <permission>, sử dụng các từ khóa quyền sau:

  • CREATE
  • DROP
  • DELETE
  • INSERT
  • SELECT
  • UPDATE
  • ALL PRIVILEGES

Cấp đặc quyền tạo cơ sở dữ liệu mới cho người dùng

GRANT CREATE ON *.* TO '<username>'@'localhost';

Cấp đặc quyền cho người dùng để tạo bảng mới trong cơ sở dữ liệu cụ thể

GRANT CREATE ON <database>.* TO '<username>'@'localhost';

Cấp đặc quyền đọc (truy vấn) một cơ sở dữ liệu cụ thể cho người dùng

GRANT SELECT ON <database>.* TO '<username>'@'localhost';

Cấp đặc quyền để đọc một cơ sở dữ liệu cụ thểbàncho một người dùng

GRANT SELECT ON <database>.<table> TO '<username>'@'localhost';

Cấp đặc quyền chèn, cập nhật và xóa các hàng trong cơ sở dữ liệu cụ thể cho người dùng

GRANT INSERT, UPDATE, DELETE ON <database>.* TO '<username>'@'localhost';

Cấp quyền xóa bảng trong cơ sở dữ liệu cụ thể cho người dùng

GRANT DROP ON <database>.* TO '<username>'@'localhost';

Cấp đặc quyền xóa cơ sở dữ liệu cho người dùng

GRANT DROP ON *.* TO '<username>'@'localhost';

Cung cấp tất cả đặc quyền trên một cơ sở dữ liệu cụ thể cho người dùng

GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'localhost';

Cung cấp tất cả các đặc quyền cho người dùng

GRANT ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Thu hồi một đặc quyền

Ví dụ để thu hồiDROPđặc quyền trên<database>:

REVOKE DROP ON <database>.* TO '<username>'@'localhost';

Để thu hồi tất cả các đặc quyền, hãy chạy:

REVOKE ALL PRIVILEGES ON *.* TO '<username>'@'localhost';

Bạn có thể hình dung các đặc quyền của một người dùng bằng cách chạy:

SHOW GRANTS FOR '<username>'@'localhost';

Các hướng dẫn khác về cơ sở dữ liệu: