MongoDB安全配置

注:1、以Windows系统为例,且安装目录为:E:\mongodb;2、以下可执行命令是蓝色字体;3、需要同时打开两个cmd命令窗口,一个执行客户端命令,一个执行启动服务命令,且启动服务命令窗口不可以关闭。

1、以命令的形式启动MongoDB

打开cmd命令窗口进入到MongoDB的安装目录,bin文件下;执行如下命令(该命令窗口为服务端命令行窗口,不可关闭)
mongod.exe --dbpath=E: \mongodb\data
如图

启动成功标识

2、创建用户分配权限

2.1、打开新的cmd窗口进入到MongoDB的安装目录,bin文件下;执行如下命令

Mongo

如图

2.2、添加管理用户(mongoDB没有无敌用户root,只有能管理用户的用户 userAdminAnyDatabase)以下命令创建了一个添加用户的账号:admin密码;123456

在cmd命令窗口中执行以下两个命令:

use admin

db.createUser( {user:"admin",pwd: "123456",roles: [ { role:"userAdminAnyDatabase", db: "admin" } ]})

如下图

注:添加完用户后可以使用show users命令查看已有用户

如下图

2.3、添加完管理用户后,关闭MongoDB,并使用权限方式再次开启MongoDB,这里注意不要使用kill直接去杀掉mongodb进程,(如果这样做了,请去data/db目录下删除mongo.lock文件)。

执行以下命令关闭mongo数据库服务

db.shutdownServer()

在第一个打开的cmd命令窗口中查看Mongo数据库服务关闭结果。如下图

如果成功关闭Mongo服务则执行以下命令,以权限方式再次开启MongoDB

mongod--dbpath E:/mongodb/data --port 57147 --logpath E:/mongodb/log/log.log   --bind_ip  127.0.0.1   –auth


参数说明:

--port            指定端口,默认是27017,此处使用57147

--dbpath         数据目录路径

--logpath        日志文件路径

--auth            开启安全验证

--bind_ip         指定监听的ip;允许访问IP地址

2.4、创建读写用户

在客户端命令执行的cmd窗口中执行以下六条命令

mongo 127.0.0.1:27017

use license

use admin

db.auth("admin","123456")

db.getSiblingDB("license").runCommand({authSchemaUpgrade:1})

db.createUser({user:"license",pwd:"123456",roles:[{role:"readWrite",db:"license"}]})

成功标识

以上全部命令执行成功后,创建了一个数据库为license的实例,且登录账号为license,密码123456。

 3、JAVA连接测试

Mongo mongo = new Mongo("127.0.0.1", "27017");

DB db = mongo.getDB("dbname");

boolean auth = db.authenticate("name","password".toCharArray());

验证成功则返回true 否则返回false

注:db验证只能一次,如果成功后就不能继续验证,否则会报重复验证异常

4、MongoDB自动备份

编写一个bat文件,文件内容如下:

@ECHO OFF

if not exist E:\mongodb\data\dbbak\%date:~0,4%\%date:~5,2%\%date:~8,2%\ md E:\mongodb\data\dbbak\%date:~0,4%\%date:~5,2%\%date:~8,2%\

cd E:\mongodb\bin

E:mongodump -h 127.0.0.1:57147 -d license -ulicense -p 123456 --authenticationDatabase admin -oE:\mongodb\data\dbbak\%date:~0,4%\%date:~5,2%\%date:~8,2%\

if exist E:\mongodb\data\dbbak\%date:~0,4%\%date:~5,2%\%date:~8,2%\md E:\mongodb\data\dbbak\%date:~0,4%\%date:~5,2%\%date:~8,2%\

将上面的bat文件添加到windows的计划任务内,即可完成自动备份 



你可能感兴趣的:(MongoDB安全配置)