mongodb设置用户名和密码

时间:2021-03-02 02:37:26

需求:我们需要在一个mongodb上面新建两个数据库,每个数据库的用户名和密码不一样,讲道理来说我们直接设置admin,就可以控制所有的数据库,不过用起来总是感觉有各种问题,目前还不太熟悉mongodb,所以直接对不同的数据库设置用户名和密码,可以达到预期的效果。用mongobooster测试的时候没有输入用户名和密码会看不到数据库。

mongodb的用户名和密码是对应到每个具体的数据库的。

这里记录一下一些命令:

1、首先我们启动mongodb的时候,如果需要修改就以普通方式启动

  mongod -f /etc/mongod.conf

  新建数据库testlog

  use logmanagerment

  创建表

  db.createCollection("Account")

  这个时候如果重启mongodb就能发现我们多了一个数据库了,现在我们设置用户名和密码,密码最好不要有@符号,放在url中可能冲突username:password@localhost:27017  

  db.createUser(
    {
    user: "username",
    pwd: "password",
    roles: [ {role:"readWrite", db:"testlog"} ]
    }
)

  创建另一个数据库是一样的,创建完了以后需要kill掉以前的mongodb进程,ps -ef| grep mongod,然后kill掉它,然后以权限的方式启动,mongod --auth -f /etc/mongod.conf,然后我们连接,发现权限已经设置成功

2、如果我们需要修改已有的用户名和密码,首先需要关掉已有的mongodb进程,然后已普通方式启动mongodb

  use yourdatabase

  db.changeUserPassword("username","password")     //回车后没有反应,其实已经修改过来了,重启mongodb,以需要权限的方式启动,就能看到效果了