Índice
Ao estabelecer nosso serviço em um ambiente de produção ou talvez em um ambiente de desenvolvimento com vários usuários, a primeira coisa que devemos fazer é criar um esquema de segurança, isso nos permite prevenir nossa Bases de dados são acessados por pessoas incorretamente.A principal característica de MongoDB é que ao instalar uma instância ela roda sem ter criado nenhum tipo de medida de autenticação, é assim para facilitar o início do desenvolvimento, mas chega um ponto em que devemos proteger nossa infraestrutura.
Outro ponto importante que se refere à questão da segurança e backup de nossos dados, é quando precisamos fazer um backup de um determinado momento, mas não queremos que haja movimentação de dados, pois desta forma garantimos a integridade de nossos Banco de dados e coleções de documentos. Neste aspecto, também existe uma ferramenta dentro MongoDB isso nos permite bloqueá-lo temporariamente para garantir que o que copiamos é apropriado.
RequisitosOs requisitos de que precisamos nesta ocasião são muito simples, simplesmente devemos ter uma instância de MongoDB instalado e funcionando em nosso sistema, também precisaremos acessar o serviço por meio do console. Este tutorial foi desenvolvido em janelas, então alguns comandos podem mudar em outros sistemas operacionais, mas tudo tem a ver com o que é feito fora do console MongoDB, e a forma como expressamos as rotas.
Definir os parâmetros de autenticação do usuário não é algo vital para o funcionamento do MongoDB em produção, pois podemos instalar o serviço para que o equipamento onde está a funcionar tenha um filtro de ligação, pelo que se tentarmos aceder a esse equipamento fora da rede não teremos acesso.
Essa abordagem simplista de segurança é muito eficaz, mas apenas para projetos em que o serviço não é compartilhado com outras equipes, uma vez que, se tivermos diferentes equipes de desenvolvimento trabalhando no mesmo servidor, precisaremos de outra coisa. É aqui que o autenticação, com ele cuidamos de solicitar um usuário e senha por coleção se quisermos, assim temos a possibilidade de separar adequadamente as diferentes instâncias para cada computador.
Ambas as medidas de segurança não são exclusivas e se queremos utilizá-las simultaneamente, o que estamos fazendo é criando um serviço muito mais seguro para o nosso ambiente, seja em produção, pré-produção ou desenvolvimento multi-equipe.
O autenticação em sua forma mais básica, é conseguido com o comando createUser Isso deve ser executado quando tivermos selecionado o Base de dados admin que é onde nossos usuários devem estar.
É importante notar que desde a versão 2.6 do MongoDB é que o método começou a ser usado createUser, no passado tudo era resolvido pelo método adicionar usuárioNo entanto, a alteração foi feita para permitir maior versatilidade ao fazer alterações.
Vamos ver como podemos definir um usuário administrador e, em seguida, um usuário que só pode ler o banco de dados teste.
A estrutura do documento que recebe o método createUser É o seguinte:
{"Usuário": "nome de usuário", "pwd": "senha", "funções": [{"função": "", "db": ""},]}Como observamos, devemos estabelecer o nome e a senha do usuário que estamos criando, mas, além disso, devemos também criar as funções, que é uma estrutura de permissões que nos permitirá definir os poderes que atribuímos ao usuário .
No exemplo a seguir, vamos criar um usuário administrador que tenha acesso a todos os Bases de dados e que pode controlar o serviço, para isso usaremos o papéis:
- clusterAdmin
- readAnyDatabase
- ler escrever
Com esses três parâmetros, já podemos ter nosso primeiro usuário para gerenciar. Vamos ver como fica no console:
Ao reiniciar o serviço, podemos então colocar nosso usuário administrador recém-criado e, para testá-lo, criaremos um usuário que só pode ler o Base de dados. Vamos ver como reiniciamos o serviço nas etapas a seguir.
Simplesmente temos que pará-lo primeiro, por exemplo, em janelas nos posicionamos no console em que está sendo executado e pressionamos as teclas CTRL + C. Então começamos nosso serviço novamente normalmente, mas no final passamos o parâmetro auth, como podemos ver no seguinte console:
mongo.exe --username = root --password = 123456 adminCom essa linha anterior podemos acessar nosso serviço com segurança, podemos ver isso na imagem a seguir:
Uma vez que verificamos como acessar com autenticação, vamos criar um usuário que só pode ler no Base de dados teste, para isso vamos repetir a criação de um usuário, mas vamos especificar a função:
lerDesta forma, limitaremos o usuário a não poder escrever nas coleções. Vamos ver a resposta em nosso console:
Uma das atividades mais complexas para garantir quando fazemos um backup é que devemos garantir a integridade dos dados, isso nos leva a um dilema, localizar o momento em que menos usuários trabalham e fazer o backup, ou independentemente dos dados .
fsync e bloqueioNão deveria ser assim, claro que fazer um backup no momento em que sabemos que há o menor número de usuários é sempre recomendado, pois evitamos problemas de aplicação, garantindo que os dados sejam sempre possíveis se usarmos o que em MongoDB nós sabemos como fsync Y trancar.
Com estes dois parâmetros podemos fazer com que nosso Banco de Dados rejeite as gravações, e no momento certo podemos realizar os backups de forma adequada.
Para criar este bloqueio, devemos executar o seguinte comando em nosso banco de dados:
db.runCommand ({"fsync": "1", "lock": "1"});Com isso teremos nosso Base de dados efetivamente bloqueado contra escrita:
db.fsyncUnlock ();Com este último teremos mais uma vez nosso Base de dados capaz de receber escrita:
O ideal é criar um ambiente com replicação, onde possamos acessar uma cópia dos dados e assim podermos manipular com qualquer uma das opções que temos os backups necessários. Estar em uma réplica do Base de dados produção podemos bloqueá-lo, ou desligá-lo e fazer o backup de forma que o usuário nunca encontre um erro na aplicação porque não pode escrever um registro.
Quanto aos backups, as coisas ficam mais complicadas visto que é aconselhável utilizar réplicas de servidor, porém devido à forma como foi concebido MongoDB, este tipo de estruturas senhor de escravos São muito fáceis de implementar, portanto entender o conceito é o mais difícil, mas sua aplicação é extremamente amigável. DBA.
Com isso encerramos este tutorial, pois vemos a administração do MongoDB É bastante avançado, se tivermos uma estrutura de tamanho médio, podemos já ter pensado na questão da segurança do usuário, embora criar usuários não seja complexo, se é bom sentar e definir uma boa estrutura para criar este tipo de permitem.Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo