Supongamos que hay un sitio web llamado mysite.com -
Mi pregunta es cómo hago posible que Jane...
Además, ¿qué roles generales se asignan a Jane y John con respecto a la base de datos? Obviamente, no pueden conectarse a MySQL como usuarios root/admin. ¿Cómo manejar esta situación?
No intentaría controlar esto al nivel de los usuarios de la base de datos. Realmente, los usuarios de su base de datos son estrictamente para diferentes piezas de código que interactúan directamente con su base de datos. Dentro de su código de back-end, querrá verificar qué usuario de su software ha iniciado sesión y luego restringirlo para que solo lea o escriba ciertas filas o datos.
No hay forma de configurar un usuario de MySQL para que pueda leer/escribir algunas filas de una tabla y no otras.
Para ampliar esto... Es posible que tenga un software que le permita a Jane leer cierta información pero no escribir nada. Esa pieza de software debe conectarse a su base de datos como un usuario de MySQL con el permiso mínimo necesario para realizar su tarea. Por ejemplo, puede seleccionar pero no actualizar o insertar. Otra pieza de software puede permitir a los usuarios editar filas, por lo que configura un usuario de MySQL para ese software que tiene el permiso de actualización.
Hice esto en mi mini proyecto una vez, mi proyecto se basó en HTML, CSS, JS, PHP y MySQL donde había creado un sitio web para almacenar la base de datos de empleados, y el empleado puede iniciar sesión en su cuenta y hacer algunos cambios como a la dirección o el número de teléfono, pero no di permiso para cambiar el nombre, la identificación del gobierno o algo que sea permanente. Todo esto lo hice en front-end y no en back-end.
Puede hacer esto para, digamos, la cuenta de Jane y John donde pueden cambiar su propia información.
Hay un atributo deshabilitado que se usa en HTML donde puede restringir que el usuario ingrese cualquier valor
Esto es lo que creo que su respuesta se basaría en cómo explicó su problema. Si funcionó, ¡bienvenido!