Desejo configurar a autenticação de nome de usuário e senha para minha instância do MongoDB, para que qualquer acesso remoto solicite o nome de usuário e a senha. Eu tentei o tutorial no site do MongoDB e fiz o seguinte:
use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Depois disso, saí e corri o mongo novamente. E não preciso de senha para acessá-lo. Mesmo se eu me conectar ao banco de dados remotamente, não será solicitado o nome de usuário e a senha.
ATUALIZAÇÃO Aqui está a solução que acabei usando
1) At the mongo command line, set the administrator:
use admin;
db.addUser('admin','123456');
2) Shutdown the server and exit
db.shutdownServer();
exit
3) Restart mongod with --auth
$ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/
4) Run mongo again in 2 ways:
i) run mongo first then login:
$ ./mongodb/bin/mongo localhost:27017
use admin
db.auth('admin','123456');
ii) run & login to mongo in command line.
$ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456
O nome de usuário e a senha funcionarão da mesma maneira para mongodump
e mongoexport
.
authentication
mongodb
murvinlai
fonte
fonte
Respostas:
Você precisa começar
mongod
com a--auth
opção depois de configurar o usuário.No site do MongoDB:
Autenticação MongoDB
fonte
admin
banco de dados, use outro banco de dados e tente novamente. Somente um userAdmin (AnyDatabase) pode se conectaradmin
.Uau tantas respostas complicadas / confusas aqui.
Isso é a partir da v3.4 .
Resposta curta.
1) Inicie o MongoDB sem controle de acesso.
2) Conecte-se à instância.
3) Crie o usuário.
4) Pare a instância do MongoDB e inicie-a novamente com controle de acesso.
5) Conecte e autentique como o usuário.
Resposta longa: leia isto se quiser entender corretamente.
É realmente simples. Vou burlar o seguinte https://docs.mongodb.com/manual/tutorial/enable-authentication/
Se você quiser saber mais sobre o que as funções realmente fazem, leia mais aqui: https://docs.mongodb.com/manual/reference/built-in-roles/
1) Inicie o MongoDB sem controle de acesso.
2) Conecte-se à instância.
3) Crie o administrador do usuário. A seguir, cria um administrador de usuário no
admin
banco de dados de autenticação. O usuário é umdbOwner
sobre osome_db
banco de dados e NÃO sobre oadmin
banco de dados, isso é importante lembrar.Ou se você deseja criar um administrador que seja administrador sobre qualquer banco de dados:
4) Pare a instância do MongoDB e inicie-a novamente com controle de acesso.
5) Conecte e autentique como administrador do usuário no
admin
banco de dados de autenticação, NÃO nosome_db
banco de dados de autenticação. O administrador do usuário foi criado noadmin
banco de dados de autenticação, o usuário não existe nosome_db
banco de dados de autenticação.Agora você está autenticado como um
dbOwner
over thesome_db
database. Então agora, se você deseja ler / escrever / fazer coisas diretamente nosome_db
banco de dados, pode mudar para ele.Mais sobre funções: https://docs.mongodb.com/manual/reference/built-in-roles/
Se você deseja criar usuários adicionais que não são administradores de usuários e que são apenas usuários normais, continue lendo abaixo.
6) Crie um usuário normal. Este usuário será criado no
some_db
banco de dados de autenticação abaixo.7) Saia do shell mongo, reconecte-se, autentique como o usuário.
fonte
Primeiro,
#auth=true
descomente a linha que começa no arquivo de configuração do mongod (caminho padrão/etc/mongo.conf
). Isso habilitará a autenticação para o mongodb.Em seguida, reinicie o mongodb:
sudo service mongod restart
fonte
/etc/mongod.conf
não é/etc/mongo.conf
Esta resposta é para o Mongo 3.2.1 Reference
Terminal 1:
Terminal 2:
se você deseja adicionar sem funções (opcional):
para verificar se autenticado ou não:
deve dar a você:
outro :
fonte
use admin
antes,createUser
caso contrário, deu um erro.Aqui está um código javascript para adicionar usuários.
Comece
mongod
com--auth = true
Acesse o banco de dados do administrador do mongo shell e passe o arquivo javascript.
mongo admin "Nome do arquivo.js"
"Filename.js"
Agora que a adição do usuário está completa, podemos verificar o acesso ao banco de dados a partir do mongo shell
fonte
https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization
Edite o arquivo de configurações do mongo;
Adicione a linha:
Reinicie o serviço
Saudações
fonte
Primeiro execute o mongoDB no terminal usando
agora execute o mongo shell use os seguintes comandos
Reinicie a instância do MongoDB com controle de acesso.
Agora, autentique-se na linha de comando usando
Eu li isso
https://docs.mongodb.com/manual/tutorial/enable-authentication/
fonte
MongoDB Enterprise > db.system.users.find() { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SC RAM-SHA-1" : { "iterationCount" : 10000, "salt" : "k96PCEflidMY5seVju+gAw==", "s toredKey" : "CabQTnJtny7cv0wT5X8oX9QOn3A=", "serverKey" : "RJyCdnlIhyIfj2+d44L61 bYK+MU=" } }, "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" }, { "role" : "dbAdmin", "db" : "admin" }, { "role" : "userAdmin", "db" : "admin" }, { "role" : "root", "db" : "admin" } ] }
ainda autenticação falharroot
role para fornecer acesso às operações e a todos os recursos das seguintes funções combinadas ... role rootFoi o que fiz no Ubuntu 18.04:
fonte
Você pode mudar
/etc/mongod.conf
.Antes
#security:
Depois de
Então
sudo service mongod restart
fonte
Siga as etapas abaixo em ordem
mongod --auth
no caso do Linux, editar o/etc/mongod.conf
arquivo para adicionarsecurity.authorization : enabled
e reiniciar o serviço mongd.mongo -u "admin" -p "admin123" --authenticationDatabase "admin"
. É isso aíVocê pode conferir este post para entrar em mais detalhes e aprender a se conectar a ele usando o mangusto.
fonte
Criação de usuário com senha para um banco de dados específico para proteger o acesso ao banco de dados:
fonte
Você precisará mudar para o banco de dados em que deseja que o usuário (não o administrador db) ...
use mydatabase
Consulte esta publicação para obter mais ajuda ... https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/
fonte
Essas etapas funcionaram em mim:
fonte
A melhor prática para se conectar ao mongoDB da seguinte maneira:
Após a instalação inicial,
use admin
Em seguida, execute o seguinte script para criar usuário administrador
db.createUser( { user: "YourUserName", pwd: "YourPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, { role: "readWriteAnyDatabase", db: "admin" }, { role: "dbAdminAnyDatabase", db: "admin" }, { role: "clusterAdmin", db: "admin" } ] })
o script a seguir criará o usuário administrador para o banco de dados.
efetue login no db.admin usando
mongo -u YourUserName -p YourPassword admin
Após o login, você pode criar um número N do banco de dados com a mesma credencial de administrador ou diferente, repetindo 1 a 3.
Isso permite criar usuário e senha diferentes para a coleção diferente que você cria no MongoDB
fonte
Depois de criar um novo usuário, não se esqueça da
grant
read/write/root
permissão do usuário. você pode tentar ocmd: db.grantRolesToUser('yourNewUsername',[{ role: "root", db: "admin" }])
fonte