En la empresa para la que trabajo, los ingenieros de devops (actualmente solo 2 miembros, que son yo y otro compañero de trabajo) son las únicas personas que tienen acceso a la base de datos de producción.
Entonces, cuando cualquier otro desarrollador necesita ejecutar una consulta MySQL en la base de datos de producción. Enviarían la consulta a los 2 ingenieros para que pudieran ejecutarla.
Estas son las situaciones en las que necesitamos ejecutar comandos en la base de datos de producción:
La base de datos contiene datos corruptos, que producen errores. Ejecutan comandos para corregir los errores.
Se informa un error. Y quieren ver los valores actuales dentro de la base de datos.
Uno de nuestros clientes quiere modificar sus datos. Pero nuestra aplicación web no tiene la capacidad de hacer la modificación. Por lo tanto, tenemos que enviar comandos MySQL directamente a la base de datos para completar los requisitos del cliente.
El equipo de control de calidad creó cuentas de prueba en el entorno de producción. Y quieren cambiar el estado de la cuenta para poder hacer otras pruebas.
Esto crea muchas interrupciones para mí, el otro compañero de trabajo. Cuando desarrollamos programas durante el día, a menudo tenemos que cambiar el contexto solo para ejecutar algunas consultas.
No creo que esta sea una buena arquitectura para la empresa. ¿Cómo controla los permisos para el entorno de producción en su empresa?
Nuestra base de datos de producción consta de información confidencial del cliente. Si se filtraran los datos, nuestra empresa podría ser multada por millones de dólares.
how do I get devs to stop bugging me to run arbitrary SQL commands
. Creo que puedo usar ProxySQL para enmascarar datos confidenciales de clientes para que otros desarrolladores puedan leer la base de datos de producción.