Mysql
 sql >> база данни >  >> RDS >> Mysql

Разрешение за актуализиране на MYSQL също трябва да изберете разрешение?

Възможно е, но вашият проблем е, че вашата UPDATE-Query съдържа клауза WHERE, която трябва да запитва полетата поне вътрешно. Така че е предвидено, че имате нужда от разрешение SELECT тук.

В противен случай може да се опита да използва техники за груба сила, за да получи действителното съдържание на таблицата, като използва UPDATE-Query и проверява дали е засегнало редовете.

Пример:АКТУАЛИЗИРАНЕ на клиенти ЗАДАВАТЕ some_irrellevant_field=1 КЪДЕ потребител ='jimmy' И сексуална ориентация ='2' Веднага щом имате засегнат брой редове> 0, ще имате информацията. Така че вероятно би било твърде опасно да се допусне това.

Но можете изрично да дадете разрешения за отделни колони. Да приемем, че искате да актуализирате хеша на паролата на потребител с определен идентификатор, давате разрешение за избор на колоната id на потребителя на базата данни и разрешение за актуализиране на хеш колона.

Диалогов прозорец за специфично разрешение на таблицата PHPMyAdmin (за съжаление някои части от екранните снимки са на немски):

Тогава това трябва да работи добре:UPDATE потребители SET hash='0123456789abcdef' WHERE id =1234

Като алтернатива, ако разрешението на ниво колона не трябва да е налично във вашата СУБД или машина за съхранение, все пак можете да използвате отделна таблица или база данни и да се присъедините към нея, когато е необходимо.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Функция MySQL CRC32() – Примери

  2. mySQL groupconcat връща BLOB xxxB / Kib

  3. Когато използвате NetBeans за отстраняване на грешки в PHP скрипт за модифициране на записи в таблицата, 'affected_rows' ще се промени от 1 на -1

  4. Rails 3.2.6 и създаване на изгледи на база данни чрез миграции

  5. Python zlib изход, как да се възстанови от mysql utf-8 таблица?