Mongodb安装和权限认证设置

安装

在Centos下安装Mongodb,直接下载相应的版本解压即可。如我使用的是mongodb-linux-x86_64-rhel62-4.2.0.tgz,使用一下命令解压即可使用。主要的工具都在其bin目录下。

tar -vxf mongodb-linux-x86_64-rhel62-4.2.0.tgz

设置认证

设置认证可以有效加强服务器的安全性。
mongodb默认是不使用认证,为此需要使用conf配置来设置验证,同时建议更改监听端口。设置如下:


image.png
  • dbpath是数据库存放的路径
  • logpath是日志存放路径
  • port是监听端口
  • bind_ip是允许监听的地址,可以设置为0.0.0.0为任何都可以
  • auth 就是是否开启认证,强烈建议开启认证功能
  • fork 就是是否允许以僵尸进程在后台运行
    首先以auth=false模式开启应用,然后设置相关用户名密码,需要在哪个库下面进行认证,就进入到库里面,然后创建认证用户。
mongod --config mongodb.conf
use test
db.createUser(
  {
    user: "simpleUser",
    pwd: "simplePass", 
    roles: [ { role: "readWrite", db: "test" }]
  }
)

其中role主要有一下几种,注意有些权限只有在admin库中使用,常用的也就是Read\readWrite\dbAdmin

Read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。
root:只在admin数据库中可用。超级账号,超级权限

设置完用户后,然后设置auth=true,重启启动数据库即可!

:)

推荐阅读更多精彩内容