Administração MySQL: como criar um usuário e definir seus direitos

Índice:

Administração MySQL: como criar um usuário e definir seus direitos
Administração MySQL: como criar um usuário e definir seus direitos
Anonim

Uma característica do MySQL é sua própria segurança, contando com proteção externa. Como um sistema de gerenciamento de banco de dados moderno, completo e eficiente, o MySQL possui ferramentas próprias para gerenciar usuários e seu acesso aos recursos que controla.

mysql criar usuário
mysql criar usuário

Se você não souber o nome de usuário e senha corretos, acessar o banco de dados via MySQL é muito difícil.

No modo de hospedagem normal, isso é suficiente. Situações imprevistas, ataques de hackers e outros problemas são uma questão de administração externa do sistema e serviços de segurança. Este conceito tornou-se tradicional e praticamente não é discutido.

Instalar servidor MySQL e usuário root

Em qualquer ambiente operacional em que o sistema de gerenciamento de banco de dados esteja instalado, ele sempre terá pelo menos um usuário: root. Instale o MySQL, crie um usuário com todos os direitos de root - sem isso, trabalhe comservidor não é possível. Os privilégios deste usuário são suficientes para:

  • criar e administrar novos usuários;
  • criar e gerenciar bancos de dados.
mysql cria um usuário e dá direitos ao banco de dados
mysql cria um usuário e dá direitos ao banco de dados

É fundamentalmente possível que usuários "sem senha" existam no MySQL, mas isso é inaceitável.

Prática comum:

  • servidor instalado no próprio computador, onde a hospedagem pode ser instalada (opção local);
  • server está em hospedagem pública na Internet.

No primeiro caso, é possível trabalhar com o servidor a partir da linha de comando e usar o phpMyAdmin, no segundo caso, apenas o phpMyAdmin ou uma ferramenta similar, mas a linha de comando pode ser acessada via acesso SSH remoto.

Ferramentas próprias de administração

Sentimento de parentesco com a família Unixoid e com o passado dos servidores Apache é uma marca registrada do MySQL: criar usuário é uma linha de comando com sintaxe estranha. Para os profissionais que trabalham com Linux e sistemas similares, isso é tão familiar quanto parece selvagem aos olhos dos usuários do Windows que nunca “entraram na vida real”.

A criação de um usuário começa com o início da linha de comando do servidor. Em um ambiente Windows, isso é feito da seguinte maneira.

mysql cria usuário com todos os direitos
mysql cria usuário com todos os direitos

Primeiro (1) você precisa executar a linha de comando como administrador, então vá para a pasta onde o MySQL está localizado (2), entãoinicie o próprio servidor (3):

mysql -u… -p

aqui "-u…" e "-p" são chaves que apontam para o nome "…"=root (ou outro nome) e sua senha. Em princípio, um usuário pode não ser root, mas um que tenha direitos de "root" (administrativos).

Importante: o servidor está sempre rodando, aqui mysql -u… -p é o comando para acessar o servidor, não para iniciá-lo.

Em um ambiente Linux e sistemas similares, tal comando é uma ação "nativa" e, como regra, é determinada simplesmente iniciando o mysqld no lugar certo (no caminho certo), isso deve ser verificado com o administrador. Geralmente há um nome diferente aqui: não mysql, mas mysqld. Também aqui, esta ação nem sempre está disponível para todos os usuários (do sistema operacional, não do servidor MySQL). Ao contrário do Windows, no Linuxoids, ordem e segurança são requisitos naturais e inegociáveis, sempre tratados de forma civilizada.

De qualquer forma, uma vez iniciado o mysql, ele anunciará isso com um prompt (4):

mysql>

e será possível trabalhar com usuários e bancos de dados.

Nota. Ao instalar em um ambiente Windows, tudo: Apache, MySQL, PHP, phpMyAdmin pode ser configurado para caminhos padrão, mas é recomendável usar locais mais compactos e próximos para essas ferramentas importantes:

  • c:\SCiA\Apache;
  • c:\SCiA\PHP;
  • c:\SCiA\MySQL;
  • c:\SCiB\localhost\www\phpMyAdmin;
  • c:\SCiB\site1\www;
  • c:\SCiB\site2\www;
  • c:\SCiB\siteN\www\.

Essa lógica não apenas simplificará a administração, mas também expandirá a capacidade do desenvolvedor de alternar entre as versões do produto e gerenciar suas funcionalidades.

Trabalhando na linha de comando do MySQL

Uma vez que o servidor respondeu e forneceu sua linha de comando, os usuários podem ser criados e receber permissões.

mysql cria usuário para qualquer host
mysql cria usuário para qualquer host

Neste exemplo, o comando create user criou o usuário Petrov com a senha 123DFG. Se ocorrer um erro ao digitar um comando, o servidor se oferece para corrigi-lo, mas é melhor nunca cometer erros ao trabalhar na linha de comando!

O comando a seguir concede todos os privilégios dá todos os direitos a tudo. O comando flush pode ser omitido, mas ele 'abre' o buffer de comandos, ou seja, corrige sua execução.

MySQL: cria um usuário e concede direitos ao banco de dados

Comando usado no exemplo:

GRANT ALL PRIVILEGES ON. TO 'Petrov'@'localhost';

realmente concede ao usuário Petrov acesso a todos os bancos de dados (primeiro asterisco) a todas as tabelas (segundo asterisco).

mysql cria usuário com todos os direitos
mysql cria usuário com todos os direitos

Como regra geral do MySQL, criar um usuário é:

GRANT [tipo de privilégio] ON [nome do banco de dados].[nome da tabela] TO '[usuário]'@'localhost';

Os seguintes privilégios são permitidos:

  • TODOS OS PRIVILÉGIOS - todos os direitos.
  • CREATE - o direito de criar novas tabelas/bancos de dados.
  • DROP - o direito de remover tabelas/bancos de dados.
  • DELETE - o direito de deletar informações nas tabelas.
  • INSERT - o direito de gravar informações nas tabelas.
  • SELECT - o direito de ler as informações das tabelas.
  • UPDATE - o direito de atualizar as informações nas tabelas.
  • GRANT OPTION - o direito de trabalhar com os privilégios de outros usuários.

Do ponto de vista prático, no MySQL "criar um usuário" implica três opções de direitos:

  • todos os direitos de todos os bancos de dados e todos os usuários;
  • ler e escrever;
  • somente leitura.

Outras opções de concessão de direitos raramente são necessárias. No ambiente Linux, há muito mais motivos para liberdade "legal" (e necessidade), mas há muito mais oportunidades do que no Windows.

A operação inversa do MySQL "criar usuário" é drop.

solte o usuário 'Petrov'@'localhost';

Após executar este comando, Petrov não será mais um usuário e seus privilégios serão perdidos. Para alterar os privilégios, use o comando:

REVOKE [privilégio] ON [DB].[Tabela] PARA '[usuário]'@'localhost';

A ação usual no MySQL é criar um usuário ou excluí-lo, mas alterar privilégios também é uma operação válida (raramente solicitada).

Usando phpMyAdmin

Existem muitas implementações desta ferramenta maravilhosa. Dependendo da versão do Apache, PHP e MySQL usada, muitas vezes leva muito tempo para encontrar a versão correta deste produto, mas uma vez que o phpMyAdmin é instalado com sucesso, o usuário tem muitos recursos convenientes e uma confortávelinterface.

mysql cria usuário para qualquer host
mysql cria usuário para qualquer host

Usando o phpMyAdmin, você pode dizer ao MySQL para criar um usuário para qualquer host e gerenciar os usuários existentes de maneira quase cirúrgica.

phpMyAdmin não é a única ferramenta com uma interface confortável, intuitiva e rica em recursos, mas é a ferramenta mais popular para administrar servidores MySQL.

Sobre a linha de comando e segurança

Claro, usar a linha de comando do MySQL é um exercício pouco atraente, mas deve-se ter em mente que em alguns casos apenas a linha de comando do servidor pode salvar o banco de dados ou usuário, garantir a importação ou exportação de informações.

mysql cria usuário para qualquer host
mysql cria usuário para qualquer host

Versões de software estão evoluindo tão rápido que os desenvolvedores simplesmente não têm tempo para combinar os recursos de, por exemplo, PHP e MySQL, MySQL e phpMyAdmin. Se algo acontecer, a linha de comando sempre salvará o dia.

Também nunca se deve esquecer: a administração do MySQL é apenas acessar seus bancos de dados e através de sua funcionalidade. Os arquivos de banco de dados estão abertos para acesso fora do MySQL. Proteger externamente o MySQL e os recursos que ele controla é uma necessidade real e importante.

Recomendado: