Criar usuário no MySQL e conceder permissões

Postado em por Wolmir Cezer Garbin em Banco de Dados | 83 Visualizações
Última atualização em:

Neste post vou mostrar como criar usuários no MySQL e conceder permissões ao usuário para acessar um banco de dados específico ou todos

Todo mundo tem algo para vender, AnuncieOn.com o melhor site de anúncios grátis de todo o Brasil. ABRIR

O MySQL permite trabalhar vários quesitos de segurança, e na minha opinião pessoal, o primeiro é a organização dos usuários versus acessos.

Uma regra muito importante, é nunca liberar o usuário root/root para acessar o servidor de qualquer local, para isso neste tutorial vou mostrar como criar usuários no MySQL e conceder permissões específicas ao usuário.

Acessar o MySQL

Antes de mais nada, precisamos acessar o MySQL, para isso abra o terminal ou o cmd no caso do windows e digite:

mysql -u root -p

Tecle enter e informe a senha. Após digitar a senha tecle enter novamente para acessar o MySQL.

Criando novo usuário no MySQL

A primeira coisa que devemos fazer é criar um usuário juntamente com sua senha de acesso.

Note que utilizaremos apenas comandos e não uma ferramenta em si.

No exemplo, criaremos um usuário chamado wolmir com a senha w123. O comando que permite criar o usuário no MySQL é:

CREATE USER 'wolmir'@'localhost' IDENTIFIED BY 'w123';

Note que sua senha deve ser mais complexa para dar mais segurança ao seu acesso, principalmente em caso de permissão de acesso a partir de qualquer local.

Neste comando, será criado o usuário wolmir e este poderá acessar o MySQL a partir da máquina local, ou seja, localhost. Se quiser permitir acesso a partir de qualquer ip, pode usar o comando:

CREATE USER 'wolmir'@'%' IDENTIFIED BY 'w123';

Conceder permissão a usuário no MySQL

Após criar um usuário, ainda é necessário conceder permissões de acesso. As permissões podem restringir o acesso a um banco de dados específica ou ainda atribuir apenas alguns privilégios.

Primeiro vou mostrar como conceder acesso a um banco de dados específico. Para isso criaremos o banco de dados teste.

create database teste;

Após criar o banco de dados, podemos atribuir as permissões ao usuário wolmir. O comando utilizado é:

GRANT ALL PRIVILEGES ON teste.* TO 'wolmir'@'localhost';

A palavra reservada ALL atribui todos os privilégios ao banco de dados teste para o usuário wolmir a partir dolocalhost.

Para entender melhor o comando GRANT veja o que se refere cada parte do comando:

GRANT <tipo de permissão> ON <nome da base de dados>.<nome da tabela> TO '<nome do usuário>'@'localhost';

Entendido o comando podemos observar que:

  • Caso queira dar acesso a todos os bancos de dados para o usuário pode usar * em <nome da base de dados> ou apenas o nome de um banco de dados como foi o caso do exemplo acima.
  • Caso queira dar acesso a apenas uma tabela do banco de dados em questão, pode adicionar o nome da tabela em <nome da tabela> ou * para todas as tabelas.
  • E por último, caso queira dar uma permissão específica para o usuário pode informar em <tipo de permissão> ou usar a palavra ALL PRIVILEGES para conceder todas as permissões.

Principais tipos de permissões

Para o campo <tipo de permissão> elencamos as principais que pode utilizar para conceder acesso:

PrivilégioExplicação
ALL PRIVILEGESdá a um usuário do MySQL todo o acesso a uma determinada base de dados (ou se nenhuma base de dados for selecionada, todo o sistema)
DELETEpermite deletar linhas das tabelas
INSERTpermite inserir linhas nas tabelas
SELECTpermite utilizar o comando select para ler bases de dados
UPDATEpermite atualizar linhas das tabelas
CREATEpermite criar novas tabelas ou bases de dados
DROPpermite deletar tabelas ou bases de dados
GRANT OPTIONpermite conceder ou revogar privilégios de outros usuários

Recarregar todos os privilégios

Após criar usuários ou conceder permissões, precisa recarregar todos os privilégios ao MySQL. Para isso use o comando:

FLUSH PRIVILEGES;

Criar usuário e conceder permissões no MySQL

Também é possível criar o usuário e conceder permissões apenas em um comando no MySQL. Para isso use o comando:

GRANT ALL ON <NomeDoBancoDeDados>.* TO '<NomeDoUsuario>'@'%' IDENTIFIED BY '<SenhaDoUsuario>' WITH GRANT OPTION;

Lembre-se de alterar as variáveis que estão entre <> no comando.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Wolmir Cezer Garbin

Wolmir Cezer Garbin


Sou formado em Desenvolvimento de Sistemas para Internet pela faculdade Mater Dei e Pós graduado em Desenvolvimento de sistemas em Java pela UTFPR. Trabalho a mais de 9 anos com desenvolvimento em Java, Android e Web utilizando as principais tecnologias do mercado. Atuo como professor na faculdade Mater Dei, programador na Garbo Software e criador do Receitas de Código.

Ver mais

FIQUE POR DENTRO

Receba as novidades todo mês em seu e-mail!

Apoiadores


Publique seu post no Receitas de Código

Agora você pode publicar seu post no Receitas de Código e compartilhar seu conhecimento com muitas pessoas!

Quero publicar