我们使用“每个租户数据库”策略,意味着每个客户都有自己的MongoDB数据库(而不是MongoDB实例)。每个数据库都有自己的用户。 https://www.mongodb.com/presentations/securing-mongodb-to-serve-an-aws-based-multi-tenant-security-fanatic-saas-application
为了能够使用连接池,我需要在没有用户或普通用户的情况下连接到Mongo实例(或副本集),并在需要时更改连接并进行身份验证。
shell的文档描述了如何执行此操作: https://docs.mongodb.com/manual/tutorial/enable-authentication/
但Java驱动程序中没有此功能。 我知道我可以在MongoClient初始化期间传递凭据,但我将MongoClient保持为Singleton(如推荐的那样)。添加新租户意味着重新初始化MongoClient。
也许runCommand可以做到这一点,但我不知道authenticate命令的BSON
此致 托马斯