MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

show dbs дава грешка "Не е упълномощен за изпълнение на командата".

Трябваше да стартирате екземпляра mongod с контрол на достъпа, т.е. опцията --auth на командния ред, като например:

$ mongod --auth

Нека стартираме mongo shell и да създадем администратор в администраторската база данни:

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

Сега, ако изпълните командата "db.stats()" или "show users", ще получите грешка "not authorized on admin to executing command..."

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

Причината е, че все още не сте предоставили роля "read" или "readWrite" на потребителя myUserAdmin. Можете да го направите, както следва:

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

Сега можете да го потвърдите (командата „покажи потребителите“ вече работи):

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

Сега, ако стартирате "db.stats()", вие също ще се оправите:

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

Този механизъм за потребители и роли може да се приложи и към всякакви други бази данни в MongoDB, в допълнение към администраторската база данни.

(MongoDB версия 3.4.3)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преобразувайте ObjectID (Mongodb) в String в JavaScript

  2. Метод MongoDB Date().

  3. Сравняване на производителността на MongoDB в публични облаци:AWS, Azure &DigitalOcean

  4. Как да създадете текстов индекс в MongoDB

  5. Препратка към схемата на Mongoose и недефиниран тип „ObjectID“