gpt4 book ai didi

MongoDB 提供了一个基本的身份验证系统。它在 2.2.3 版本中有变化吗?

转载 作者:可可西里 更新时间:2023-11-01 10:44:25 24 4
gpt4 key购买 nike

场景: Installed MongoDB 2.2.3在机器上(Windows 64 位)

按照所有步骤在 MongoDB 服务器上强制执行身份验证。

  1. 将用户添加到管理数据库

    use admin
    db.addUser('me_admin', '12345');
    db.auth('me_admin','12345');
  2. 使用 --auth 选项运行数据库服务器(mongod.exe 进程)以启用身份验证

关注了类似问题的所有答案: How to secure MongoDB with username and password

问题:对于新版本 2.2.3,我无法设置身份验证。在执行相同的步骤后,我能够为 version 2.0.8 设置身份验证在同一台机器上。但它在 MongoDB 文档的某处提到 "Authentication on Localhost 在 2.2 版之前和之后略有不同"

问题有什么变化以及如何在新版本(即 2.2 及更高版本)中强制执行身份验证。任何人都可以提供一些想法或解决方案来对新的 MongoDB 2.2.3 进行同样的处理吗? ?


更新:当我从命令提示符使用 --auth 参数启动 mongod.exe 进程时,我已经检查过身份验证在 2.2.3 上是否相同。

我在配置文件中使用了 auth=true 参数,如 docs 中所述, 但这没有用。

完成的研究:

  1. mongod.cfg文件包含如下配置时

    logpath=c:\mongodb\log\mongo.log, auth=true, profile=2

    log.txt 文件包含以下日志

    Mon Mar 11 15:06:35 Trying to start Windows service 'MongoDB'
    Mon Mar 11 15:06:35 Service running
    Mon Mar 11 15:06:35 [initandlisten] MongoDB starting : pid=7152 port=27017 dbpath=\data\db\ 64-bit host=AMOL-KULKARNI
    Mon Mar 11 15:06:35 [initandlisten] db version v2.2.3, pdfile version 4.5
    Mon Mar 11 15:06:35 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
    Mon Mar 11 15:06:35 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49
    Mon Mar 11 15:06:35 [initandlisten] options: { config: "C:\mongodb\mongod.cfg", logpath: "c:\mongodb\log\mongo.log auth=true profile=2", service: true }
    Mon Mar 11 15:06:35 [initandlisten] journal dir=/data/db/journal
    Mon Mar 11 15:06:35 [initandlisten] recover : no journal files present, no recovery needed
    Mon Mar 11 15:06:35 [initandlisten] waiting for connections on port 27017
    Mon Mar 11 15:06:35 [websvr] admin web console waiting for connections on port 28017
  2. 当我从命令提示符 mongod --auth 运行时,将显示以下日志:

        Mon Mar 11 15:09:40 [initandlisten] MongoDB starting : pid=6536 port=27017 dbpath=\data\db\ 64-bit host=AMOL-KULKARNI
    Mon Mar 11 15:09:40 [initandlisten] db version v2.2.3, pdfile version 4.5
    Mon Mar 11 15:09:40 [initandlisten] git version: f570771a5d8a3846eb7586eaffcf4c2f4a96bf08
    Mon Mar 11 15:09:40 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack='Service Pack 1') BOOST_LIB_VERSION=1_49
    Mon Mar 11 15:09:40 [initandlisten] options: { auth: true }
    Mon Mar 11 15:09:40 [initandlisten] journal dir=/data/db/journal
    Mon Mar 11 15:09:40 [initandlisten] recover : no journal files present, no recovery needed
    Mon Mar 11 15:09:40 [initandlisten] waiting for connections on port 27017
    Mon Mar 11 15:09:40 [websvr] admin web console waiting for connections on port 28017

注意:选项的变化:

  1. 选项:{ 配置:“C:\mongodb\mongod.cfg”,日志路径:
    "c:\mongodb\log\mongo.log auth=true profile=2", service: true
    //不起作用

  2. options: { auth: true }//有效

有趣观察到的是,

当它从配置文件运行时。

logpath=c:\mongodb\log\mongo.log, auth=true, profile=2

它变成了:

logpath: "c:\mongodb\log\mongo.log auth=true profile=2", service: true

我知道这是问题。它应该是这样的:

日志路径:"c:\mongodb\log\mongo.log", auth=true, profile="2", service: true

所以,问题是如何从配置文件传递 auth=true 参数并在 Windows7 上将 mongod.exe 进程作为服务运行

最佳答案

如您引用的部分所述,变化很小:

In general if there are no users for the admin database, you may connect via the localhost interface. For sharded clusters running version 2.2, if mongod is running with auth then all users connecting over the localhost interface must authenticate, even if there aren’t any users in the admin database.

基本上在 2.2 之前,如果你在分片集群中,你可以连接到本地主机,如果在管理数据库中找不到用户,则不会强制进行身份验证。这意味着如果您设置一个分片集群,那么设置一个默认用户可能是明智的,您已经这样做了。

Can anybody give some idea or solution to proceed the same with new MongoDB 2.2.3?

新的授权系统就在那里,你不需要做任何事情;就是这样。

关于MongoDB 提供了一个基本的身份验证系统。它在 2.2.3 版本中有变化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15333871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com