MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB:Servidor tem avisos de inicialização ''O controle de acesso não está habilitado para o banco de dados''


Mongodb v3.4

Você precisa fazer o seguinte para criar um banco de dados seguro:

Certifique-se de que o usuário que está iniciando o processo tenha permissões e que os diretórios existam (/data/db nesse caso).

1) Inicie o MongoDB sem controle de acesso.
mongod --port 27017 --dbpath /data/db

2) Conecte-se à instância.
mongo --port 27017

3) Crie o usuário administrador (no banco de dados de autenticação de administrador) .
use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

4) Reinicie a instância do MongoDB com controle de acesso.
mongod --auth --port 27017 --dbpath /data/db

5) Conecte-se e autentique-se como administrador do usuário.
mongo --port 27017 -u "myUserAdmin" -p "abc123" --authenticationDatabase "admin"

6) Crie usuários adicionais conforme necessário para sua implantação (por exemplo, no banco de dados de autenticação de teste) .
use test
db.createUser(
  {
    user: "myTester",
    pwd: "xyz123",
    roles: [ { role: "readWrite", db: "test" },
             { role: "read", db: "reporting" } ]
  }
)

7) Conecte e autentique como myTester.
mongo --port 27017 -u "myTester" -p "xyz123" --authenticationDatabase "test"

Basicamente, acabei de explicar a versão curta dos documentos oficiais aqui:https://docs.mongodb.com/master/tutorial/enable-authentication/