sql >> Database teknologi >  >> RDS >> Mysql

MYSQL Update tilladelse skal du også vælge tilladelse?

Det er muligt, men dit problem er, at din UPDATE-forespørgsel indeholder en WHERE-klausul, som skal forespørge felterne i det mindste internt. Så det er meningen, at du skal bruge SELECT-tilladelse her.

Ellers kunne man prøve at bruge brute force-teknikker til at få det faktiske indhold af tabellen ved at bruge en UPDATE-Query og tjekke, om det har påvirket rækker.

Eksempel:OPDATERE kunder SET some_irrlevant_field=1 HVOR bruger ='jimmy' OG sexual_orientation ='2'Så snart du har en berørt rækker tæller> 0, vil du have oplysningerne. Så det ville muligvis være for farligt at tillade det.

Men du kan udtrykkeligt give tilladelser til enkelte kolonner. Lad os sige, at du vil opdatere adgangskode-hashen for en bruger med et bestemt id, du giver tilladelse til at vælge id-kolonnen til databasebrugeren og opdatere tilladelsen til hash-kolonnen.

PHPMyAdmin tabelspecifik tilladelsesdialog (beklager, nogle dele af skærmbillederne er på tysk):

Så burde dette fungere fint:OPDATERE brugere SET hash='0123456789abcdef' WHERE id =1234

Alternativt, hvis tilladelse på kolonneniveau ikke skulle være tilgængelig i din DBMS eller storage-motor, kan du stadig bruge en separat tabel eller database og tilslutte den, når det er nødvendigt.



  1. as3, MySQL PHP-forbindelse

  2. Libpuzzle Indeksering af millioner af billeder?

  3. Jeg kan ikke bruge alias i sql delete

  4. ORA-00903:ugyldigt tabelnavn på PreparedStatement