Eu tenho uma replicação com um servidor mestre e um servidor escravo.
De tempos em tempos, eu me conecto ao servidor escravo principalmente para obter informações ou gerar estatísticas sobre o uso do meu usuário.
Mas tenho medo de em algum momento executar um comando de gravação (INSERT/UPDATE/DELETE) para esse escravo, pensando que estou no servidor mestre.
Existe uma maneira de dizer ao MariaDB: "Não aceite os comandos INSERT/UPDATE/DELETE" no servidor escravo?
Obrigado pela ajuda!
Quando gerenciei réplicas, sempre defino isso na réplica:
É claro que o thread de replicação pode ignorar isso. Mas garante que todas as solicitações de usuário (mesmo solicitações de superusuário) não possam fazer alterações fora de banda.
Um usuário com privilégio SUPER ainda pode gravar alterações na réplica, mesmo que
read_only
esteja habilitado. Não conceda o privilégio SUPER aos usuários.No MySQL, você pode resolver isso com:
Mas um usuário com privilégio SUPER pode contornar isso porque pode alterar a configuração.
O maior problema é se você não pode confiar nos usuários a quem concede o privilégio SUPER.