2018-08-13建立索引以及mongoDB安全性设置

索引。

基于内存中的读写操作,比在硬盘中快得多。

步骤一:创建大量数据

插入十万条数据:
for(i=0;i<10000;i++)db.t1.insert({name:test+i,age:1})

步骤二:数据查找性能分析

命令之后接"explain('executionStats')"
例如:db.t1.find({name:"test10000"}).explain("executionStats")
未建索引之前用时77ms。

2018-08-13建立索引以及mongoDB安全性设置_第1张图片
未建索引之前用时

步骤三:建立索引

基于name建立索引。

  • 1 代表升序
  • -1代表降序


    2018-08-13建立索引以及mongoDB安全性设置_第2张图片
    建立索引

    建立索引之后的时间有所降低。


    2018-08-13建立索引以及mongoDB安全性设置_第3张图片
    建立索引的命令

超级管理员

  • 为了更安全的访问mongodb,需要访问者提供用户名和密码,于是需要在mongodb中创建用户
  • 采用了角色-用户-数据库的安全管理方式
  • 常用系统角色如下:
    • root:只在admin数据库中可用,超级账号,超级权限(是可以针对任何数据库的)
    • Read:允许用户读取指定数据库
    • readWrite:允许用户读写指定数据库(只允许某些个数据库)
  • 创建超级管理用户
use admin
db.createUser({
    user:'admin',
    pwd:'123',
    roles:[{role:'root',db:'admin'}]
})

启用安全认证

  • 修改配置文件
sudo vi /etc/mongod.conf

  • 启用身份验证
  • 注意:keys and values之间一定要加空格, 否则解析会报错
security:
  authorization: enabled

  • 重启服务
sudo service mongod stop
sudo service mongod start

  • 终端连接
 mongo -u 'admin' -p '123' --authenticationDatabase 'admin'

普通用户管理

  • 使用超级管理员登录,然后进入用户管理操作
  • 查看当前数据库的用户
use test1
show users

  • 创建普通用户
db.createUser({
    user:'t1',
    pwd:'123',
    roles:[{role:'readWrite',db:'test1'}]
})

  • 终端连接
mongo -u t1 -p 123 --authenticationDatabase test1

  • 切换数据库,执行命令查看效果

  • 修改用户:可以修改pwd、roles属性

db.updateUser('t1',{pwd:'456'})
2018-08-13建立索引以及mongoDB安全性设置_第4张图片
安全性流程

你可能感兴趣的:(2018-08-13建立索引以及mongoDB安全性设置)