Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL:Làm thế nào để tránh người dùng thậm chí nhìn thấy tôi có các DB khác và cấp quyền truy cập chọn lọc vào một chế độ xem trên một DB?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL trả về các hàng trùng lặp

  2. Bảng là 'chỉ đọc'

  3. Bản ghi đếm số lần tối đa xuất hiện trong bảng Cơ sở dữ liệu

  4. Tự động triển khai MySQL hoặc Cụm Postgres của bạn từ bản sao lưu

  5. Có phải MySQL đang phá vỡ tiêu chuẩn bằng cách cho phép chọn các cột không phải là một phần của nhóm theo mệnh đề?