All privileges x Super privilege MySQL

Ola pessoal,

Essa comparação veio em um café da tarde diário, dai veio a dúvida, qual a diferença entre o All privileges x Super privilege no MySQL?

O All Privileges contempla todas as permissões, seja a nível de objetos como a nível de servidor, sendo padronizado como o ‘root’. O All Privileges pode ser definido a nível de base como a nível global.

Caso queira atribuir o grant a nível de base a um usuário, ou seja, para o usuário ter todos os privilégios nos objetos de uma base, basta seguir o exemplo:


A nível global, ou seja, para todos os objetos e a nível de servidor, basta seguir conforme:

O segundo exemplo é praticamente a definição do usuário root, então nem é necessário informar a importância dessa escolha e de como vai ser a administração da instância 😀

Mas o que o grant Super atribui? Podemos dizer que o Super é um grant relacionado a administração do servidor, ou seja, ele tem as permissões para alterações globais da instância. Alguns exemplos:

– Consegue matar o processo do MySQL, Restart e etc (mysqldmin)
– Stopar uma replicaçao Master x Slave
– Ver e encerrar as conexões na instância
– Limpar os logs binários
– Alterar variáveis a nível global

Logo o Super é um privilégio global, e não pode ser incluso como um privilegio a nível de base. Segue um exemplo de como atribuir a permissão:

Dependendo do perfil da empresa, pode ser uma boa definir o super apenas para um Administrador de sistemas, ou focalizar todas as permissões em um unico usuário com o papel de root.

Enfim não são a mesma permissão, porém em mãos erradas, o prejuizo pode ser fatal.

É isso ai pessoal.

Dúvidas, criticas ou sugestões? Fiquem a vontade, todo retorno é construtivo 🙂

Jose Wilson

Deixe uma resposta