MongoDB readAnyDatabase角色

readAnyDatabase角色4.0版本后不再支持local和config库的读权限。

若想获得local和config的读权限?

解决:在usr下单独添加config和local库的read角色。

image.png

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

 

参考文档:

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

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

使用pymongo示例:

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)

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值