linux下mongodb3.2授权

生产环境

  • 系统: linux centos
  • 数据库版本:mongodb3.2

配置

  第一次登录不启动授权(mongodb默认不启动授权设置),切换路径到mongodb的bin路径下,启动mongo数据库

1
./mongod --dbpath=/home/db/data --logpath=/home/db/logs/mongodb.log

  接着连接数据库

1
./mongo

  切换到admin数据库

1
use admin

  创建用户coderhuang,并且赋予root角色(需要注意的是当mongodb启用授权后,只有root这个角色能够关闭数据库)

1
2
3
4
5
6
7
db.createUser(
{
user: "coderhuang",
pwd: "123456",
roles: [ { role: "root", db: "admin" } ]
}
)

  接着切换到我们的业务数据库db_test

1
use db_test

  为我们的业务数据库添加coder用户,并且赋予readWrite角色(读写权限)

1
2
3
4
5
6
7
8
9
db.createUser(
{
user: "coder",
pwd: "111111",
roles: [
{ role: "readWrite", db: "db_test" }
]
}
)

  到这里授权用户设置已经完成了,接着我们关闭数据库再启动

1
2
db.shutdownServer();
./mongod --auth --dbpath=/home/db/data --logpath=/home/db/logs/mongodb.log

  注意到这次的启动增加了 auth参数,表明需要授权验证后才能访问数据库,接着我们连接数据库

1
./mongo

  切换到admin数据库

1
use admin

  接着我们查看当前数据库的集合

1
show collections

  发现报错,提示未授权,这是输入我们之前的授权账号跟密码

1
db.auth('coderhuang','123456')

  如果返回1 则表示授权成功,再输入之前的命令则可以查看到当前的集合数据,同样的方式用于验证db_test数据库,这里不作重复了