Criar um super-utilizador em mongo

Estou a tentar criar um utilizador em mongo que possa fazer qualquer coisa em qualquer db.

De acordo com o guia, criei um novo administrador. http://docs.mongodb.org/manual/tutorial/add-user-administrator

Este é o código:

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )
Depois parei o mongo, activei o auth e reiniciei o mongo.

Depois tentei criar uma base de dados com o seu utilizador.

de acordo com este guia: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

use fragola 
db.users.save( {username:"fragolino"} )

e eu percebo isto: "não autorizado para inserir no fragola.users "

Alguém me pode ajudar?

Author: Community, 2014-03-25

2 answers

O papel userAdminAnyDatabase dá ao utilizador a capacidade de criar utilizadores e atribuir-lhes funções arbitrárias. Por causa disso, esse usuário tem o poder de fazer qualquer coisa na base de dados, porque ele pode dar a qualquer um qualquer permissão (incluindo a si mesmo).

No entanto, a função userAdminAnyDatabase por si só não permite ao Utilizador fazer mais nada além de atribuir direitos arbitrários a utilizadores arbitrários. Para realmente fazer algo na base de dados, esse usuário precisa ter o seguinte adicional funções:

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

Um utilizador que tenha os três direitos acima referidos e userAdminAnyDatabase é um verdadeiro super-usuário e pode fazer qualquer coisa.

 41
Author: drmirror, 2014-03-25 15:28:37

Do docs. mongodb. org-superusuário-papéis

Vamos escrever uma resposta que pareça simples e também simples de implementar

Passos:

1 : sudo apt-get install mongodb-org - no novo terminal

2 : sudo mongod --port 27017 --dbpath /var/lib/mongodb

3 : mongo --port 27017 - no novo terminal

4 : use admin

5: como @drmirror disse, um utilizador deve ter tudo 4 papéis a serem superusuário

Para A Versão Mongo 2.

db.createUser(
{
    user: "tom",
    pwd: "jerry",
    roles: [
              { role: "userAdminAnyDatabase", db: "admin" },
              { role: "readWriteAnyDatabase", db: "admin" },
              { role: "dbAdminAnyDatabase", db: "admin" },
              { role: "clusterAdmin", db: "admin" }
           ]
})

Para A Versão 3 Do Mongo.

db.createUser(
   {
       user: "tom", 
       pwd: "jerry", 
       roles:["root"]
   })

6 : sudo /etc/init.d/mongod stop OU sudo service mongod stop - no novo terminal

7 : sudo /etc/init.d/mongod start ou sudo service mongod start

8 : restart your pc

9 : sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb - no novo terminal

10: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - no novo terminal

Nota : o passo 10 é o passo mais importante .

Ele vai dar saída no terminal como

MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>
 43
Author: vijay, 2016-10-05 07:45:09