Подтвердить что ты не робот

Создать суперпользователя в монго

Я пытаюсь создать пользователя в mongo, который может делать что угодно в любом db.

В соответствии с руководством я создал нового администратора: http://docs.mongodb.org/manual/tutorial/add-user-administrator

Это код:

use admin
db.addUser( { user: "try1",
              pwd: "hello,
              roles: [ "userAdminAnyDatabase" ] } )

Затем я остановил mongo, включил auth и перезапустил mongo.

Затем я попытался создать базу данных со своим пользователем.

В соответствии с этим руководством: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

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

И я получаю это: "не разрешено вставлять на fragola.users"

Кто-нибудь может мне помочь?

4b9b3361

Ответ 1

Роль userAdminAnyDatabase дает пользователю возможность создавать пользователей и назначать им произвольные роли. Из-за этого у этого пользователя есть возможность сделать что-либо в базе данных, потому что он может дать кому-либо любое разрешение (включая самого себя).

Однако роль userAdminAnyDatabase сама по себе не позволяет пользователю делать что-либо еще, кроме того, что назначает произвольные права произвольным пользователям. Чтобы на самом деле что-то сделать в базе данных, этот пользователь должен иметь следующие дополнительные роли:

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

Пользователь с тремя правами и userAdminAnyDatabase является истинным суперпользователем и может делать что угодно.

Ответ 2

из docs.mongodb.org-superuser-ролей

Позволяет написать ответ, который выглядит простым и простым в реализации

Шаги:

1: sudo apt-get install mongodb-org - в новом терминале

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

3: mongo --port 27017 - в новом терминале

4: use admin

5: Поскольку @drmirror говорит, что пользователь должен иметь все 4 роли суперпользователя

Для версии 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" }
           ]
})

Для версии Mongo 3.

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

6: sudo /etc/init.d/mongod stop ИЛИ sudo service mongod stop - в новом терминале

7: sudo /etc/init.d/mongod start ИЛИ sudo service mongod start

8: restart your pc

9: sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb - в новом терминале

10: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - в новом терминале

Примечание: шаг 10 является наиболее важным шагом.

он даст вывод на терминале, например

MongoDB shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>