mongodb auth认证

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

个人博客:http://notes.xbug.site

    原文作者:OrochimaruX
    原文地址: https://www.jianshu.com/p/90ebff9b5d1d
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞