我想为我的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。


当前回答

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

编辑mongo设置文件;

sudo nano /etc/mongod.conf

加一行:

security.authorization : enabled

重新启动服务

sudo service mongod restart

问候

其他回答

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

使用mydatabase

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

在设置用户后,需要使用——auth选项启动mongod。

来自MongoDB站点:

运行数据库(mongod进程),并启用——auth选项 安全。您必须在之前向admin db中添加了一个用户 使用——auth启动服务器,或从 主机接口。

MongoDB身份验证

你可以修改/etc/mongod.conf。

之前

#安全:

security:
    authorization: "enabled"

然后重启sudo service mongod

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

编辑mongo设置文件;

sudo nano /etc/mongod.conf

加一行:

security.authorization : enabled

重新启动服务

sudo service mongod restart

问候

创建新用户后,请不要忘记授予该用户读/写/root权限。你可以试试

cmd: db。grantRolesToUser('yourNewUsername',[{role: "root", db: "admin"}])