Como criar um banco de dados e usuário e conceder permissões no MariaDB / MySQL

Olá, de forma bem resumida, neste post, você irá aprender a como criar um banco de dados, criar um usuário e também conceder permissões para esse usuário no MariaDB e também se aplica ao MySQL via console/shell.
Sem estender muito, vamos ao que interessa!

  • Acessando o SGBD (MariaDB), criando o Banco de Dados e um Usuário.

Para que voce possa se conectar ao gerenciador do banco de dados, use o comando:

sudo mysql -u root -p

Agora já conectado ao gerenciador, vamos criar o banco de dados:

CREATE DATABASE basededados;

Em seguida vamos criar o usuário e sua senha de acesso:

CREATE USER 'usuario'@'localhost' IDENTIFIED BY 'senha';

Com isso, já temos um banco de dados com nome: basededados e um usuário com nome: usuario. Mas isso não concede ao usuário qualquer permissão em nenhuma base de dado. Se você tentar logar no gerenciador de banco de dados, você receberá uma mensagem de erro alegando que voce não tem acesso.

Existem algumas formas para que você possa conceder privilégios ao usuário. Vamos a eles:

  • Acessando o SGBD (MariaDB), criando o Banco de Dados e um Usuário.

Você pode conceder Todos os Privilégios para o usuário, algo como deixá-lo como um usuário ROOT no seu MySQL/MariaDB. Sinceramente isso não é recomendado, afinal, já temos o root do próprio gerenciador né?!
Mesmo assim, alguns irão querer saber como fazer isso, então lá vai. Já logado no shell do MySQL, digite:

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

em seguida, recarregue as permissões do MySQL com o comando:

FLUSH PRIVILEGES;

Os asteriscos referem-se ao Banco de Dados e a Tabela respectivamente. Com o comando acima, voce permite o usuário, ler, editar, executar, criar, dropar.. Ou seja, ele poderá fazer tudo em todas as bases de dados e nas tabelas destas bases. Por isso recomendamos ter cuidado com essa permissão.

O mais correto é voce atribuir permissões específicas a cada usuário.

  • Concedendo permissões específicas para um usuário.

Como sugere, ao conceder uma permissão específica a um usuário, você terá mais controle no que este usuário será capaz de fazer no(s) banco(s) de dados ao qual ele terá acesso definido mediante as permissões atribuídas a ele.
O comando para conceder privilégios de forma bem específica é:

GRANT permissao ON basededados . tabela TO 'usuario'@'localhost';

Aqui está uma pequena lista de outras possíveis permissões que os usuários podem utilizar, você pode ver a lista completa aqui.

ALL PRIVILEGES- garante 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 tableas 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 aplicar mais de uma permissão a um usuário é só separar com uma vírgula. Por exemplo, vamos atribuir a um determinado usuário a permissão de UPDATE e DELETE:

GRANT UPDATE, DELETE ON * . * TO 'nome-do-usuario'@'localhost';
FLUSH PRIVILEGES;

Lembre-se de que a cada vez que você alterar uma permissão, o comando FLUSH PRIVILEGES deverá ser executado.

Simples não?!

Havendo dúvidas, deixe um comentário que o ajudaremos.

2 Comments

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.