Criar usuários no MySQL é uma tarefa bastante simples, mas é preciso tomar alguns cuidados para não comprometer a segurança do seu banco. A sintaxe para criação do usuário é bastante simples, vejam:

create user 'daniel'@'%' identified by 'xyzabc';

O comando acima cria um usuário chamado daniel (valor definido dentro das primeiras aspas), que poderá acessar o SGBD através da senha xyzabc (valor definido no terceiro conjunto de aspas), e a grande observação fica por conta do segundo bloco de aspas, que é responsável por definir a partir de qual máquina o usuário poderá acessar o servidor. O caractere % funciona como um curinga, que permitirá o acesso a partir de qualquer máquina.

O usuário daniel, do comando acima, poderia acessar a máquina a partir de qualquer lugar, mas poderíamos, por exemplo, permitir acesso somente a partir da máquina local. Nesse caso o comando deveria ser:

create user 'daniel'@'localhost' identified by 'xyzabc';

Poderíamos também permitir o acesso a partir de um IP específico, da seguinte forma:

create user 'daniel'@'111.222.333.444' identified by 'xyzabc';

Agora o usuário daniel somente poderá acessar o banco através da máquina com IP 111.222.333.444.

É importante destacar que o complemento "indentified by 'senha'" é fundamental para garantir o acesso através da senha. Sem este complemento o comando também funciona, mas o acesso poderá ser feito sem a solicitação da senha .

 

Atribuindo Permissões

 

Após criar um usuário para o MySQL é possível logar no sistema com ele, mas sem qualquer permissão não será possível fazer nada, nem mesmo ver as bases existentes. Vejam o que acontece quando logo no sistema com o usuário chamado teste, recém criado, e tento exibir as bases de dados:

 

Criando usuários no MYSQL

 

Apenas a database information_schema foi listada, que é uma database padrão do MySQL, com informações sobre as outras databases. O acesso, através do usuário recém criado, é muito limitado. Vamos agora atribuir a ele a capacidade de fazer SELECT nas tabelas. O comando para isso será:

grant SELECT on *.* to 'teste'@'%';

Este comando permitirá que o usuário teste execute o comando SELECT a partir de qualquer computador. Poderíamos limitar isso, apenas alterando o caractere curinga, conforme demonstrado acima. Vou tentar executar novamente o comando para exibir as bases:

 

Criando usuários no MYSQL

 

Notem que agora já foram listadas mais bases de dados, que são todas as que possuo nesta máquina. Vou tentar criar uma nova base de dados, vejam:

 

Criando usuários no MYSQL

 

A operação não foi permitida, pois o usuário teste não possui permissão para isso. Vou atribuir essa permissão através do seguinte comando:

grant CREATE on *.* to 'teste'@'%';

 

 

Criando usuários no MYSQL

 

O destaque no comando acima fica por conta da execução do comando de atribuição de permissão através do usuário root. Neste caso não adiantaria logar com o próprio usuário teste, que praticamente não possui privilégios, e tentar executar o comando grant com ele. Agora vou tentar criar uma base de dados novamente:

 

Criando usuários no MYSQL

 

Agora o usuário teste pôde criar a base de dados sem qualquer problema. Conforme os exemplos citados você pode, através do comando grant, atribuir permissões para cada usuário, a partir de qualquer máquina. Caso queira dar permissão total a um usuário, o comando será da seguinte forma:

grant ALL on *.* to 'teste'@'%';

Dessa forma o usuário terá condições de executar qualquer comando no SGBD. Antes de encerrar vale demonstrar um comando interessante. Vamos imaginar que você queira dar acesso total ao usuário, mas somente em uma database. O comando agora ficará da seguinte forma:

grant ALL on locadora.* to 'teste'@'%';

Desta forma o usuário teste terá acesso total à base de dados locadora, a partir de qualquer máquina (lembrar do caractere curinga). É possível também dar acesso somente a determinada tabela de uma base de dados, da seguinte forma:

grant ALL on locadora.vendas to 'teste'@'%';

Com o comando acima o usuário teste terá acesso total somente à tabela vendas, da base locadora, a partir de qualquer máquina. Para encerrar, poderíamos refinar ainda mais as permissões, chegando ao nível de colunas. Vejam:

grant SELECT (usuario) on locadora.cliente to 'teste'@'%';

O comando acima permitirá ao usuário teste executar o comando SELECT na base de dados locadora, tabela cliente e coluna usuario. É isso!


Outras dicas de MySQL


Adicionando colunas a uma tabela já existente

Alterando colunas de uma tabela já existente

Como salvar consulta do MySQL em CSV

Criando uma tabela a partir de outra já existente

Criando usuários e atribuindo permissões

Criptografando dados no MySQL

Descobrindo o tamanho em Mb da sua base de dados

Duplicando uma base de dados (backup da base de dados)

Duplicando uma tabela

Encontrando registros duplicados

Exibindo dados em formato de formulário

Exibindo permissões

Exibindo usuários

Gerando um dump de todas as bases de dados

Gerando um dump de uma base de dados específica

Gerando um dump de uma tabela específica

Gerando um dump somente da base de dados

Identificando e contando registros duplicados

Lendo dados criptografados no MySQL com C#

Removendo colunas a uma tabela já existente

Removendo permissões

Removendo registros duplicados e deixando somente o mais antigo

Removendo registros duplicados e deixando somente o mais recente

Renomeando uma tabela

Restaurando um dump

Retornando apenas os primeiros caracteres do campo – Função Left

Retornando apenas os últimos caracteres do campo – Função Right

Selecionando apenas parte de um campo

Selecionando X registros randômicos de uma tabela

Zerando um campo auto incremento

Você Sabia?

Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".


Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.


Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.


Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.