it-swarm.com.de

Erstelle einen Superuser im Mongo

Ich versuche, in Mongo einen Benutzer zu erstellen, der in jeder Datenbank alles kann.

Dem Leitfaden zufolge habe ich einen neuen Administrator erstellt: http://docs.mongodb.org/manual/tutorial/add-user-administrator

Dies ist der Code:

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

Dann habe ich mongo gestoppt, die Authentifizierung aktiviert und mongo neu gestartet.

Dann habe ich versucht, eine Datenbank mit seinem Benutzer zu erstellen.

Nach dieser Anleitung: http://www.mkyong.com/mongodb/how-to-create-database-or-collection-in-mongodb/

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

Und ich bekomme folgendes: "nicht autorisiert zum Einfügen auf fragola.users"

Kann mir jemand helfen?

41
Simo

Die Rolle userAdminAnyDatabase gibt dem Benutzer die Möglichkeit, Benutzer anzulegen und ihnen beliebige Rollen zuzuweisen. Aus diesem Grund kann dieser Benutzer in der Datenbank alles tun, da er jedem (auch sich selbst) die Erlaubnis erteilen kann.

Die Rolle userAdminAnyDatabase allein erlaubt dem Benutzer jedoch nichts anderes, als willkürlichen Benutzern willkürliche Rechte zuzuweisen. Um tatsächlich etwas in der Datenbank zu tun, muss dieser Benutzer die folgenden zusätzlichen Rollen haben:

readWriteAnyDatabase
dbAdminAnyDatabase
clusterAdmin

Ein Benutzer mit den oben genannten drei Rechten nduserAdminAnyDatabase ist ein echter Superuser und kann alles.

53
drmirror

von docs.mongodb.org-Superuser-Rollen

Schreiben wir eine Antwort, die einfach aussieht und auch einfach zu implementieren ist

Schritte :

1: Sudo apt-get install mongodb-org - in neuem Terminal

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

3 : mongo --port 27017 - in neuem Terminal

4: use admin

5: Wie @drmirror sagte, sollte ein Benutzer alle 4 Rollen haben, um Superuser zu sein

Für Mongo Version 2.

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

Für Mongo Version 3.

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

6: Sudo /etc/init.d/mongod stop OR Sudo service mongod stop - in neuem 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 - in neuem Terminal

10: mongo --port 27017 -u "tom" -p "jerry" --authenticationDatabase "admin" - in neuem Terminal

Hinweis : Schritt 10 ist der wichtigste Schritt.

es wird eine Ausgabe wie auf dem Terminal geben

MongoDB Shell version: 2.6.11
connecting to: 127.0.0.1:27017/test
>
55
vijay