小编Ana*_*ran的帖子

多租户 MongoDB + mongo 原生驱动 + 连接池

我们正在尝试使用 nodejs/mongo-native 驱动程序来实施以下演示文稿(幻灯片 13-18)中概述的策略。

https://www.slideshare.net/mongodb/secure-mongodb-to-serve-an-awsbased-multitenant-securityfanatic-saas-application

总之:

  • 创建从node.js到mongodb的连接池。
  • 对于每个对租户的请求,从池中获取一个连接并对其进行“身份验证”。使用经过身份验证的连接来服务请求。响应后,将连接返回到池中。

我能够使用 mongo-native 驱动程序创建到 mongodb 的连接池,而无需指定任何数据库,如下所示:

const client = new MongoClient('mongodb://localhost:27017', { useNewUrlParser: true, poolSize: 10 });

但是,为了获取 db 对象,我需要执行以下操作:

const db = client.db(dbName);

这是我想要验证连接的地方,AFAICS,此功能已从更新的 mongo 驱动程序、node.js 和 java 中弃用/删除。

从演示来看,旧版本的 Java 驱动程序似乎可以做到这一点。

我是否可以使用单个连接池并使用相同的连接对各个数据库的租户进行身份验证?

我们的替代方案是为每个租户提供一个连接池,目前这对我们没有吸引力。

任何帮助将不胜感激,包括此功能被弃用/删除的原因。

connection-pooling multi-tenant mongodb node.js node-mongodb-native

5
推荐指数
1
解决办法
1923
查看次数