Создать суперпользователя в монго
Я пытаюсь создать пользователя в 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"
Кто-нибудь может мне помочь?
Ответы
Ответ 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
>