sql >> Base de Datos >  >> RDS >> Mysql

¿El permiso de actualización de MYSQL también necesita seleccionar el permiso?

Es posible, pero su problema es que su consulta de ACTUALIZACIÓN contiene una cláusula WHERE que necesita consultar los campos al menos internamente. Por lo tanto, se pretende que necesite el permiso SELECCIONAR aquí.

De lo contrario, se podría intentar usar técnicas de fuerza bruta para obtener el contenido real de la tabla usando una Consulta de ACTUALIZACIÓN y verificando si ha afectado las filas.

Ejemplo:ACTUALIZAR clientes SET some_irrellevant_field=1 WHERE user ='jimmy' AND sexual_orientation ='2' Tan pronto como tenga un recuento de filas afectadas> 0, tendrá la información. Así que posiblemente sería demasiado peligroso permitir eso.

Pero puede otorgar permisos explícitamente para columnas individuales. Digamos que desea actualizar el hash de la contraseña de un usuario con una determinada identificación, otorga permiso de selección en la columna de identificación al usuario de la base de datos y permiso de actualización a la columna hash.

Diálogo de permiso específico de la tabla de PHPMyAdmin (lo siento, algunas partes de las capturas de pantalla están en alemán):>

Entonces esto debería funcionar bien:ACTUALIZAR usuarios SET hash='0123456789abcdef' WHERE id =1234

Alternativamente, si el permiso de nivel de columna no está disponible en su DBMS o motor de almacenamiento, aún puede usar una tabla o base de datos separada y unirla cuando sea necesario.