MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

hiển thị dbs cho biết lỗi lệnh Không được phép thực thi

Bạn nên bắt đầu phiên bản mongod với kiểm soát truy cập, tức là tùy chọn dòng lệnh --auth, chẳng hạn như:

$ mongod --auth

Hãy bắt đầu trình bao mongo và tạo quản trị viên trong cơ sở dữ liệu quản trị:

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

Bây giờ nếu bạn chạy lệnh "db.stats ()" hoặc "hiển thị người dùng", bạn sẽ gặp lỗi "không được quản trị viên ủy quyền thực thi lệnh ..."

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

Nguyên nhân là do bạn vẫn chưa cấp vai trò "read" hoặc "readWrite" cho người dùng myUserAdmin. Bạn có thể làm như sau:

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

Bây giờ Bạn có thể xác minh nó (Lệnh "hiển thị người dùng" hiện đã hoạt động):

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

Bây giờ nếu bạn chạy "db.stats ()", bạn cũng sẽ ổn:

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

Người dùng và cơ chế vai trò này cũng có thể được áp dụng cho bất kỳ cơ sở dữ liệu nào khác trong MongoDB, ngoài cơ sở dữ liệu quản trị viên.

(MongoDB phiên bản 3.4.3)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongoose Query để lọc một mảng và điền nội dung liên quan

  2. MongoDB $ trunc

  3. Mẹo quản lý MongoDB từ xa

  4. Cách tự động hóa và quản lý MongoDB với ClusterControl

  5. Cách xóa một trường khỏi tài liệu MongoDB ($ unset)