Na empresa em que trabalho, os engenheiros de devops (atualmente apenas 2 membros, eu e outro colega de trabalho) são as únicas pessoas que têm acesso ao banco de dados de produção.
Portanto, quando qualquer outro desenvolvedor precisar executar uma consulta MySQL no banco de dados de produção. Eles enviavam a consulta aos 2 engenheiros para permitir que eles a executassem.
Aqui estão as situações em que precisamos executar comandos no banco de dados de produção:
O banco de dados contém dados corrompidos, que produzem bugs. Eles executam comandos para corrigir os erros.
Um bug é relatado. E eles querem ver os valores atuais dentro do banco de dados.
Um de nossos clientes deseja modificar seus dados. Mas nosso aplicativo da web não tem a capacidade de fazer a modificação. Portanto, temos que enviar comandos do MySQL diretamente para o banco de dados para concluir os requisitos do cliente.
A equipe de controle de qualidade criou contas de teste no ambiente de produção. E eles querem alterar o status da conta para que possam fazer outros testes.
Isso cria muitas interrupções para mim, o outro colega de trabalho. Quando desenvolvemos programas durante o dia, geralmente precisamos mudar o contexto apenas para executar algumas consultas.
Não acho que essa seja uma boa arquitetura para a empresa. Como você controla as permissões para o ambiente de produção em sua empresa?
Nosso banco de dados de produção consiste em informações confidenciais do cliente. Se os dados vazarem, nossa empresa poderá ser multada em milhões de dólares.
how do I get devs to stop bugging me to run arbitrary SQL commands
. Acho que posso usar o ProxySQL para mascarar dados confidenciais de clientes, para que outros desenvolvedores possam ler o banco de dados de produção.