不多说,直接上干货!

  本教程详细指导大家如何开启并设置用户权限。MongoDB默认是没有开启用户权限的,如果直接在公网服务器上如此搭建MongoDB,那么所有人都可以直接访问并修改数据库数据了。 其实MongoDB本身有非常详细的安全配置准则,显然开发者也是想到了,然而他是将安全的任务推给用户去解决,这本身的策略就是偏向易用性的,对于安全性,则得靠边站了。

前期博客

Ubuntu14.04下Mongodb(在线安装方式|apt-get)安装部署步骤(图文详解)(博主推荐)

mongodb远程连接配置分为以下4步:

1、首先修改mongodb的配置文件 让其监听所有外网ip

编辑文件:/etc/mongodb.conf

  修改为,如下

  修改的内容是:

bind_ip = 0.0.0.0
port =
auth = true

  MongoDB有两种用户,一种是admin用户(这里以root为例),能查看所有数据库;另一种数据库用户(这里以dbuser为例),只能查看特定数据库。 

  首先输入mongo进入MongoDB shell命令模式:

root@zhouls-virtual-machine:~# mongo
MongoDB shell version: 2.4.
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>

  2、在admin数据库中添加root用户,在test数据库中添加dbuser用户

use admin
db.addUser('root','root') #用户名:root,密码:root
use test
db.addUser('dbuser','dbuser') #用户名:dbuser,密码:dbuser

> use admin
switched to db admin
> db.addUser('root','root')
{
"user" : "root",
"readOnly" : false,
"pwd" : "2a8025f0885adad5a8ce0044070032b3",
"_id" : ObjectId("59315897ebbf85f0bd54ef47")
}
> use test
switched to db test
> db.addUser('dbuser','dbuser')
{
"user" : "dbuser",
"readOnly" : false,
"pwd" : "e8f2818f5400a2a6cdc164b313abd49f",
"_id" : ObjectId("593158b9ebbf85f0bd54ef48")
}
>

  MongoDB所有的用户信息都是存储在admin数据库中system.users表中,截图如下:

> ^C
bye
root@zhouls-virtual-machine:~#

  3、开启与关闭mongodb服务

service mongodb stop #停止MongoDB服务(因为MongoDB是随开机是自启动的)

service mongodb start #开启MongoDB服务

root@zhouls-virtual-machine:~# service mongodb stop
mongodb stop/waiting
root@zhouls-virtual-machine:~# service mongodb start
mongodb start/running, process
root@zhouls-virtual-machine:~#

4、测试用户权限是否正常开启

  注意:输入mongo进入shell命令模式,默认连接的数据库是test数据库。
  试图查看test数据库的所有集合,发现查看失败;验证test数据库用户dbuser;再次查看test所有集合,发现查看成功。截图如下:

root@zhouls-virtual-machine:~# mongo
MongoDB shell version: 2.4.
connecting to: test
> show collections
Fri Jun ::20.414 error: {
"$err" : "not authorized for query on test.system.namespaces",
"code" :
} at src/mongo/shell/query.js:
> db.auth('dbuser','dbuser') > show collections
system.indexes
system.users
>

5、防火墙开放27017端口

root@zhouls-virtual-machine:~# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport  -j ACCEPT
root@zhouls-virtual-machine:~#

6、测试(桥接模式)

root@zhouls-virtual-machine:~# mongo ****:/admin -u root -p root
MongoDB shell version: 2.4.
connecting to: *****:/admin
> show dbs
admin .203125GB
local .078125GB
test .203125GB
>

  或者

6、测试(NAT模式的静态ip)

root@zhouls-virtual-machine:~# mongo 192.168.80.31:27017/admin -u root -p root
MongoDB shell version: 2.4.
connecting to: 192.168.80.31:/admin
> show dbs
admin .203125GB
local .078125GB
test .203125GB
>

如何做到Ubuntu14.04下的mongdb远程访问?(图文详解)的更多相关文章

  1. ubuntu14.04 server ftp 服务安装配置详解

    ubuntu14.04 server ftp 服务安装配置详解 cheungmine 2016-01-27 http://wiki.ubuntu.com.cn/Vsftpd 0 安装好vsftpd服务 ...

  2. (转)CentOS 6下配置软RAID图文详解

    CentOS 6下配置软RAID图文详解 原文:http://blog.51cto.com/hujiangtao/1929620 一.RAID 简介 RAID 是英文Redundant Array o ...

  3. 反射实现Model修改前后的内容对比 【API调用】腾讯云短信 Windows操作系统下Redis服务安装图文详解 Redis入门学习

    反射实现Model修改前后的内容对比   在开发过程中,我们会遇到这样一个问题,编辑了一个对象之后,我们想要把这个对象修改了哪些内容保存下来,以便将来查看和追责. 首先我们要创建一个User类 1 p ...

  4. VMware里Ubuntu-14.04-desktop的VMware Tools安装图文详解

    不多说,直接上干货!    前期步骤,请见如下 VMware里Ubuntukylin-14.04-desktop的VMware Tools安装图文详解 我这里,直接,是来说明,Ubuntu-14.04 ...

  5. Ubuntu 16.04或14.04里下安装搜狗输入法(图文详解)(全网最简单)

    不多说,直接上干货! 其实啊,很简单 分三步走 1.添加fcitx的键盘输入法系统,因为sogou是基于fcitx的,而系统默认的是iBus: 2.安装sogou输入法: 3.设置系统参数及一些注意点 ...

  6. 如何正确从他人机器MySQL数据库下拷贝出.sql,再导入到自己windows下MySQL数据库(图文详解)

    不多说,直接上干货! 我这里,是放在桌面上. 登陆数据库 然后, mysql -uroot -p 默认是回车. 创建数据库 CREATE DATABASE securityonion_db; 目的,就 ...

  7. Windows操作系统下Redis服务安装图文详解

    Redis下载地址:https://github.com/MSOpenTech/redis/releases 下载msi格式的安装文件. 1.运行安装程序,单击next按钮. 2.勾选接受许可协议中的 ...

  8. Ubuntu 16.04 Server 版安装过程图文详解

    进入系统安装的第一个界面,开始系统的安装操作.每一步的操作,左下角都会提示操作方式!! 1.选择系统语言-English 2.选择操作-Install Ubuntu Server 3.选择安装过程和系 ...

  9. Ubuntu14.04下Mongodb(离线安装方式|非apt-get)安装部署步骤(图文详解)(博主推荐)

    不多说,直接上干货! 说在前面的话  首先,查看下你的操作系统的版本. root@zhouls-virtual-machine:~# cat /etc/issue Ubuntu LTS \n \l r ...

随机推荐

  1. 20.QT文本文件读写

    #include "mainwindow.h" #include "ui_mainwindow.h" #include <QFile> #inclu ...

  2. 17. Letter Combinations of a Phone Number[M]电话号码的字母组合

    题目 Given a string containing digits from 2-9 inclusive, return all possible letter combinations that ...

  3. 个人作业—Alpha项目测试

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业要求在哪里 https://edu.cnblo ...

  4. Python—使用xml.sax解析xml文件

    什么是sax? SAX是一种基于事件驱动的API. 利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器. 解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件; 而事件处 ...

  5. BZOJ 2287 DP+容斥

    思路: 先处理出来f[j]表示这i个物品都可用 填满容量j的方案数 容斥一发 处理出来g[j]=g[j-w[i]] 表示i不能用的时候 填满容量j的方案数 //By SiriusRen #includ ...

  6. 广播Intent的三种方式总结

    1.android有序广播和无序广播的区别 BroadcastReceiver所对应的广播分两类:普通广播和有序广播. 普通广播通过Context.sendBroadcast()方法来发送.它是完全异 ...

  7. SQL Server 获取两个日期间的日期

    declare @start datetime declare @end datetime set @start = '2018-01-25' set @end = '2018-02-03' sele ...

  8. Route学习笔记

    前言 UrlRoutingModule.class:这块的代码关联了上一篇中路由部分的一个详细说明 一:Route的讲解 1. 路由模板匹配 添加路由: MapRoute 剔除的路由:IgnoreRo ...

  9. Java NIO(三)通道

    概念 通道(Channel)由java.nio.channels包定义的.channel表示IO源与目标打开的连接,类似流,但不能直接访问数据,只能与Buffer进行交互 通道类似流,但又有不同: 既 ...

  10. Pyhton学习——Day46

    # 数据库:存储数据的仓库# 数据库更多的是安全.备份# 客户端取服务端的数据实际都是从服务端的内存中抓取数据# 数据库管理系统软件# 数据库管理系统(Database Management Syst ...