Het is mogelijk, maar uw probleem is dat uw UPDATE-query een WHERE-clausule bevat die de velden in ieder geval intern moet opvragen. Het is dus de bedoeling dat je hier SELECT-toestemming nodig hebt.
Anders zou men kunnen proberen brute force-technieken te gebruiken om de werkelijke inhoud van de tabel te krijgen door een UPDATE-query te gebruiken en te controleren of deze rijen heeft beïnvloed.
Voorbeeld:UPDATE klanten SET some_irrellevant_field=1 WHERE user ='jimmy' AND sexual_orientation ='2'Zodra u een getroffen rijentelling> 0 heeft, heeft u de informatie. Het zou dus mogelijk te gevaarlijk zijn om dat toe te staan.
Maar u kunt expliciet toestemming geven voor enkele kolommen. Stel dat u de wachtwoordhash van een gebruiker met een bepaalde id wilt bijwerken, u geeft de gebruiker van de database select toestemming voor de id-kolom en werkt de toestemming voor de hash-kolom bij.
Dialoogvenster met specifieke rechten voor PHPMyAdmin-tabel (sorry, sommige delen van de schermafbeeldingen zijn in het Duits):
Dan zou dit goed moeten werken:UPDATE gebruikers SET hash='0123456789abcdef' WHERE id =1234
Als alternatief, als toestemming op kolomniveau niet beschikbaar zou zijn in uw DBMS of opslagengine, kunt u nog steeds een aparte tabel of database gebruiken en deze toevoegen wanneer dat nodig is.