Tôi đã tìm thấy tổng quan có trong bài viết này thậm chí còn hữu ích hơn tài liệu MySQL thực tế để mô tả bức tranh lớn về cách các đặc quyền MySQL được cấp hoặc từ chối.
Ý chính của bài viết tổng quan là các đặc quyền được kiểm soát bởi một loạt các bảng quyền ngày càng chi tiết hơn trong mysql
cơ sở dữ liệu:mysql.user
, mysql.db
, mysql.host
, mysql.tables_priv
, mysql.columns_priv
, mysql.procs_priv
. Quy tắc chung là giá trị "Y" cho một đặc quyền trong bảng chi tiết hơn sẽ ghi đè giá trị "N" trong bảng chi tiết hơn. Vì vậy, chiến lược được đề xuất là bắt đầu bằng cách từ chối hầu hết các đặc quyền trong người dùng user
bảng (cung cấp khả năng kiểm soát thô nhất), và sau đó chỉ thực hiện các ghi đè cụ thể mà bạn muốn trong các bảng chi tiết hơn.
Đặc biệt, có một đặc quyền được gọi là SHOW_DATABASES
được xác định bởi Show_db_priv
trong cột mysql.user
bàn; bạn sẽ muốn đặt điều này thành "N" cho người dùng được đề cập (và như được mô tả ở trên, bạn có thể muốn đặt hầu hết các quyền khác trong bảng người dùng thành "N") và sau đó chỉ cấp các đặc quyền mà người dùng đó thực sự cần trong mysql.db
hoặc mysql.tables_priv
bảng hoặc bất cứ thứ gì thích hợp cho trường hợp cụ thể của bạn.