Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Izin Pembaruan MYSQL perlu memilih izin juga?

Itu mungkin tetapi masalah Anda adalah, bahwa UPDATE-Query Anda berisi klausa WHERE yang perlu menanyakan bidang setidaknya secara internal. Jadi dimaksudkan bahwa Anda memerlukan izin SELECT di sini.

Jika tidak, seseorang dapat mencoba menggunakan teknik brute force untuk mendapatkan isi tabel yang sebenarnya dengan menggunakan UPDATE-Query dan memeriksa apakah itu telah mempengaruhi baris.

Contoh:PERBARUI pelanggan SET some_irrellevant_field=1 WHERE user ='jimmy' AND sexual_orientation ='2'Segera setelah Anda memiliki jumlah baris yang terpengaruh> 0, Anda akan memiliki informasinya. Jadi akan sangat berbahaya jika membiarkannya.

Tetapi Anda dapat secara eksplisit memberikan izin untuk satu kolom. Katakanlah Anda ingin memperbarui hash kata sandi pengguna dengan id tertentu, Anda memberikan izin pilih pada kolom id ke pengguna database dan perbarui izin ke kolom hash.

Dialog izin khusus tabel PHPMyAdmin (maaf, beberapa bagian tangkapan layar dalam bahasa Jerman):

Maka ini akan berfungsi dengan baik:UPDATE users SET hash='0123456789abcdef' WHERE id =1234

Atau, jika izin tingkat kolom seharusnya tidak tersedia di DBMS atau mesin penyimpanan Anda, Anda masih dapat menggunakan tabel atau database terpisah dan menggabungkannya saat dibutuhkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus sejumlah besar data dari tabel besar

  2. Selesaikan posting hari ini tetapi setidaknya 20 menit lebih lama

  3. Bagaimana cara membuat tabel dua kolom PHP dengan nilai dari database?

  4. C# dan MySQL .NET Connector - Adakah cara untuk mencegah serangan SQL Injection di kelas generik?

  5. Kesalahan pada koneksi SSL PDO