auth认证

以auth认证方式启动

  • 可以在config文件中加一项:

    1
    auth: true
  • 可以在命令行中,添加一个option,--auth

但是,如果mongodb中没有用户,认证是没有意义的。

创建用户

  • 选择库

    1
    2
    // 用户的存储也是基于库的。管理员用户的话,需要在admin中创建。创建的第一个用户即为管理员用户
    > use admin
  • 创建管理员用户

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    db.createUser({
    user:"root",
    pwd:"root",
    roles:[
    {
    role:"userAdminAnyDatabase",
    db:"admin"
    }
    ]
    })
  • 创建普通用户

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    db.createUser({
    user:"user1",
    pwd:"pwd1",
    roles:[
    {
    role:"readWrite",
    db:"db1"
    }
    ]
    })

登录

方式1

1
2
3
4
5
// user所存储的库
> use admin
> db.auth(username, password)
// 返回原数据库
> use blog

方式2

1
> mongo --host ip:port -u 用户 -p 密码 --authenticationDatabase admin

mongodb配置文件相关参数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#数据库数据存放目录
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