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

MYSQL Cập nhật quyền cũng cần phải chọn quyền?

Có thể nhưng vấn đề của bạn là CẬP NHẬT-Truy vấn của bạn chứa mệnh đề WHERE cần phải truy vấn các trường ít nhất là nội bộ. Vì vậy, mục đích là bạn cần quyền CHỌN ở đây.

Nếu không, người ta có thể thử sử dụng kỹ thuật brute force để lấy nội dung thực tế của bảng bằng cách sử dụng CẬP NHẬT-Truy vấn và kiểm tra xem nó có ảnh hưởng đến các hàng hay không.

Ví dụ:CẬP NHẬT khách hàng SET some_irrellevant_field =1 WHERE user ='jimmy' AND sex_orientation ='2'Khi bạn có số hàng bị ảnh hưởng> 0, bạn sẽ có thông tin. Vì vậy, sẽ rất nguy hiểm nếu cho phép điều đó.

Nhưng bạn có thể cấp quyền một cách rõ ràng cho các cột đơn. Giả sử bạn muốn cập nhật mã băm mật khẩu của người dùng với một id nhất định, bạn cấp quyền chọn trên cột id cho người dùng cơ sở dữ liệu và quyền cập nhật cho cột băm.

Hộp thoại cho phép bảng PHPMyAdmin cụ thể (xin lỗi, một số phần của ảnh chụp màn hình bằng tiếng Đức):

Sau đó, điều này sẽ hoạt động tốt:CẬP NHẬT người dùng SET hash ='0123456789abcdef' WHERE id =1234

Ngoài ra, nếu quyền cấp cột không có sẵn trong DBMS hoặc công cụ lưu trữ của bạn, bạn vẫn có thể sử dụng một bảng hoặc cơ sở dữ liệu riêng biệt và kết hợp nó khi cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hậu quả có thể xảy ra khi tăng chiều dài varchar trong MySql?

  2. mysql_real_escape_string là không xác định

  3. Cách chuyển kết quả mysql dưới dạng jSON qua ajax

  4. Tại sao một số kết nối mysql lại chọn dữ liệu cũ làm cơ sở dữ liệu mysql sau khi xóa + chèn?

  5. Tùy chọn không được hỗ trợ được cung cấp cho mysql_options ()