禁用对MongoDB的匿名访问

HaB*_*aBo 21 mongodb

我在Windows 2012 Server上安装了MongoDB并在Windows服务上运行它.

为了保护它免受匿名登录的影响,我按照以下步骤启用了身份验证和禁用匿名访问

创建管理员凭据,然后启用身份验证

  1. 没有或设置启动mongodmongos实例.authkeyFile
  2. 按照中所述创建管理员用户Create a User Administrator.
  3. 使用或设置重新启动mongodmongos实例.authkeyFile

根据文档,通过运行此shell命令

db.auth(<username>,<password>)

它应该打开授权并重新启动它应该禁用匿名访问的实例.

我不确定第3步是什么意思,我停止了MongoDB服务并重新启动它. 但我仍然可以匿名登录到远程MongoDB

如何禁用对MongoDB的匿名访问?

更新

执行db.serverCmdLineOpts()

/* 0 */
{
    "argv" : [ 
        "c:\\Program Files\\mongodb\\bin\\mongod.exe", 
        "--directoryperdb", 
        "--dbpath", 
        "c:\\mongodb\\data", 
        "--logpath", 
        "c:\\mongodb\\log\\mongodb_master.log", 
        "--logappend", 
        "--rest", 
        "--service"
    ],
    "parsed" : {
        "dbpath" : "c:\\mongodb\\data",
        "directoryperdb" : true,
        "logappend" : true,
        "logpath" : "c:\\mongodb\\log\\mongodb_master.log",
        "rest" : true,
        "service" : true
    },
    "ok" : 1
}
Run Code Online (Sandbox Code Playgroud)

这意味着我没有auth密钥.如何在那里设置身份验证密钥?

Ste*_*nie 16

要完全禁用匿名身份验证,您需要确保:

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

在创建第一个管理员用户之前,默认情况下会有一个localhost bypass允许您匿名登录并设置第一个用户的用户.

要检查管理数据库中是否至少有一个用户,请运行:

db.getSiblingDB('admin').system.users.find()
Run Code Online (Sandbox Code Playgroud)

2)auth启用启用(独立服务器)或keyFile启用(副本集)的MongoDB服务器.

keyFile选项意味着auth,并用于副本集节点之间的内部身份验证.

要检查正在运行的MongoDB实例的配置设置,你可以参考的输出db.serverCmdLineOpts()中的一个mongo壳.

如果选项已从默认值更改,则它们应显示在parsed 输出部分中.也就是说,其中一个应该返回true:

db.serverCmdLineOpts().parsed.auth
db.serverCmdLineOpts().parsed.keyFile
Run Code Online (Sandbox Code Playgroud)


dea*_*anN 6

在2.6+版中启用授权-格式为yml:

security:
    authorization: enabled
Run Code Online (Sandbox Code Playgroud)

额外的信息:

还请注意,如果您使用的是安全配置(例如密钥文件配置),

security:
    authorization: enabled
Run Code Online (Sandbox Code Playgroud)

不需要密钥,这就是为什么您可能会看到不带此标志的配置文件的原因...另一个说明:在最新版本的4.x中,您还需要配置访问IP列表:net:bindIp :: ,, 0.0.0.0#进行绑定所有v4和v6 ip地址,或使用建议用于生产的特定主机访问的特定地址

要么

net:
    net.bindIpAll: true #to bind all ip addresses
Run Code Online (Sandbox Code Playgroud)

  • 您必须在mongodb配置文件中执行此操作:``sudo vi / etc / mongod.conf` (2认同)