MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

show dbs daje błąd braku autoryzacji do wykonania polecenia

Powinieneś uruchomić instancję mongod z kontrolą dostępu, tj. opcją wiersza poleceń --auth, taką jak:

$ mongod --auth

Uruchommy powłokę mongo i utwórzmy administratora w bazie danych administratora:

$ mongo
> use admin
> db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

Teraz, jeśli uruchomisz polecenie „db.stats()” lub „pokaż użytkowników”, otrzymasz błąd „brak uprawnień administratora do wykonania polecenia...”

> db.stats()
{
        "ok" : 0,
        "errmsg" : "not authorized on admin to execute command { dbstats: 1.0, scale: undefined }",
        "code" : 13,
        "codeName" : "Unauthorized"
}

Powodem jest to, że nadal nie przyznałeś roli „odczyt” lub „odczytWrite” użytkownikowi myUserAdmin. Możesz to zrobić jak poniżej:

> db.auth("myUserAdmin", "abc123")
> db.grantRolesToUser("myUserAdmin", [ { role: "read", db: "admin" } ])

Teraz możesz to zweryfikować (polecenie „pokaż użytkowników” teraz działa):

> show users
{
        "_id" : "admin.myUserAdmin",
        "user" : "myUserAdmin",
        "db" : "admin",
        "roles" : [
                {
                        "role" : "read",
                        "db" : "admin"
                },
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

Teraz, jeśli uruchomisz "db.stats()", wszystko będzie dobrze:

> db.stats()
{
        "db" : "admin",
        "collections" : 2,
        "views" : 0,
        "objects" : 3,
        "avgObjSize" : 151,
        "dataSize" : 453,
        "storageSize" : 65536,
        "numExtents" : 0,
        "indexes" : 3,
        "indexSize" : 81920,
        "ok" : 1
}

Ten mechanizm użytkownika i ról można zastosować do dowolnych innych baz danych w MongoDB, oprócz bazy danych administratora.

(MongoDB w wersji 3.4.3)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pobierz wygenerowany skrypt w sterowniku MongoDB C#

  2. Określ wiele kryteriów dla elementów tablicy

  3. Usuń wszystko z bazy danych MongoDB

  4. Jak uniknąć ostrzeżenia transparent_hugepage/defrag z mongodb?

  5. Zrozumienie opcji tworzenia kopii zapasowych MongoDB