某些数据库上的MongoDB身份验证,但不是其他数

时间:2013-12-04 18:17:02

标签: mongodb

我可以成功设置身份验证并将其与mongoDB一起使用。我目前遇到的问题是我无法解决如何为一个数据库设置身份验证,而不是其他数据库。例如,如果我的数据库是:

admin
authenticatedDB
openDB

我希望authenticatedDB要求身份验证,而我希望openDB可以在没有登录的情况下自由访问。这在MongoDB中是否可行?

如果不可能,有没有办法在本地运行两个单独的mongod会话?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

  

我目前遇到的问题是我无法弄清楚如何为一个数据库设置身份验证,而不是其他数据库。

Auth(与MongoDB 2.4一样)是一个全局设置,因此在您enabled authentication并创建user administrator后,所有连接都需要这样做。

  

如果不可能,有没有办法在本地运行两个单独的mongod会话?

您可以在同一服务器上运行multiple instances,为每个data指定不同的port目录和mongod值。这绝对不是生产环境的推荐做法,因为多个mongods将竞争相同的主机资源。

作为运行多个mongods的替代方法,您可以为openDB使用弱凭据(即用户名和密码openDB)。 MongoDB 2.4+中的访问控制使用user privilege roles,因此您的openDB用户可能仅限于read数据库中的readWriteopenDB角色。