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

Postagens mais visitadas deste blog

Zabbix Appliance 3.x - senha padrão

Senha padrão do appliance Zabbix Sobre o Zabbix Zabbix  é um software que monitora diversos parâmetros de uma rede como a integridade e desempenho dos servidores. Oferece excelentes relatórios e visualização de dados de recursos com base nos dados armazenados, e usa um mecanismo de notificação flexível que permite aos usuários configurar e-mail com alertas para qualquer evento, o que permite uma reação rápida para os problemas do servidor. ( Wikipedia ) Para baixar o appliance zabbix, acesse a documentação: https://www.zabbix.com/documentation/3.0/pt/manual/appliance Para o front-end acesse: http://localhost/zabbix A senha padrão para o front-end é: Admin zabbix E para o console é: appliance zabbix Tags: Zabbix, monitoramento, appliance by Alexandre LLemes

Laravel framework permissão de arquivo - seguro

Laravel - diretórios O framework Laravel necessita de escrita nos  diretórios storage e bootstrap/cache . sudo chgrp -R www-data storage bootstrap/cache sudo chmod -R ug+rwx storage bootstrap/cache Observação: Não esqueça de modificar o dono da pasta (owner) do seu projeto para o apache. sudo chown www-data:www-data . -R Muitas das vezes com o servidor em produção e algum problema acontece, de imediato, para voltar o funcionamento, roda-se:  sudo chmod -R 755 storage bootstrap/cache E bom trabalho! Tags : Laravel, PHP,  Desenvolvimento by Alexandre LLemes

MySQL: Alterando a senha de usuário inclusive root

Esqueceu a senha do usuário MySQL? Alterar ou limpar a senha de um usuário MySQL, requer alguns passos. À medida que informaremos os métodos, alguns deles irão coincidir com o seu problema. Alterando a senha via comando mysqladmin Método 1 - Definindo a senha de root num primeiro momento Se não havia definido a senha de root para o MySQL, o servidor não irá requerê-la para todas as conexões como usuário root. Para defini-laI, vamos usar o mysqladmin: mysqladmin -u root password newpass Para modificar a senha do usuário root já predefinida: mysqladmin -u root -p oldpassword newpass Caso o sistema venha a pedir uma senha é porque a senha atual do usuário root está errada. Enter password: Se você informar a senha errada, obterá: mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)' Então sigas as instruções abaixo para recuperar a senha do usuário MyS