MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

show dbs memberikan Not Authorized untuk mengeksekusi perintah error

Anda seharusnya memulai instance mongod dengan kontrol akses, yaitu opsi baris perintah --auth, seperti:

$ mongod --auth

Mari kita mulai shell mongo, dan buat administrator di database admin:

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

Sekarang jika Anda menjalankan perintah "db.stats()", atau "tampilkan pengguna", Anda akan mendapatkan kesalahan "tidak diotorisasi pada admin untuk menjalankan perintah..."

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

Alasannya adalah Anda masih belum memberikan peran "baca" atau "readWrite" kepada pengguna myUserAdmin. Anda dapat melakukannya seperti di bawah ini:

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

Sekarang Anda dapat memverifikasinya (Perintah "tampilkan pengguna" sekarang berfungsi):

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

Sekarang jika Anda menjalankan "db.stats()", Anda juga akan baik-baik saja:

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

Mekanisme pengguna dan peran ini juga dapat diterapkan ke database lain di MongoDB, selain database admin.

(MongoDB versi 3.4.3)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Elemen larik pembaruan Mongo (.NET driver 2.0)

  2. $strLenBytes vs $strLenCP di MongoDB:Apa Bedanya?

  3. bagaimana saya bisa terhubung ke server mongo jarak jauh dari terminal Mac OS

  4. Pilih data di mana rentang antara dua bidang yang berbeda berisi nomor tertentu

  5. Pencadangan MongoDB Otomatis