MongoDB安装启动详解

一,修改启动端口

mongo的默认端口为27017 如果启用的是27017端口并且在公网上很容易被人攻击,所以第一点我们要修改端口

sudo ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs

我们现在启动的是29089端口

启动shell

$ ./mongo

报错:

Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused

这是是因为我们修改了端口,而默认连接的是27017的端口,所以我们进入shell时也要指定启动服务似的端口

$ ./mongo --port 29089

这样就可以进入了

二,用户认证

mongodb默认是没有管理账户的,需要开发人员添加管理员账户,在启动mongo服务时添加身份认证才可以进入数据库,所以我们需要做两点:

  • 添加管理员
  • 启动服务时时添加 auth 指令

mogodb 默认有两个数据库:

在我们初次安装并启动mongo服务后,进入shell管理可以看到已存在两个数据库,在执行show dbs时 会显示以下两个数据库

  • admin
  • local

我们要在admin里添加用户以便在进入数据库时认证,我是在mac下操作,以下都是mac下的命令,下面演示整个用户添加和认证的过程

1.检查mongo服务是否开启

 $ ps -ef | grep mongo

未找到mongo启动进程

2.启动mongo服务

$ cd /usr/local/bin
$ ./mongod --dbpath=/data/db --fork --port 29089 --logpath=/data/logs

成功启动mongo

3.进入shell管理后台

$ cd /usr/local/bin
$ ./mongo --port 29089

4.查看当前所有数据库

$ show dbs

除了admin,local数据库其他都是我业务上使用后建立的数据库,可以看到我们直接就访问到数据库并且可以操作

5.在admin库里添加管理员用户

$ use admin
$ db.getUsers();

使用admin数据库并检查是否存在用户

6 创建用户

$ db.createUser({user:"leinov",pwd:"123456",roles:["root"]})

db.getUsers();

db.createUser()创建一个用户,并分配角色,我们创建里一个超级管理员,这个角色可以对本机mongo实例内的所有数据库做有效的读写操作,关于db.createUser()方法参考官方文档 https://docs.mongodb.com/manual/reference/method/db.auth/

7 重新启动服务并添加认证auth

$ sudo ./mongod --dbpath=/data/db --fork --port 29089  --logpath=/data/logs --auth

在启动命令后面加上auth这样在进入数据库时就会开启认证

8.重新进入shell后台

$ ./mongo--port29089
$ show dbs

提示没有权限查看数据库list

9.切换到admin数据库验证

$ use admin
$ db.auth({user:"leinov",pwd:"123456"})

db.auth()方法是验证用户的操作方法,返回值为0/1 1为验证成功

10.再次查看数据库

$ show dbs

完成端口修改和用户认证基本上就可以保证数据库的安全了,我自己的mongo也被黑了,网上其实还有很多裸奔的mongo数据库,所以一定要给自己的mongo修改端口添加用户认证保证安全。

3.0后的mongo很多方法都有变化,具体参考官方文档 https://docs.mongodb.com/

MongoDB安全策略的更多相关文章

  1. NoSQL与MongoDB介绍

    写在前面 本文是由一次演讲整理出来的,文中大部分资料来源于网络,感谢Wikipedia,Google和MongoDB官网.文中使用的MongoDB版本为1.2.4. What is NoSQL NoS ...

  2. CentOS MongoDB 高可用实战

    原文:https://www.sunjianhua.cn/archives/centos-mongodb.html 一.MongoDB 单节点 1.1.Windows 版安装 1.1.1 获取社区版本 ...

  3. 【Mongodb教程 第十六课 】 分享NO-SQL开发实战

    最近研究了一下NOSQL,现整理目录如下: 一.关系数据库的瓶颈: 二.NOSQL概述: 三.NOSQL中的热门数据库MongoDB介绍及安装配置: 四.MongoDB开发模式及实战: 一.关系数据库 ...

  4. MongoDB最佳安全实践

    在前文[15分钟从零开始搭建支持10w+用户的生产环境(二)]中提了一句MongoDB的安全,有小伙伴留心了,在公众号后台问.所以今天专门开个文,写一下关于MongoDB的安全. 一.我的一次Mong ...

  5. MongoDB中如何优雅地删除大量数据

    删除大量数据,无论是在哪种数据库中,都是一个普遍性的需求.除了正常的业务需求,我们需要通过这种方式来为数据库"瘦身". 为什么要"瘦身"呢? 表的数据量到达一定 ...

  6. 【翻译】MongoDB指南/聚合——聚合管道

    [原文地址]https://docs.mongodb.com/manual/ 聚合 聚合操作处理数据记录并返回计算后的结果.聚合操作将多个文档分组,并能对已分组的数据执行一系列操作而返回单一结果.Mo ...

  7. 【翻译】MongoDB指南/CRUD操作(四)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(四) 1 查询方案(Query Plans) MongoDB 查询优化程序处理查询并且针对给定可利用的索引选 ...

  8. 【翻译】MongoDB指南/CRUD操作(三)

    [原文地址]https://docs.mongodb.com/manual/ CRUD操作(三) 主要内容: 原子性和事务(Atomicity and Transactions),读隔离.一致性和新近 ...

  9. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

随机推荐

  1. jquery元素是否可见(隐藏)

    var temp1=$(".view_hidden").is(":visible");//是否可见 var temp2=$(".elem_id&quo ...

  2. 4.jsp的内置对象

    1.jsp有九大内置对象 out request response session application page pagecontext exception config 2.用户发请求 requ ...

  3. Spring MVC 项目搭建 -6- spring security 使用自定义Filter实现验证扩展资源验证,使用数据库进行配置

    Spring MVC 项目搭建 -6- spring security使用自定义Filter实现验证扩展url验证,使用数据库进行配置 实现的主要流程 1.创建一个Filter 继承 Abstract ...

  4. 【转】SQL多条件模糊查询解决方案-存储过程

    前言:   算法的基本特性在前几篇博客中已经做了详细的说明,经过不断的改进优化,到归仓的时候了,也就是说,该算法告一段落,不再更新. 作为最终的解决方案,简要的总结一下算法特性,以方便读者参阅. l ...

  5. 关于一点jeesite

    最近刚接触jeesite 深深被这个功能强大的框架所折服,虽然其中有一些地方还不完善,但也不妨碍我们通过jeesite提高我们java水平的大门. 这两天在网上一直在找关于jeesite的文章,看来看 ...

  6. [Android FrameWork 6.0源码学习] View的重绘过程

    View绘制的三部曲,  测量,布局,绘画今天我们分析测量过程 view的测量是从ViewRootImpl发起的,View需要重绘,都是发送请求给ViewRootImpl,然后他组织重绘在重绘的过程中 ...

  7. vue实现对表格数据的增删改查

    在管理员的一些后台页面里,个人中心里的数据列表里,都会有对这些数据进行增删改查的操作.比如在管理员后台的用户列表里,我们可以录入新用户的信息,也可以对既有的用户信息进行修改.在vue中,我们更应该专注 ...

  8. Linux下crontab命令添加Kettle作业定时任务

    1. 确保作业 $KETTLE_HOME/kitchen.sh -file=/data1/testdata/testkjb.kjb 或转换 $KETTLE_HOME/pan.sh -file=/dat ...

  9. 使用 electron 做个播放器

    使用 electron 做个播放器 本文同步更新在:https://github.com/whxaxes/blog/issues/8 前言 虽然 electron 已经出来好长时间了,但是最近才玩了一 ...

  10. spring boot 读取配置文件信息

    1.读取application.properties @Component @ConfigurationProperties(prefix="images.product.column&qu ...