Pular para o conteúdo principal

MySQL: Como criar um Novo Usuário e Conceder Permissões

Criar usuários no MySQL

Sobre o MySQL

O MySQL é um sistema de gerenciamento de banco de dados open source que ajuda os usuários a armazenar, organizar, e posteriormente, recuperar dados.
Ele possui uma variedade de opções para conceder a usuários específicos permissões diferenciadas dentro de tabelas e bases de dados, veremos aqui um breve resumo de algumas das muitas opções.

Como criar um Novo Usuário

Para criar um usuário, precisamos que o servidor MySQL esteja instalado e funcionando normalmente. Vamos acessar o servidor via linha de comando.

Login no MySQL

Para logar no MySQL via linha de comando, digite:

 mysql -u root -p

Digite a senha do usuário root e tecle ENTER.

Observação:



Você estará no prompt de comando do MySQL e visualizará algo como:

 mysql>

Vamos criar um novo usuário dentro do shell do MySQL:

 CREATE USER 'novousuario'@'localhost' IDENTIFIED BY 'password';

Observação: 
  1. Altere o termo novousuario para o nome.de.seu.usuario a ser criado no banco e a senha password para a nova senha de seu usuário.
  2. Infelizmente, nesse momento o novousuario não tem permissão para fazer nada com as bases de dados. Na verdade, se o novousuario tentar fazer login (com a senha password), ele não será capaz de chegar ao shell do MySQL.

Portanto, a primeira coisa a fazer é fornecer ao usuário o acesso às informações que ele vai precisar.

 GRANT ALL PRIVILEGES ON *.* TO 'novousuario'@'localhost';

Os asteriscos (*) neste comando, referem-se ao banco de dados e à tabela (respectivamente) que eles podem acessar. 
Este comando específico permite ao usuário ler, editar, executar e realizar todas as tarefas em todas as bases de dados e tabelas.

Para definirmos privilégios específicos para um banco, por exemplo:
 GRANT ALL PRIVILEGES ON bancoNovo.* TO 'novousuario'@'localhost';

Uma vez finalizadas as permissões que você quer definir para os seus novos usuários, certifique-se sempre de recarregar todos os privilégios.
 FLUSH PRIVILEGES;

Suas alterações agora estarão em vigor.

Como conceder permissões de usuário diferentes

Aqui está uma pequena lista de outras possíveis permissões comuns que os usuários podem utilizar.
ALL PRIVILEGES - como vimos anteriormente, isso daria 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)
CREATE- permite criar novas tabelas ou bases de dados
DROP- permite deletar tabelas ou bases de dados
DELETE - permite deletar linhas das tabelas
INSERT - permite inserir linhas nas tabelas
SELECT - permite utilizar o comando Select para ler bases de dados
UPDATE - permite atualizar linhas das tabelas
GRANT OPTION - permite conceder ou revogar privilégios de outros usuários


Para dar uma permissão a um usuário específico, você pode utilizar esta estrutura:

 GRANT [tipo de permissão] ON [nome da base de dados].[nome da tabela] TO ‘[nome do usuário]’@'localhost’;


Observação:
  • Se você quer dar a ele acesso a qualquer base de dados ou a qualquer tabela, certifique-se de colocar um asterisco (*) no lugar do nome da base de dados ou do nome da tabela.
  • Cada vez que você atualizar ou mudar uma permissão certifique-se de utilizar o comando Flush Privileges.

Se você precisar revogar uma permissão, a estrutura é quase idêntica a concedê-la:
 REVOKE [tipo de permissão] ON [nome da base de dados].[nome da tabela] FROM ‘[nome do usuário]’@‘localhost’;

Assim como você pode excluir bases de dados com o DROP, você pode também utilizar o DROP para excluir um usuário completamente:
 DROP USER ‘demo’@‘localhost’;

Para testar seu novo usuário, faça logout digitando:
 quit;

Faça login com este comando no terminal:
 mysql -u [nome do usuário] -p

Abraços,

Tags: MySQL, command line, usuário, senha, password, user
by Alexandre LLemes

Comentários