• Unauthorized: not authorized on test to execute command { dbstats: 1.0, scale: undefined, $db: "test" } 错误的解决


    当前版本3.6.2

    问题原因出在读写的权限上:stackoverflow上的解决方法

    You should have started the mongod instance with access control, i.e., the --auth command line option, such as:

    $ mongod --auth

    Let's start the mongo shell, and create an administrator in the admin database:

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

    Now if you run command "db.stats()", or "show users", you will get error "not authorized on admin to execute command..."

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

    下面这两句最重要,如果是开始新建 ,则要从头开始看

    The reason is that you still have not granted role "read" or "readWrite" to user myUserAdmin. You can do it as below:

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

    Now You can verify it (Command "show users" now works):

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

    Now if you run "db.stats()", you'll also be OK:

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

    This user and role mechanism can be applied to any other databases in MongoDB as well, in addition to the admin database.

  • 相关阅读:
    UIScrollerView遇到UINavigationController
    iOS 自动化打包
    最最基本的SQL常用命令
    导入样式表与外部样式表的区别
    jdk、jre、JVM的简单区别与联系
    JDBC驱动的四种类型
    将映射中的值进行排序并输出键
    Java优先级队列
    Java线程池
    Callable--创建有返回值的线程
  • 原文地址:https://www.cnblogs.com/herosoft/p/8399974.html
Copyright © 2020-2023  润新知