我可以成功设置身份验证并将其与mongoDB一起使用。我目前遇到的问题是我无法解决如何为一个数据库设置身份验证,而不是其他数据库。例如,如果我的数据库是:
admin
authenticatedDB
openDB
我希望authenticatedDB要求身份验证,而我希望openDB可以在没有登录的情况下自由访问。这在MongoDB中是否可行?
如果不可能,有没有办法在本地运行两个单独的mongod会话?
提前致谢:)
答案 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
数据库中的readWrite
或openDB
角色。