Baixe o app para aproveitar ainda mais
Prévia do material em texto
Grupo SER Educacional | Tecnologias e Linguagens de Banco de Dados 1 TECNOLOGIAS E LINGUAGENS DE BANCO DE DADOS Tecnologias e Linguagens de Banco de Dados JOÃO DANILO NOGUEIRA SEGURANÇA DA INFORMAÇÃO NO MYSQL AULA 08 Diretor Executivo DAVID LIRA STEPHEN BARROS Direção Editorial ANDRÉA CÉSAR PEDROSA Projeto Gráfico MANUELA CÉSAR DE ARRUDA Autor JOÃO DANILO NOGUEIRA Desenvolvedor CAIO BENTO GOMES DOS SANTOS O Autor João Danilo Nogueira Olá. Meu nome é João Danilo. Sou graduado em Ciência da Computação pela Faculdade Grande Fortaleza (FGF) e amo programar. Atualmente, o foco de minha expertise é na área de gerenciamento de projetos, teoria dos números, RSA e criptografia. Vai ser um prazer enorme ajudar VOCÊ a se tornar um excelente desenvolvedor de software ou administrador de banco de dados. Conte comigo para lhe ajudar nessa trajetória rumo ao seu desenvolvimento profissional! Muito sucesso para você. JOÃO DANILO NOGUEIRA “ Iconográficos Olá. Meu nome é Manuela César de Arruda. Sou o responsável pelo projeto gráfico de seu material. Esses ícones irão aparecer em sua trilha de aprendizagem toda vez que: INTRODUÇÃO para o início do desenvolvimento de uma nova competência; DEFINIÇÃO houver necessidade de se apresentar um novo conceito; NOTA quando forem necessários observações ou complementações para o seu conhecimento; IMPORTANTE as observações escritas tiveram que ser priorizadas para você; EXPLICANDO MELHOR algo precisa ser melhor explicado ou detalhado; VOCÊ SABIA? curiosidades e indagações lúdicas sobre o tema em estudo, se forem necessárias; SAIBA MAIS textos, referências bibliográficas e links para aprofundamento do seu conhecimento; REFLITA se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido sobre; ACESSE se for preciso acessar um ou mais sites para fazer download, assistir vídeos, ler textos, ouvir podcast; RESUMINDO quando for preciso se fazer um resumo acumulativo das últimas abordagens; ATIVIDADES quando alguma atividade de autoaprendizagem for aplicada; TESTANDO quando o desenvolvimento de uma competência for concluído e questões forem explicadas; Sumário 1 SEGURANÇA DA INFORMAÇÃO NO MYSQL .............................................................. 6 1.1 Criando novos usuários ......................................................................................... 6 1.2 Editando privilégios de usuários .......................................................................... 11 Considerações Finais ................................................................................................ 13 Atividades de Autoaprendizagem .............................................................................. 13 Questionário Avaliativo ............................................................................................ 13 Bibliografia .............................................................................................................. 14 Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 6 1 Segurança da Informação no MySQL INTRODUÇÃO: Em um sistema gerenciador de banco de dados, a segurança da informação se dá em dois níveis: interno e externo. No nível externo, a proteção dos dados é exercida pelos mecanismos de segurança de rede, providos pelo sistema operacional e outras ferramentas acopladas, como firewall, antivírus, entre outros. Já no nível interno, a segurança é exercida pelo próprio SGBD, no que diz respeito aos níveis de acesso aos dados, que são concedidos por meio da linguagem DCL. Com essa linguagem, é possível definir quem tem permissão de visualizar ou atualizar cada coluna de cada tabela criada no âmbito de um ba nco de dados. Cabe ao administrador de dados, também conhecido como DBA, definir esses níveis de permissão, e não ao programador, que estará limitado a esses níveis de permissão. 1.1 Criando novos usuários Antes de falarmos em segurança da informação em um banco de dados, precisamos ter um elenco de usuários ativos para gerenciar seus acessos e privilégios quanto ao banco de dados em tela. Para ter acesso ao formulário de criação de novos usuários, bem como a configuração de seus acessos, abra o PhpMyAdmin, clique no banco de dados desejado (“EscolaPrime”, por exemplo), e acione a aba “Privileges”. OBJETIVO: Ao término desta aula você será capaz de gerenciar a segurança e o compartilhamento de dados no SGBD. Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 7 Figura 1 - Formulário de criação de usuários e configuração de seus privilégios. Para adicionar uma nova conta de usuário, siga este passo a passo: Clique no link “Add user acount” (adicione conta de usuário) e observe a formação de uma página contendo um formulário de usuários: Figura 2 - Campos cadastrais do novo usuário que está sendo criado. Por default, o usuário “root”, que é criado automaticamente no ato da instalação do MySQL, recebe todos os privilégios possíveis para acesso aos bancos de dados criados. NOTA Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 8 Na sequência, pelo menos, preencha o nome do usuário e clique por sobre o botão “Generate” para que uma nova senha seja automaticamente gerada pelo PhpMyAdmin. Caso queira de fato gerar uma senha manualmente, basta preencher os demais campos antes deste botão. Rolando a página um pouco para baixo, vemos que ainda há campos a serem preenchidos neste formulário. O próximo conjunto de campos se refere às permissões de acesso deste usuário que está sendo criado. Veja, na figura abaixo, que podemos estabelecer exatamente que comandos esse usuário pode executar neste banco de dados. Figura 3 - Continuação do formulário anterior. Observe que o PhpMyAdmin divide os comandos em três grupos. O da esquerda engloba os comandos DML. Na parte central, ele concentra os comandos DDL e, por fim, os comandos DCL e demais comandos de administração do banco de dados, mais à direita. NOTA Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 9 Rolando um pouco mais para baixo (ou mais à direita, dependendo da responsividade de seu navegador), vemos mais um conjunto de campos a serem preenchidos. Este grupo de campos se refere a eventuais limites de acessos por parte do usuário que está sendo criado. Como podemos observar na figura abaixo, o PhpMyAdmin permite estabelecer limites de consultas (“queries”), atualizações (“updates”), e conexões (“connections”) por hora, além do número máximo de conexões simultâneas (“max user connections”). Figura 4 - Continuação do formulário anterior. Por fim, role a página até o fim e perceba que o PhpMyAdmin ainda oferece a oportunidade de estabelecermos alguns requisitos de segurança para o banco de dados. A primeira opção (vide figura a seguir) suprime qualquer requisito de segurança adicional. As outras opções, porém, forçam que o programa ou comando que i rá interagir com o banco O valor “zero”, quando informado em quaisquer desses campos, remove o limite dos respectivos requisitos. NOTATecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 10 de dados forneça um dos protocolos especificados, inclusive outro protocolo a ser informado nos três últimos campos de texto. Dependendo do tipo de banco de dados que se esteja definindo, este requisito pode ser fundamental, como é o caso dos bancos de dados que lidam com cartões de crédito e contas bancárias. Figura 5 – Continuação do formulário anterior. Finalmente, chegamos ao término da definição de segurança deste banco de dados. Para executar todos os parâmetros informados neste formulário, basta clicar no botão “Go”, como ilustrado na figura acima. Considerando que demos total privilégio ao João Marcelo, o PhpMyAdmin executou o seguinte comando DCL: CREATE USER 'João Marcelo Lyra'@'%' IDENTIFIED WITH mysql_native_pass word AS '***';GRANT SELECT, SHOW DATABASES, CREATE VIEW, SHOW VIEW Figura 6 - Página de feedback da criação do usuário. http://localhost/phpmyadmin/url.php?url=https://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_user Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 11 ON *.* TO 'João Marcelo Lyra'@'%' REQUIRE NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;GRANT ALL PRIVILEGES ON `escolaprime`.* TO 'João Marcelo Lyra'@'%'; Você pode ainda editar os privilégios concedidos no formulário seguinte, como podemos visualizar ao lado. 1.2 Editando privilégios de usuários Experimente editar as permissões, desmarcando todas as caixas de verificação dos comandos das colunas do meio e da direita, deixando apenas as permissões para os comandos DML. Depois de clicar no botão “Go”, você deverá visualizar a seguinte página, contendo os comandos REVOKE e GRANT. Figura 7 - Desmarcando as permissões para comandos de estrutura ( Structure) e administração (Administration). Na prática, o PhpMyAdmin executou dois comandos DCL: REVOKE ALL PRIVILEGES ON `escolaprime`.* FROM 'João Marcelo Lyra'@'%'; GRANT SELECT, INSERT, UPDATE, DELETE ON `escolaprime`.* TO 'João Marcelo Lyra'@'%'; Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 12 Figura 8 - Painel de privilégios dos usuários. Agora é com você. Exercite o comando REVOKE, DENY e GRANT experimentando editar os privilégios desse usuário. Use o painel de privilégios ilustrado abaixo. ATIVIDADES Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 13 Considerações Finais SAIBA MAIS: Continue se aprofundando no tema “Segurança da Informação” usando bancos de dados MySQL. Para isto, recomendamos a leitura deste link de consulta e aprofundamento sobre essa questão: Artigo: “Segurança no MySQL – vulnerabilidades ou pontos fortes?”, acessível pelo link: https://imasters.com.br/infra/seguranca/seguranca- no-mysql-vulnerabilidades-ou-pontos-fortes/?trace=1519021197 (Acesso em 03/12/2017). Atividades de Autoaprendizagem ATIVIDADES: Pronto para consolidar seus conhecimentos? Leia atentamente o enunciado de sua atividade de autoaprendizagem proposta para esta aula. Se você está fazendo o seu curso presencialmente, é só abrir o seu caderno de atividades. Se você estiver cursando na moda lidade de EAD (Educação a Distância), acesse a sua trilha de aprendizagem no seu ambiente virtual e realize a atividade de modo online. Você pode desenvolver esta atividade sozinho ou em parceria com seus colegas de turma. Dificuldades? Poste suas dúvidas no fórum de discussões em seu ambiente virtual de aprendizagem. Concluiu a sua atividade? Submeta o resultado em uma postagem diretamente em seu ambiente virtual de aprendizagem e boa sorte! Questionário Avaliativo TESTANDO: Chegou a hora de você provar que aprendeu tudo o que foi abordado ao longo desta aula. Para isto, leia e resolva atentamente as questões do seu caderno de atividades. Se você estiver fazendo este curso a distância, acesse o QUIZ (Banco de Questões) em seu ambiente virtual de aprendizagem. https://imasters.com.br/infra/seguranca/seguranca-no-mysql-vulnerabilidades-ou-pontos-fortes/?trace=1519021197 https://imasters.com.br/infra/seguranca/seguranca-no-mysql-vulnerabilidades-ou-pontos-fortes/?trace=1519021197 Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 14 Bibliografia BREM, M. (9 de Set de 2015). Segurança no MySQL – vulnerabilidades ou pontos fortes? iMasters. Acesso em 3 de Dez de 2017, disponível em https://imasters.com.br/infra/seguranca/seguranca-no-mysql- vulnerabilidades-ou-pontos-fortes/?trace=1519021197 Tecnologias e Linguagens de Banco de Dados | Danilo Nogueira | 15
Compartilhar