Criar usuário no MySQL e conceder permissões
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 palavraALL 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égio | Explicação |
---|---|
ALL PRIVILEGES | dá 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) |
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 |
CREATE | permite criar novas tabelas ou bases de dados |
DROP | permite deletar tabelas ou bases de dados |
GRANT OPTION | permite 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.
O que mais falamos no blog
Exibindo informações do banco de dados, tabelas e colunas do MySQLExibindo informações do banco de dados, tabelas e colunas do PostgreSQL
Consultando Dados com SQL (Comando SELECT)
Local storage html5 com Json
Liberar acesso remoto para servidores MySQL
Auto Increment Id no H2 Database
Ver todos da categoria
Últimas postagens
Usando o método test() de expressões regulares em javascriptVi/Vim: buscar por uma palavra
Como fazer o merge de dois ou mais objetos em javascript?
Designer Pattern Java: Delegation
Primeiros passos para mapear uma tabela simples com hibernate
Criar usuário no MySQL e conceder permissões
Mais vistos
Copiar, Colar ou Renomear arquivos usando terminal de comandos do LinuxLiberar acesso remoto para servidores MySQL
Diferença entre @PathVariable e @RequestParam do Spring MVC
Como inserir máscara em um EditText no Android
Conheça os comandos terminal linux rm e rmdir
Como utilizar o Banco de Dados h2 com Spring Boot
FIQUE POR DENTRO
Receba as novidades todo mês em seu e-mail!
Posts Relacionados
- 4496 Exibindo informações do banco de dados, tabelas e colunas do MySQL
- 1262 Exibindo informações do banco de dados, tabelas e colunas do PostgreSQL
- 988 Consultando Dados com SQL (Comando SELECT)
- 925 Local storage html5 com Json
- 12664 Liberar acesso remoto para servidores MySQL
- 528 Auto Increment Id no H2 Database
Categorias
- ./ Android
- ./ Angular
- ./ Banco de Dados
- ./ Documentação de Sistemas
- ./ Front-end
- ./ Hibernate
- ./ HTML e CSS
- ./ Java
- ./ JavaFX
- ./ jQuery
- ./ Node JS
- ./ PHP
- ./ SEO
- ./ Spring Boot
- ./ Spring Framework
- ./ Typescript
- ./ Ubuntu
- ./ Vue.js
- ./ Web
Últimas postagens
- 45 Usando o método test() de expressões regulares em javascript
- 39 Vi/Vim: buscar por uma palavra
- 1019 Como fazer o merge de dois ou mais objetos em javascript?
- 141 Designer Pattern Java: Delegation
- 136 Primeiros passos para mapear uma tabela simples com hibernate
- 699 Criar usuário no MySQL e conceder permissões
Mais vistos
- 42801 Copiar, Colar ou Renomear arquivos usando terminal de comandos do Linux
- 12664 Liberar acesso remoto para servidores MySQL
- 10692 Diferença entre @PathVariable e @RequestParam do Spring MVC
- 9339 Como inserir máscara em um EditText no Android
- 9001 Conheça os comandos terminal linux rm e rmdir
- 8856 Como utilizar o Banco de Dados h2 com Spring Boot