MongoDB数据库在默认是没有用户名及密码,不用安全验证的,只要连接上服务就可以进行CRUD操作。


第一部:开启安全性验证


如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作,开户安全性检查,有两种方式:

第一种:重新创建window service服务器,在创建服务时打开安全性验证。

1. 首先使用管理员身份打开cmd.exe,启动cmd命令窗口。

2. 在窗口中输入mongod --auth --logpath "D:\Program Files\mongodb\data\log\MongoDB.log" --logappend --dbpath "D:\Program Files\mongodb\data\db" --directoryperdb --reinstall命令,如下:

MongoDB安装设置用户密码 mongodb设置账号密码_用户名

上面显示,首先会移除已创建的window service服务,然后再次创建window service服务并开启安全性验证。


第二种:直接开启安全性验证

1. 首先使用管理员身份打开cmd.exe,启动cmd命令窗口。

2. 在窗口中输入mongod --dbpath "D:\Program Files\mongodb\data\db" --logpath "D:\Program Files\mongodb\data\log\MongoDB.log" --auth,如下:

MongoDB安装设置用户密码 mongodb设置账号密码_mongodb_02

带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。


第二部:创建用户

定位到D:\Program Files \mongodb\bin,使用mongo.exe进入mongodb的命令行管理。

键入命令:

>use admin

>db.addUser(“root”, “root”)

现在我们为mongodb的admin数据库添加一个用户root,密码也是root,mongodb可以为每个数据库都建立权限认证,也就是你可以指定某个用户可以登录到哪个数据库。上面的代码,我们为admin数据库添加了一个root用户,在mongodb中admin数据库是一个特别的数据库,这个数据库的用户,可以访问mongodb中的所有数据库。

如果你要为test数据库,设置一个用户,使用如下命令:

>use test

>db.addUser(“test”, “test”)

好了,现在我们已经为mongodb设置了一个全局用户root,接下来先重启mongodb,使创建的用户生效。



用户登录:

首先需要使用“use 数据库名称,如: use admin”跳转到当前数据库模式下,然后用户登录,如下:

MongoDB安装设置用户密码 mongodb设置账号密码_MongoDB_03

上面1表示登录成功,0表示登录失败。


查看当前mongodb数据库所有数据库信息:

在特权用户root下,admin数据库下的用户是超级用户。

MongoDB安装设置用户密码 mongodb设置账号密码_MongoDB安装设置用户密码_04

上面显示所有数据库名称,数据库大小。


system.user用户

每个数据库的用户账号都是以文档形式存储在system.users集合里面的,
文档结构{'user':username, 'readOnly':true, 'pwd': password hash}。password hash是根据用户名和密码生成的散列。

MongoDB安装设置用户密码 mongodb设置账号密码_数据库_05


查询某个数据库下的用户db.system.users.find();
删除某个数据库下的所有用户db.system.users.remove(),删除指定用户db.system.users.remove({'user':'用户名'})


MongoDB安装设置用户密码 mongodb设置账号密码_MongoDB_06