Como Criar e Gerenciar Usuários MySQL

by Alejandro Granata
Como Criar e Gerenciar Usuários MySQL thumbnail

Imagine uma biblioteca onde qualquer pessoa pode entrar e fazer edições nos livros a qualquer momento.

Você chega para conferir Senhor dos Anéis, mas de repente, em vez de uma história eterna de amizade e coragem diante do mal absoluto, é exatamente o oposto.

Alguém reescreveu a jornada heroica de Frodo e Sam até Mordor, fazendo-os desistir de salvar a Terra Média, optando em vez disso por abrir uma loja de joias em Bree. O primeiro cliente? Sauron. E adivinhe, ele está à procura de um anel.

Quanto a Aragorn, Legolas e Gimli? Vamos apenas dizer que quem editou a história é muito fã de fan fiction. Deixaremos assim.

Seu site é como essa biblioteca, e o banco de dados que o alimenta é como todos os livros nela. Se você permitir que praticamente qualquer pessoa acesse e faça alterações, você pode acabar com uma situação de reescrita de O Senhor dos Anéis — mas muito pior porque isso poderia colocar todo o seu site (e todos os seus dados) em risco.

Glossário DreamHost

Banco de Dados

Um banco de dados é uma coleção de informações acessíveis a computadores. Bancos de dados são usados para armazenar informações como registros de clientes, catálogos de produtos e transações financeiras.

Leia Mais

É por isso que você precisa controlar quem pode ver, acessar e modificar seus dados para manter seu site seguro e funcionando sem problemas.

Esta publicação irá guiá-lo pelos conceitos básicos da gestão de usuários MySQL, desde a criação de contas de usuário até a atribuição e modificação de permissões.

Pronto para mergulhar? Comece!

O que é um Banco de Dados MySQL?

Um banco de dados MySQL é uma coleção estruturada de dados armazenados eletronicamente e gerenciados usando o Sistema de Gerenciamento de Banco de Dados MySQL (DBMS).

MySQL, um sistema de gestão de bancos de dados relacionais de código aberto, utiliza a Linguagem de Consulta Estruturada (SQL) para acessar, gerenciar e manipular os dados.

Um banco de dados MySQL é projetado para lidar com tudo, desde uma única linha de informações até grandes conjuntos de dados compostos por milhões de linhas. Ele é construído para armazenar dados em tabelas, que são organizadas em linhas e colunas. Cada tabela em um banco de dados MySQL serve a um propósito específico, contendo dados relevantes para diferentes aspectos do seu site ou aplicação web.

O MySQL é conhecido por ser confiável e fácil de usar. Desenvolvedores web de diversas indústrias utilizam-no para aplicações web, aplicações de registro, armazenamento de dados e mais. Seja armazenando informações de usuários, catálogos de produtos ou registros de transações, o MySQL é robusto e escalável e pode provavelmente atender às suas necessidades de gestão de banco de dados.

Dica profissional: Precisa migrar ou conectar um banco de dados MySQL ao seu site DreamHost? Encontre um tutorial fácil de seguir no nosso Centro de Ajuda.

Receba conteúdo diretamente na sua caixa de entrada

Inscreva-se agora para receber todas as últimas atualizações, diretamente na sua caixa de entrada.

Contas de Usuário MySQL Explicadas

As contas de usuário do MySQL são essenciais para gerenciar o acesso ao seu banco de dados. Cada conta de usuário no MySQL pode receber permissões específicas que ditam quais ações o usuário pode executar. Esse controle granular ajuda a manter a segurança e a integridade dos seus dados.

O Papel do Usuário Root

Quando você instala o MySQL pela primeira vez, uma conta de usuário padrão chamada root é criada.

O usuário Root possui privilégios administrativos completos, o que significa que ele pode realizar qualquer ação no banco de dados, incluindo criar e deletar bancos de dados, adicionar e remover usuários, e conceder ou revogar permissões.

Embora o usuário Root seja poderoso, não recomendamos depender exclusivamente desta conta para todas as tarefas. Usar a conta Root para operações diárias representa um risco de segurança significativo.

Se alguém obter acesso não autorizado a esta conta, terá controle sobre sua base de dados.

Diagrama de contas de usuário MySQL, mostrando Usuário Root, Desenvolvedor, Administrador e Novo Usuário conectados às caixas de banco de dados MySQL.

Por Que Criar Novos Usuários?

Para uma melhor segurança e para otimizar a gestão de bases de dados, a melhor prática é criar contas de usuário específicas para diferentes finalidades.

Por exemplo, você pode criar contas separadas para desenvolvedores, administradores e processos de aplicativos, dando a cada tipo de conta apenas as permissões necessárias para realizar suas tarefas. Dessa forma, você minimiza o risco de ações acidentais ou maliciosas que poderiam afetar a integridade e a segurança do seu banco de dados.

Criar novas contas de usuário permite que você:

  • Melhore a segurança do banco de dados e do site: Limite o acesso a dados sensíveis e operações críticas atribuindo apenas as permissões necessárias a cada usuário.
  • Organize melhor os papéis: Defina claramente os papéis e responsabilidades dentro da sua equipe, dando a todos o nível apropriado de acesso às tarefas que precisam realizar.
  • Torne mais fácil gerenciar seu banco de dados: Acompanhe e gerencie facilmente as atividades dos usuários, facilitando a auditoria de mudanças e a identificação de problemas.

Como Gerenciar Seus Usuários MySQL (Dois Métodos)

Cobriremos dois métodos principais para gerenciar seus usuários MySQL: usando diretamente o MySQL e usando o painel de DreamHost. No final, o método que você utilizar dependerá do seu nível de conforto com ferramentas de linha de comando e suas necessidades específicas.

Gerenciando Usuários com MySQL

Para gerenciar usuários MySQL diretamente através do MySQL, você precisará ter o MySQL instalado no seu sistema.

Isso envolve baixar o software MySQL do site oficial do MySQL, instalá-lo e configurá-lo de acordo com os requisitos do seu sistema operacional.

Uma vez instalado, você pode interagir com seu banco de dados MySQL usando o cliente de linha de comando MySQL.

Nerd Note: A maioria dos comandos a seguir só pode ser usada em servidores dedicados. Você pode conferir nosso Centro de Ajuda para mais informações.

Página de Downloads da Comunidade MySQL mostrando as opções do MySQL Installer 8.0.37 para Windows, com links de download e detalhes dos arquivos.

Para instalar o MySQL, siga estes passos:

  1. Visite o site oficial do MySQL, baixe o instalador e siga as instruções de instalação para o seu sistema operacional (Windows, macOS ou Linux).
  2. Após a instalação, você precisará configurar o servidor MySQL para configurar contas de usuário iniciais e configurações de segurança.
  3. Use o Terminal (no macOS e Linux) ou prompt de comando (no Windows) para acessar a interface de linha de comando do MySQL inserindo o comando mysql -u root -p, seguido pela sua senha de root.

Uma vez que você tenha configurado o MySQL, você pode criar, gerenciar e deletar contas de usuário usando comandos SQL.

Este método oferece um alto nível de controle e flexibilidade, mas exige que você tenha familiaridade com a sintaxe SQL e operações de linha de comando (que serão detalhadas mais abaixo).

Como Criar uma Conta de Usuário MySQL

  1. Faça login no servidor MySQL como usuário Root. Insira o seguinte comando: mysql -u root -p.
  2. Você será solicitado a inserir a senha do Root. Uma vez autenticado, você estará conectado ao servidor MySQL.
  3. Para criar um novo usuário, use a declaração CREATE USER. Substitua newuser pelo nome de usuário desejado e password por uma senha forte para o novo usuário: CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
  4. Este comando cria um novo usuário que só pode se conectar a partir da máquina local (localhost). Se você deseja que o usuário se conecte de qualquer host, substitua localhost por %.
  5. Para aplicar as mudanças, execute o comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Nota Nerd: Sempre que uma senha é atribuída via linha de comando, é uma boa prática esvaziar o histórico do terminal para reduzir o risco de alguém se deparar com uma senha.

Como Conceder Privilégios para um Usuário MySQL

  1. Faça login no servidor MySQL como usuário Root. Digite o seguinte comando: mysql -u root -p.
  2. Digite sua senha Root para se conectar ao servidor MySQL.
  3. Use a instrução GRANT para atribuir privilégios específicos a um usuário. Privilégios podem ser concedidos para bancos de dados específicos, tabelas ou até mesmo colunas. Aqui estão alguns exemplos comuns:
    1. Conceder todos os privilégios em um banco de dados específico (Este comando concede todos os privilégios no banco de dados exampledb para o usuário newuser conectando de localhost): GRANT ALL PRIVILEGES ON exampledb.* TO 'newuser'@'localhost';
    2. Conceder privilégios específicos em um banco de dados específico (Este comando concede apenas os privilégios SELECT, INSERT e UPDATE no banco de dados exampledb para o usuário newuser conectando de localhost): GRANT SELECT, INSERT, UPDATE ON exampledb.* TO 'newuser'@'localhost';
    3. Conceder todos os privilégios em todos os bancos de dados (Este comando concede todos os privilégios em todos os bancos de dados para o usuário newuser conectando de localhost. A opção WITH GRANT OPTION permite que o usuário conceda privilégios a outros usuários): GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
    4. Conceder privilégios em tabelas específicas (Este comando concede os privilégios SELECT e INSERT na tabela exampletable dentro do banco de dados exampledb para o usuário newuser): GRANT SELECT, INSERT ON exampledb.exampletable TO 'newuser'@'localhost';
  4. Para aplicar as mudanças, use o comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Como Ver Privilégios de um Usuário MySQL

  1. Faça o login no servidor MySQL como usuário root. Digite o seguinte comando: mysql -u root -p.
  2. Digite sua senha de root para se conectar ao servidor MySQL.
  3. O comando SHOW GRANTS é usado para exibir os privilégios concedidos a um usuário específico. Para ver os privilégios de um usuário em particular, use o seguinte comando, substituindo newuser pelo nome do usuário e localhost pelo host de onde o usuário se conecta: SHOW GRANTS FOR 'newuser'@'localhost';
  4. Revise cuidadosamente os privilégios listados para garantir que o usuário tenha as permissões corretas. Se algum ajuste for necessário, você pode modificar os privilégios do usuário usando os comandos GRANT ou REVOKE, que abordaremos nas próximas seções.

Como Modificar Permissões para um Usuário MySQL

  1. Faça login no servidor MySQL como usuário root. Insira o seguinte comando: mysql -u root -p.
  2. Insira sua senha de root para se conectar ao servidor MySQL.
  3. Para conceder privilégios adicionais a um usuário, use a declaração GRANT. Por exemplo, para conceder o privilégio de UPDATE no banco de dados exampledb para newuser conectando-se de localhost, use: GRANT UPDATE ON exampledb.* TO 'newuser'@'localhost';
  4. Para remover privilégios específicos de um usuário, use a declaração REVOKE. Por exemplo, para revogar o privilégio de INSERT no banco de dados exampledb de newuser conectando-se de localhost, use: REVOKE INSERT ON exampledb.* FROM 'newuser'@'localhost';
  5. Após usar GRANT ou REVOKE, lembre-se de aplicar as alterações usando o comando FLUSH PRIVILEGES: FLUSH PRIVILEGES;

Se você precisa alterar completamente os privilégios de um usuário, pode ser mais fácil revogar todos os seus privilégios existentes primeiro e depois conceder o novo conjunto de permissões. Para revogar todos os privilégios de um usuário, use: REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'newuser'@'localhost';

Em seguida, conceda o novo conjunto de privilégios conforme necessário: GRANT SELECT, UPDATE ON exampledb.* TO 'newuser'@'localhost';

Não se esqueça de esvaziar os privilégios após fazer essas alterações: FLUSH PRIVILEGES;

Como Excluir um Usuário MySQL

  1. Faça login no servidor MySQL como usuário Root. Insira o seguinte comando: mysql -u root -p.
  2. Insira sua senha de Root para se conectar ao servidor MySQL.
  3. Use a instrução DROP USER para excluir a conta de usuário. Substitua newuser pelo nome de usuário e localhost pelo host de onde o usuário se conecta: DROP USER 'newuser'@'localhost';
  4. Se o usuário pode se conectar de qualquer host, use: DROP USER 'newuser'@'%';
  5. Antes de excluir um usuário, é uma boa prática garantir que nenhum objeto (como gatilhos ou procedimentos) dependa do usuário. Fazendo isso, você evitará problemas inesperados após a remoção do usuário. Você pode revisar os objetos dependentes em seu banco de dados e reatribuir a propriedade, se necessário.
  6. Embora a instrução DROP USER remova a conta de usuário e seus privilégios, é prudente esvaziar os privilégios para garantir que todas as alterações sejam imediatamente aplicadas: FLUSH PRIVILEGES;

Como Mostrar Usuários de um Banco de Dados MySQL

Visualizar todos os usuários no seu banco de dados MySQL é uma forma útil de gerenciar e auditar contas de usuário. Assim, você saberá quem tem acesso ao seu banco de dados e quais são suas permissões.

Se você está familiarizado com comandos MySQL, pode pensar que existe um comando SHOW USERS — semelhante aos comandos SHOW DATABASES ou SHOW TABLES que provavelmente já conhece e usa. No entanto, o comando SHOW USERS não existe.

Então, como você vê todos os seus usuários de banco de dados? Siga estes passos.

  1. Faça login no servidor MySQL como o usuário root. Insira o seguinte comando: mysql -u root -p.
  2. Insira a sua senha root para conectar-se ao servidor MySQL.
  3. O MySQL armazena informações da conta de usuário na tabela mysql.user. Para visualizar todas as contas de usuário, você pode executar a seguinte consulta SQL para exibir uma lista de todos os usuários e os hosts dos quais eles podem se conectar: SELECT user, host FROM mysql.user;
  4. Se você precisar de mais informações detalhadas sobre cada usuário, como seus privilégios ou outras configurações, você pode consultar colunas adicionais da tabela mysql.user. Por exemplo: SELECT user, host, authentication_string, plugin FROM mysql.user;
  5. Para filtrar e visualizar usuários específicos, você pode adicionar uma cláusula WHERE à sua consulta. Por exemplo, para visualizar usuários que se conectam de localhost, use: SELECT user, host FROM mysql.user WHERE host = 'localhost';

Gerenciando Usuários Com DreamHost

Menu do painel de controle da DreamHost mostrando opções incluindo Início, Sites e Bancos de Dados MySQL destacados em azul.

Se a ideia de usar ferramentas de linha de comando parece assustadora, o painel da DreamHost oferece uma alternativa amigável para gerenciar usuários MySQL.

O painel do DreamHost é uma interface baseada na web que simplifica as tarefas de gerenciamento de banco de dados, para que você não precise usar comandos de prompt.

Para tutoriais detalhados sobre como acessar seu banco de dados, adicionar e deletar usuários, gerenciar privilégios e mais, visite nossa página do Centro de Ajuda para bancos de dados MySQL.

Tablet exibindo a página do Centro de Ajuda da DreamHost sobre Bancos de Dados MySQL, com ícones de balões de conversa, servidores e usuários ao redor.

E se você estiver procurando uma hospedagem gerenciada confiável para seu site que não apenas torne a gestão de banco de dados direta com um painel de controle intuitivo, mas também ofereça migração gratuita, suporte 24/7 e garantias de tempo de atividade — você precisa do DreamHost.

Confira nossos planos de hospedagem acessíveis e veja por que milhões de pessoas e empresas nos escolhem!

Hospedagem Dedicada

O máximo em Potência, Segurança e Controle

Servidores Dedicados da DreamHost utilizam o melhor hardware e software disponíveis para garantir que seu site esteja sempre ativo e rápido.

Veja Mais