我想创建多个数据库,比如db_1
、db_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
这可以通过创建限制阅读内容的不同用户来实现,但我希望这可以通过单个用户来完成。
1条答案
按热度按时间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