J'essaie de créer un utilisateur dans mongo qui peut faire n'importe quoi dans n'importe quel db.
Selon le guide, j'ai créé un nouvel administrateur: http://docs.mongodb.org/manual/tutorial/add-user-administrator
Voici le code:
use admin
db.addUser( { user: "try1",
pwd: "hello,
roles: [ "userAdminAnyDatabase" ] } )
Ensuite, j'ai arrêté mongo, activé l'authentification et redémarré mongo.
Ensuite, j'ai essayé de créer une base de données avec son utilisateur.
Selon ce guide: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/
use fragola
db.users.save( {username:"fragolino"} )
Et je reçois ceci: "non autorisé pour l'insertion sur fragola.users"
Est-ce que quelqu'un peut m'aider?
Le rôle userAdminAnyDatabase
donne à l'utilisateur la possibilité de créer des utilisateurs et de leur attribuer des rôles arbitraires. De ce fait, cet utilisateur a le pouvoir de faire quoi que ce soit sur la base de données, car il peut donner à quiconque une autorisation (y compris lui-même).
Cependant, le rôle userAdminAnyDatabase
ne permet pas à lui seul de faire autre chose que d'attribuer des droits arbitraires à des utilisateurs arbitraires. Pour réellement faire quelque chose dans la base de données, cet utilisateur doit avoir les rôles supplémentaires suivants:
readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin
Un utilisateur qui a les trois droits ci-dessus etuserAdminAnyDatabase
est un vrai super-utilisateur et peut tout faire.
à partir de docs.mongodb.org-superuser-roles
Permet d'écrire une réponse qui semble simple et aussi simple à mettre en œuvre
Pas :
1 : Sudo apt-get install mongodb-org
- dans le nouveau terminal
2: Sudo mongod --port 27017 --dbpath /var/lib/mongodb
3: mongo --port 27017
- dans le nouveau terminal
4: use admin
5: Comme @drmirror l'a dit, un utilisateur doit avoir tous les 4 rôles pour être superutilisateur
db.createUser(
{
user: "tom",
pwd: "jerry",
roles: [
{ role: "userAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "clusterAdmin", db: "admin" }
]
})
db.createUser(
{
user: "tom",
pwd: "jerry",
roles:["root"]
})
6: Sudo /etc/init.d/mongod stop
OR Sudo service mongod stop
- dans le nouveau terminal
7 : Sudo /etc/init.d/mongod start
OR Sudo service mongod start
8: restart your pc
9: Sudo mongod --auth --port 27017 --dbpath /var/lib/mongodb
- dans le nouveau terminal
dix: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin"
- dans le nouveau terminal
Remarque : l'étape 10 est l'étape la plus importante.
cela donnera une sortie sur le terminal comme
MongoDB Shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>