Eu tive problemas em restaurar procedimentos em meu db, então o que fiz foi conceder privilégios SUPER ao meu dbuser.
Este usuário é o mesmo usuário usado em meu aplicativo da web, então gostaria de saber se há algum perigo em conceder privilégios SUPER a um usuário.
É sempre uma má ideia dar a um usuário mais acesso do que o necessário para desempenhar suas funções.
Se sua aplicação for hackeada devido a um bug em seu código ou em uma das bibliotecas/módulos que você está utilizando, o invasor pode acabar conseguindo agir como este usuário - portanto, se este usuário tiver privilégios que permitem a destruição completa de o banco de dados do aplicativo e outros bancos de dados no mesmo servidor, um invasor bem-sucedido também obtém esses privilégios perigosos.
Um usuário do aplicativo deve ter os privilégios mínimos absolutos necessários para atuar em nome das tarefas normais exigidas pelo aplicativo. Para sistemas maiores, não é incomum ter vários usuários de aplicativos para diferentes partes do sistema, cada um com direitos restritos que os impedem de interagir com objetos não relacionados no banco de dados. Outros privilégios que permitem o gerenciamento do banco de dados e do servidor geralmente devem ser concedidos apenas a usuários administrativos separados.
Se você estiver em uma situação em que um usuário do aplicativo precisa de privilégios administrativos, é recomendável tentar refatorar seu design para remover essa necessidade (ou limitá-la o máximo possível).
Pesquise o Principal de Menor Privilégio (ou seja, https://en.wikipedia.org/wiki/Principle_of_least_privilege ) para obter mais informações sobre por que essa é uma boa ideia em geral.
Como diz a documentação:
e acho que vimos muitas coisas com o poder que vem com responsabilidade! Você sabia que a SUPER grant os fez introduzir uma nova variável para evitar acidentes -> super_read_only .
Portanto, se você acha que "dbuser" não deve fazer o que o SUPER usuário pode fazer, revogue-o. Idealmente, você deve dar o mínimo de priv.