相关疑难解决方法(0)

如何使用用户名和密码保护MongoDB

我想为我的MongoDB实例设置用户名和密码验证,以便任何远程访问都会要求输入用户名和密码.我尝试了MongoDB网站上的教程并做了以下事情:

use admin
db.addUser('theadmin', '12345');
db.auth('theadmin','12345');
Run Code Online (Sandbox Code Playgroud)

在那之后,我退出并再次运行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
Run Code Online (Sandbox Code Playgroud)

用户名和密码将以相同的方式用于mongodumpmongoexport.

authentication mongodb

356
推荐指数
12
解决办法
39万
查看次数

如何更改MongoDB用户的密码?

我使用db.addUser(...)在过去的某个时刻创建用户.我现在如何更改该用户的密码?

我使用具有userAdmin角色的用户登录.我用什么命令来更改其他用户的密码?

编辑2

我需要回答v2.4样式的addUser和权限文档

编辑

有人建议我使用2.2 addUser语法来更改密码.这不起作用:

db.addUser({user: "test", pwd: "oldPassword", roles: ["readWrite"]})
db.addUser("test", "newPassword")
Run Code Online (Sandbox Code Playgroud)

uncaught exception: couldn't add user: system.users entry must not have both 'roles' and 'readOnly' fields
Run Code Online (Sandbox Code Playgroud)

mongodb

4
推荐指数
1
解决办法
9904
查看次数

标签 统计

mongodb ×2

authentication ×1