MySQL Workbench - Add User and Connect to Database
➢ CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE
By: Mario Pires, dr.
MySQL - BANCO DE DADOS Configuração de Autenticação de Cliente
1. Conexão com Banco de Dados MySQL
2. Permissão de Acesso Remoto ao MySQL 3. Aumentar conexões simultâneas em MySQL 4. Limitar MySQL Max conexões por usuário 5. Conexão via rede (MySQL)
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL ▪ Requisitos: ✓ O acesso remoto deve estar liberado ✓ Dados de acesso: host (dns da hospedagem), usuário e senha do banco de dados
▪ Como conectar: 1.1 - No MySQL Workbench, no menu superior, clique Database, depois em Connect to Database:
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL ▪ Como conectar: 1.2 - Na nova janela, clique sobre aba Parameters e preencha os campos: Hostname: o endereço do servidor da hospedagem ou IP Port: utilize a padrão 3306 Username: Nome do usuário do banco de dados Depois, clique em OK
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL ▪ Como conectar: 1.3 - Na nova janela, será exibido o Service e User. No campo Password insira a senha Em seguida, clique em OK
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 1 - Estabelecendo Conexão com BD MySQL ▪ Como conectar: 1.4 - Após a conexão, clique no menu inferior Schemas para conseguir visualizar o seu BD
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 2 - Permitindo Acesso Remoto ao MySQL ▪ Por padrão, ao instalar, o MySQL não é habilitado para acesso externo. Portanto, neste tutorial mostraremos como permitir o acesso remoto em abmientes Windows e Linux. ▪ Windows 2.1 - Abra o prompt de comando do MySQL; 2.2 - No prompt do MySQL, digite o seguinte comando para garantir todos os privilégios de acesso ao usuário root em todos oIPs: GRANT ALL ON *.* TO IDENTIFIED BY 'senha root';
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 2 - Permitindo Acesso Remoto ao MySQL
▪ Note que é possível garantir privilégios a outro usuário
(modificando o 'root') em um determinado IP (modificando o )
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 2 - Permitindo Acesso Remoto ao MySQL ▪ Windows 2.3 - Logo após use o comando: FLUSH PRIVILEGES;
▪ Desativar o Firewall (inseguro) ou liberar a porta utilizada pelo MySQL (ex:
3306) as exceções do Firewall.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 2 - Como aumentar conexões simultâneas MySQL ▪ MySQL fornece uma configuração padrão que limita a quantidade de conexões simultâneas permitidas no servidor de banco de dados. ▪ O limite ajuda a parar muitas conexões que ocorrem, o que pode retardar um servidor de banco de dados MySQL . ▪ Se quiser aumentar o limite de conexão, deve alterar a configuração no arquivo " CNF " armazenado no diretório MySQL.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 3 - Como aumentar conexões simultâneas MySQL INSTRUÇÕES 3.1 - Clique no Windows botão "Iniciar" no computador do servidor MySQL . Digite " my.cnf " na caixa de pesquisa de texto e pressione " Enter". A janela de resultado exibe o local do arquivo de configuração . 3.2 - botão direito do mouse " my.cnf " na janela de resultados e selecione " Abrir com". Clique duas vezes em "Notepad" para abrir o arquivo no editor de texto padrão.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 4 - Como limitar MySQL Max conexões por usuário 4.1 - Max Conexões de usuário ▪ Esta variável faz exatamente o que o nome sugere – define um limite para o número máximo de conexões simultâneas que qualquer usuário individual pode ter no seu banco de dados MySQL. ▪ Em sistemas de hospedagem compartilhada, esta é uma configuração poderosa, você pode usá-la para evitar que um único usuário use todas as conexões do MySQL. By: Mario Pires, dr. MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 4 - Como limitar MySQL Max conexões por usuário 4.2 - Definir Limites ▪ Em geral, sugire-se que você defina max_user_connections para 50-75% de suas configurações max_connections. Você define esse valor na seção mysqld de seu my.cnf:
By: Mario Pires, dr.
4 - Como limitar MySQL Max conexões por usuário
▪ Neste exemplo, temos 400 total de conexões permitidas
e um único usuário pode usar até 200 conexões.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Ao conectar servidor MySQL localmente, em sistema bem configurado, já o pode considerar seguro. ▪ Ao disponibilizar o acesso via rede, criamos mais um ponto de vulnerabilidade deixando o sistema à mercê de ataques dos mais variados tipos. ▪ O simples fato de deixar uma porta aberta já aguça certos usuários para tentar usar esta porta aberta como entrada para derrubar serviços ou outras formas de "atrapalhar" o funcionamento do sistema.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Em sua instalação padrão, o MySQL inicia permitindo conexões locais e conexões via rede. ▪ Na seção anterior, vimos como permitir que um usuário se conecte a partir de um host. O simples fato de não permitir a conexão de um usuário não siginifica que não teremos mais problemas porque a porta continua aberta para a rede. ▪ Pensando nesta "porta aberta", é necessário implementar mecanismos para que os dados que trafegam nela, somente sejam lidos por client_server .
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Para ajudar a decidir como "esconder" os dados de crackers, devemos ter em mente como será desenvolvido o aplicativo que vai usar o banco de dados. ▪ Se for um ambiente web, onde o servidor web e o MySQL estejam na mesma máquina, não há motivos para liberar o acesso via rede.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Neste caso o servidor deve ser iniciado com a opção - -skip- networking que faz com que o MySQL funcione apenas com conexões locais via sockets. ▪ Se o aplicativo estiver em uma máquina e o servidor em outra como em ambientes cliente/servidor, ou mesmo web onde o servidor web está em uma máquina e o servidor MySQL em outra, esta opção não pode ser utilizada.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Nos casos onde o acesso a rede deve ser necessário, a primeira providência a ser tomada é permitir conexões aos usuários apenas das máquinas de onde eles têm permissão para acessar o banco de dados. Isto deve ser feito através dos comandos GRANT e REVOKE. ▪ A segunda providência é estabelecer uma conexão segura com o servidor. A senha no momento da autenticação não é transmitida em texto plano, porém o algoritmo de criptografia não é forte e pode ser facilmente quebrado. By: Mario Pires, dr. MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Outro problema com a conexão estabelecida entre cliente e servidor é que todos os dados (requisições SQL e retorno dos dados) trafegam em texto plano e qualquer um rodando um sniffer pode ver o diálogo entre o servidor e o cliente. ▪ Existem pelo menos duas soluções para este problema. A partir da versão 4.0.0, o MySQL tem suporte a SSL, que é um protocolo que utiliza diferentes algoritmos de criptografia para assegurar que os dados recebidos por uma rede pública são confiáveis. By: Mario Pires, dr. MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Outra solução é criar uma VPN usando aplicativos como SSH que criam um túnel criptográfico entre dois hosts e o host remoto passa a enxergar o servidor como se estivesse rodando localmente. ▪ Usando o MySQL com suporte a SSL, você pode, ao criar um usuário, informar ao servidor que este usuário precisa ser autenticado usando também atributos do SSL além dos dados padrão (usuário, senha, nome/IP do host). Basta para isto acrescentar a cláusula REQUIRE no comando GRANT.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Exemplificando, vamos fazer com que a autenticação do usuário Alfredo seja feita com SSL. ➢ GRANT ALL PRIVILEGES ON expedicao.* TO Alfredo@localhost IDENTIFIED BY ’senha_do_alfredo’ REQUIRE SSL;
O manual do MySQL dá todas as informações passo a
passo para criar certificados para o MySQL e como configurar o MySQL para utilizar acesso seguro via SSL.
By: Mario Pires, dr.
MySQL - CONFIGURAÇÃO DE AUTENTICAÇÃO DE CLIENTE 5 - Conexão via rede (MySQL) ▪ Se o servidor MySQL deve ser visto só na rede local, o acesso externo deve ser bloqueado. Pode fazer isto com o próprio esquema de privilégios, mas assim só o acesso ao banco de dados estará restrito e a porta continuará aberta para a rede externa. ▪ A melhor alternativa para evitar este acesso indesejado é com a implementação de um firewall. Se a rede externa não deve acessar o MySQL o próprio firewall se encarrega de filtrar o acesso. Dessa forma a porta de acesso ao MySQL será fechada para conexões externas.