我想在 MongoDB 中设置一个用户。此用户将没有管理员数据库访问权限。但它使用 admin 作为身份验证数据库。此命令将无法连接 mongoDB mongo --host localhost admin
。相反,它可以使用此命令连接到test
数据库:mongo --host localhost --authenticationDatabases admin test
. 在这种情况下如何限制权限?
我尝试了以下命令来创建用户:
db.createUser({user: 'testUser', pwd: '123456', roles: [{role:'readWrite', db: 'SampleCollections'}]})
当我使用该用户帐户登录 mongo shell 时,我可以列出admin
数据库下的集合。我怎样才能将用户限制在SampleCollections
数据库上而不是admin
?
不需要。您只需向用户授予所需的非管理员数据库所需的权限。即使用户没有对管理数据库的读/写访问权限,用户也可以使用管理数据库作为身份验证数据库。
grantRolesToUser文档。
更新
让我们使用 --auth 创建 mongodb 实例。以管理员身份登录,创建只能读写 test -db 的用户,使用该用户进行身份验证,检查可以使用列表管理员数据库集合以及该用户可以使用测试数据库做什么。
和外面一样:
@赵毅,你在看什么?我希望你能在这里找到你的解决方案
例如,我附上一个示例,如下所示
代码的解释是:
username
和。password
userAdmin
角色。此角色允许用户仅对 db 选项中指定的数据库拥有管理权限。注意:输出显示创建了一个名为Employeeadmin的用户,并且该用户仅对Employee数据库具有权限。