Gerenciamento de usuários, privilégios e controle de acessos em MySQL

Artigo da SQL Magazine - edição 43.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

­­Gerenciamento de usuários, privilégios e controle de acessos em MySQL

  

O MySQL apresenta uma estratégia para controle de acessos bastante flexível e robusta que permite controlar as ações de cada usuário em diversos níveis dentro do sistema. Portanto, é possível controlar quais os comandos cada usuário pode executar, bem como em qual nível de dados: em apenas um banco de dados, tabela ou coluna. Além disto, pode-se fazer um controle apurado levando-se em conta o host (máquina cliente) de onde a conexão com o servidor MySQL foi estabelecida. Desta forma, é factível que a partir do host local o usuário possua privilégios distintos dos que estão disponíveis quando o acesso é feito a partir de um host remoto.

Assim, torna-se viável uma definição de privilégios de forma a conceder apenas os acessos necessários a cada aplicação que utiliza o MySQL, evitando que sejam feitos acessos indevidos aos dados. Ao longo deste artigo serão apresentados todos os aspectos relacionados à manipulação de usuários, bem como determinadas dicas para resolução de problemas comuns envolvendo o controle de privilégios. Inicialmente será abordada a forma de criação de um novo usuário, e a seguir os tipos de privilégios definidos no MySQL, bem como os comandos para a concessão e remoção dos mesmos. Finalmente, serão apresentados os comandos para visualização e exclusão de usuários, bem como os métodos para exibição de seus privilégios.

Em última análise, será dada uma visão geral de como são armazenados os dados dos usuários e como o MySQL realiza a autenticação e o controle de acesso dos seus clientes.

Vale ressaltar que este artigo tem como base o MySQL 5.0, portanto alguns comandos e comportamentos aqui apresentados podem não se aplicar às versões anteriores deste SGBD.

Criação de usuários

No MySQL, um usuário é definido a partir de duas informações, seu nome e o host de onde ele poderá se conectar ao servidor MySQL. Neste caso, toda manipulação de usuários dentro do SGBD levará em consideração estas duas informações.

O comando para a criação de usuários é o CREATE USER, que é ilustrado na Listagem 1.

 

Listagem 1. Criação do usuário sqlmagazine com acesso do host local

eber@linux:~/sqlMagazine> mysql -u root

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 1 to server version: 5.0.20-standard

 

mysql> CREATE USER sqlmagazine@localhost IDENTIFIED BY "senhasecreta";

Query OK, 0 rows affected (0.04 sec)

 

O comando apresentado na Listagem 1 cria um usuário chamado sqlmagazine, que pode se conectar apenas do host local, isto é, o cliente deve estar instalado na mesma máquina em que se encontra o servidor MySQL. O comando ainda atribui uma senha, senhasecreta, para este usuário. Vale ressaltar que a senha é opcional, mas é recomendado sempre informar uma senha para os usuários, de forma a eliminar acessos não autorizados.

Um usuário que tenha sido criado com o comando CREATE USER não possui nenhum privilégio. Ele pode apenas se conectar e executar alguns comandos básicos do sistema, tais como exibir a data e hora do sistema." [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados