MongoDB readAnyDatabase role

readAnyDatabase role after version 4.0 no longer supports read access to local libraries and config.

To get local and config read access?

Solution: Add read config role and local libraries separately under usr.

image.png

db.updateUser("dddddd",{roles:[ {role:"read",db:"local"},{role:"readAnyDatabase",db:"admin"} ]})

 

Reference documents:

https://docs.mongodb.com/manual/reference/built-in-roles/#dbAdmin

https://docs.mongodb.com/manual/reference/command/updateUser/

Use pymongo example:

from pymongo import MongoClient


class RdsMongoClient(MongoClient):
    ALMOST_SYNC_INTERVAL = 10  # seconds

    @classmethod
    def new(cls, ip, port, user=None, pwd=None, set_name=None, w='majority', **kwargs):
        conn_url = get_mongo_conn_url(ip, port, user, pwd, set_name)
        return cls(conn_url, maxIdleTimeMS=3000, socketTimeoutMS=60000, connectTimeoutMS=3000,
                   serverSelectionTimeoutMS=30000, waitQueueTimeoutMS=3000, waitQueueMultiple=3000,
                   w=w,
                   ** kwargs)
cli = RdsMongoClient.new(
                "localhost",
                3042,
                user='user',
                pwd='password')

# db.updateUser("dddddd",{roles:[ {role:"read",db:"local"},{role:"readAnyDatabase",db:"admin"} ]})
roles = [
    {"role": "readAnyDatabase", "db": "admin"}, {"role": "read", "db": "local"}, {"role": "read", "db": "config"}
  ]
cli.create_super_user('dddd', '123456aA', roles=roles)

 

Guess you like

Origin blog.csdn.net/qq_35462323/article/details/90923368