Pages: [1]   Go Down
Author Topic: [tutorial] criar usuario limitado no mysql  (Read 1414 times)
kodo no kami
RegMem
*

Karma: +0/-0
Offline Offline

Posts: 44


« on: June 13, 2016, 10:15:15 AM »

bom galera muitas vezes temos um website um forum ou algum serviço web que use banco de dados e as vezes são servidores dedicados ou seja voce esta em modo god ali kkkk, o problema que as vezes por causa de uma aplicação vulneravel por uma falha de sql injection em uma determinada aplicação no servidor acaba dando acesso a todos banco de dados naquele servidor e não apenas o da aplicação vulneravel, para evitar isso é sempre bom criar um usuario limitado para cada aplicação ou seja se invadir o blog nao vai chegar ao forum ou vice versa, melhor ainda uma conta de usuario para armazenar informações sensiveis como senhas e contas bancarias enquanto a outra armazena as noticiais e postagens do site ou seja se tiver uma pagina vulneravel nao vai chegar nos logins (tirando algumas exceções é claro como por exemplo alterar o formulario de login injetando um js porem mesmo nesse caso nao sera uma invasão diretamente naquele banco de dados do login), para a gente criar um usuario no mysql primeiro logamos em um usuario dba ou seja que tem permissão para criar usuario no meu caso é o root

Code:
mysql -u root -p
agora usamos o grant seguido das permissões

Code:
grant all
as permissões podem ser all para todas, select para apenas selecionar, insert para inserir dados, create para criar tabelas ou banco de dados, drop para dropar, update para atualizar alem de algumas outras, tambem é possivel separar mais de uma permissão por virgula


Code:
grant select,insert,drop
depois das permissões temos a palavra on seguido do banco de dados e a tabela que aquele usuario vai esta limitado, separamos o banco de dado e as tabela por ponto (o asterisco indica qualquer um ou seja no proximo exemplo vai ser todas as permissões para qualquer banco de dados e tabelas naquele servidor para aquele usuario)


Code:
grant all on * . *

podemos limitar o usuario a um banco de dados especifico colocando ele no lugar do primeiro asterisco (nesse exemplo o banco de dados se chama kodo)


Code:
grant all on kodo . *
ou a uma tabela especifica


Code:
grant all on * . noticia
ou tambem a uma tabela de um banco de dados especifico


Code:
grant all on kodo . noticia
depois temos a palavra to seguido do usuario que vamos criar


Code:
grant all on kodo . * to 'kodo'@'localhost'
por fim temos a palavra identified by seguido da senha do usuario, sendo esse o comando completo para criar um usuario


Code:
grant all on kodo . * to 'kodo'@'localhost' identified by '123456' ;



tambem precisamos criar um banco de dados afinal de contas como aquele usuario vai saber exatamente o banco de dados que deve ser criado isso por que a gente apenas limito o acesso dele ao banco de dados kodo ou seja ele nao vai conseguir criar ou acessar outro banco de dados alem do database kodo, para evitar isso criamos o banco de dados kodo para ele

Code:
create database kodo ;
agora saimos do usuario dba e logamos no usuario limitado

Code:
mysql -u kodo -p

se a gente listar os banco de dados vai ter apenas 3 que é o information_schema (padrao do mysql mesmo) o test e o banco de dados kodo que criamos antes, mesmo que exista outros bancos de dados nesse servidor sera listado apenas os que o usuario tem acesso



para a gente remover aquele usuario especifico usamos drop user seguido do usuario

Code:
drop user 'kodo'@'localhost' ;
se a gente quiser que o usuario crie ou manipule varios bancos de dados que comece com uma palavra especifica por exemplo todo banco de dado que tenha kami_ no começo entao basta colocar a palavra entre o acento grave e usamos cifrão indicando o resto `kami_%`


Code:
grant all on `kami_%` . * to 'kodo'@'localhost' identified by '123456' ;



bom galera isso é o basico do basico do mysql da para fazer muito mais com ele ^^

by kodo no kami
Logged

Pages: [1]   Go Up
Print
Jump to: