sql >> Database >  >> RDS >> Mysql

MYSQL Update toestemming nodig om ook toestemming te selecteren?

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.



  1. MySQL ResultSet schuifbaar/bijwerkbaar werkt niet zoals verwacht

  2. Geautomatiseerd testen van PostgreSQL-back-ups

  3. Nog een UnicodeEncodeError bij gebruik van de panda-methode to_sql met MySQL

  4. werk met json in orakel