需求:我们需要在一个mongodb上面新建两个数据库,每个数据库的用户名和密码不一样,讲道理来说我们直接设置admin,就可以控制所有的数据库,不过用起来总是感觉有各种问题,目前还不太熟悉mongodb,所以直接对不同的数据库设置用户名和密码,可以达到预期的效果。用mongobooster测试的时候没有输入用户名和密码会看不到数据库。
mongodb的用户名和密码是对应到每个具体的数据库的。
这里记录一下一些命令:
1、首先我们启动mongodb的时候,如果需要修改就以普通方式启动
mongod -f /etc/mongod.conf
新建数据库testlog
use logmanagerment
创建表
db.createCollection("Account")
这个时候如果重启mongodb就能发现我们多了一个数据库了,现在我们设置用户名和密码,密码最好不要有@符号,放在url中可能冲突username:[email protected]: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,以需要权限的方式启动,就能看到效果了