我想为我的MongoDB实例设置用户名和密码身份验证,以便任何远程访问都将要求提供用户名和密码。我尝试了MongoDB站点的教程,并做了以下工作:

use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');

在那之后,我退出了,再次跑了mongo。而且我不需要密码就能进入。即使我远程连接到数据库,也不会提示我输入用户名和密码。


这是我最终使用的解决方案

1) At the mongo command line, set the administrator:

    use admin;
    db.addUser('admin','123456');

2) Shutdown the server and exit

    db.shutdownServer();
    exit

3) Restart mongod with --auth

  $ sudo ./mongodb/bin/mongod --auth --dbpath /mnt/db/

4) Run mongo again in 2 ways:

   i) run mongo first then login:

        $ ./mongodb/bin/mongo localhost:27017
        use admin
        db.auth('admin','123456');

  ii) run & login to mongo in command line.

        $ ./mongodb/bin/mongo localhost:27017/admin -u admin -p 123456

用户名和密码将以同样的方式工作在mongodb和mongoexport。


当前回答

按顺序执行以下步骤

该任务指导管理员通过CLI创建用户

use admin
db.createUser(
  {
    user: "admin",
    pwd: "admin123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

启用身份验证,你怎么做取决于你的操作系统,如果你使用的是windows,你可以简单地mongod——auth,如果是linux,你可以编辑/etc/mongod.conf文件来增加安全性。授权:启用后重新启动服务 通过cli mongo连接-u "admin" -p "admin123"——authenticationDatabase "admin"就是这样

你可以查看这篇文章了解更多细节,并学习使用猫鼬连接它。

其他回答

Mongodb 4.4.13社区

1. 创建数据库用户

use admin
db.createUser(
  {
    user: "myUserAdmin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

1.2验证工作

> db.auth('myUserAdmin','abc123')

< { ok: 1 }

如果失败了

> db.auth('myUserAdmin','amongus')

MongoServerError: Authentication failed.

2. 修改/etc/mongod.conf

nano /etc/mongod.conf

变化:

#security:

to:

security:
  authorization: enabled

3.重启mongod service

sudo service mongod restart

这对我来说很管用。

您需要切换到您希望用户使用的数据库(而不是admin db)…

使用mydatabase

查看这篇文章以获得更多帮助…https://web.archive.org/web/20140316031938/http://learnmongo.com/posts/quick-tip-mongodb-users/

https://docs.mongodb.com/manual/reference/configuration-options/#security.authorization

编辑mongo设置文件;

sudo nano /etc/mongod.conf

加一行:

security.authorization : enabled

重新启动服务

sudo service mongod restart

问候

连接mongoDB的最佳实践如下:

初始安装完成后, 使用管理 然后执行以下脚本创建admin用户

    db.createUser(
     {
         user: "YourUserName",
         pwd: "YourPassword",
         roles: [
                   { role: "userAdminAnyDatabase", db: "admin" },
                   { role: "readWriteAnyDatabase", db: "admin" },
                   { role: "dbAdminAnyDatabase", db: "admin" },
                   { role: "clusterAdmin", db: "admin" }
                ]
     })

下面的脚本将为DB创建admin用户。

登录到db。管理使用 mongo -u YourUserName -p YourPassword admin 登录后,重复1 ~ 3可创建N个具有相同或不同管理凭证的数据库。

这允许您为在MongoDB中创建的不同集合创建不同的用户和密码

首先,取消mongod配置文件(默认路径/etc/mongod.conf)中以#auth=true开头的行注释。这将为mongodb启用身份验证。

然后重新启动mongodb: sudo service mongod restart