sql >> データベース >  >> NoSQL >> MongoDB

show dbsは、コマンドエラーの実行を許可されていません

    アクセス制御、つまり、次のような--authコマンドラインオプションを使用してmongodインスタンスを開始する必要があります。

    $ mongod --auth
    

    mongoシェルを起動し、adminデータベースに管理者を作成しましょう:

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

    これで、コマンド「db.stats()」または「showusers」を実行すると、「管理者にコマンドの実行が許可されていません...」というエラーが表示されます。

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

    その理由は、ユーザーmyUserAdminにロール「read」または「readWrite」をまだ付与していないためです。あなたは以下のようにそれを行うことができます:

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

    これで確認できます(コマンド「showusers」が機能するようになりました):

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

    「db.stats()」を実行すると、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
    }
    

    このユーザーと役割のメカニズムは、adminデータベースに加えて、MongoDB内の他のデータベースにも適用できます。

    (MongoDBバージョン3.4.3)



    1. 公式のc#ドライバーを使用してMongoDBのUpdate.Setを使用して、複数のフィールドをどのように更新しますか?

    2. Spark-on-HBase:DataFrameベースのHBaseコネクター

    3. MySQLレプリケーション(およびその他)のフェイルオーバー-自動化する必要がありますか?

    4. HerokuでRedisの接続が拒否されました