MongoDB -使用connectionString限制对其他数据库的访问

polhcujo  于 2022-12-26  发布在  Go
关注(0)|答案(1)|浏览(145)

我想创建多个数据库,比如db_1db_2等。我有一个名为dashboard的用户。
现在,我有了一个 Jmeter 板,我想限制对数据库的访问,即,我想使用一个connectionString,这样用户dashboard只能访问db_1,并使用另一个connectionString,这样用户dashboard只能访问db_2
例如,如果我使用mongosh "mongodb+srv://dashboard:MY_PASSWORD@IP_ADDRESS/db1?tls=true&authSource=admin&replicaSet=IP_ADDRESS",您可以根据需要将数据库更改为db2,但我希望防止这种情况发生-该连接应只能访问db1
这可以通过创建限制阅读内容的不同用户来实现,但我希望这可以通过单个用户来完成。

u1ehiz5o

u1ehiz5o1#

如果用户dashboard是每个单独数据库 * 上的用户 *,而不是更“全局”的admin数据库中的用户 *,则可以执行您想要执行的操作。
查询字符串中的authSource=admin告诉MongoDB使用哪个数据库进行身份验证,由于指向admin,它将始终使用同一个用户,即admin数据库中的用户。
如果两个用户具有相同的名称,但在不同的数据库中创建,则他们是两个不同的用户。如果希望单个用户具有多个数据库的权限,请为每个适用的数据库创建一个具有角色的用户。
https://www.mongodb.com/docs/manual/core/security-users/#authentication-database
因此,您需要在每个数据库中创建一个单独的dashboard用户
此处的文档和步骤可能会有所帮助:
https://www.mongodb.com/docs/manual/tutorial/create-users/#create-additional-users-for-your-deployment

相关问题