Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Uprawnienia MYSQL Update muszą również wybrać uprawnienia?

Jest to możliwe, ale twoim problemem jest to, że twoje zapytanie UPDATE zawiera klauzulę WHERE, która wymaga przynajmniej wewnętrznego zapytania o pola. Dlatego zakłada się, że potrzebujesz tutaj uprawnienia SELECT.

W przeciwnym razie można spróbować użyć technik brute force, aby uzyskać rzeczywistą zawartość tabeli, używając UPDATE-Query i sprawdzając, czy ma to wpływ na wiersze.

Przykład:UPDATE klienci SET some_irrellevant_field=1 WHERE user ='jimmy' AND sexual_orientation ='2'Jak tylko liczba wierszy, których dotyczy problem, będzie> 0, otrzymasz informacje. Więc prawdopodobnie byłoby to zbyt niebezpieczne.

Ale możesz jawnie nadać uprawnienia do pojedynczych kolumn. Powiedzmy, że chcesz zaktualizować skrót hasła użytkownika o określonym identyfikatorze, dajesz uprawnienia wyboru w kolumnie identyfikatora użytkownikowi bazy danych i aktualizujesz uprawnienia do kolumny skrótu.

Okno dialogowe uprawnień dla tabeli PHPMyAdmin (przepraszamy, niektóre części zrzutów ekranu są w języku niemieckim):

To powinno działać poprawnie:UPDATE users SET hash='0123456789abcdef' WHERE id =1234

Alternatywnie, jeśli uprawnienia na poziomie kolumny nie powinny być dostępne w twoim DBMS lub silniku pamięci masowej, możesz nadal użyć oddzielnej tabeli lub bazy danych i dołączyć do niej, gdy jest to potrzebne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Migracja Laravel — naruszenie ograniczenia integralności:1452 Nie można dodać lub zaktualizować wiersza podrzędnego:ograniczenie klucza obcego nie powiodło się

  2. Eksport MySQL do INTO OUTFILE --secure-file-priv błąd podczas używania set directory

  3. MySQL — połączenie trwałe a pula połączeń

  4. Jak debugować przekroczony limit czasu oczekiwania blokady na MySQL?

  5. Błąd połączenia PDO SSL