mongo默认是没有密码的,这样很容易被攻击。(当然,安全的方式不只添加密码,还可以设置ip过滤,如果用的云mongo,可以设置只允许内网访问等等)
以auth认证方式启动
- 可以在config文件中加一项:
auth: true
- 可以在命令行中,添加一个option,
--auth
但是,如果mongodb中没有用户,认证是没有意义的。
创建用户
- 选择库
// 用户的存储也是基于库的。管理员用户的话,需要在admin中创建。创建的第一个用户即为管理员用户
> use admin
- 创建管理员用户
db.createUser({
user:"root",
pwd:"root",
roles:[
{
role:"userAdminAnyDatabase",
db:"admin"
}
]
})
- 创建普通用户
db.createUser({
user:"user1",
pwd:"pwd1",
roles:[
{
role:"readWrite",
db:"db1"
}
]
})
登录
方式1
// user所存储的库
> use admin
> db.auth(username, password)
// 返回原数据库
> use blog
方式2
mongo --host ip:port -u 用户 -p 密码 --authenticationDatabase admin
mongodb配置文件相关参数
#数据库数据存放目录
dbpath=/usr/local/mongodb304/data
#数据库日志存放目录
logpath=/usr/local/mongodb304/logs/mongodb.log
#以追加的方式记录日志
logappend = true
#端口号 默认为27017
port=27017
#以后台方式运行进程
fork=true
#开启用户认证
auth=true
#关闭http接口,默认关闭http端口访问
nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip = 127.0.0.1,192.168.1.140
#启用日志文件,默认启用
journal=true
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true