热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

MongoDB数据库访问控制

Mongodb默认启动是不带认证的,也没有账号,只要连接上服务就可以进行CRUD操作。作为数据库软件,为了保证数据的安全,可以采用以下方法提高数据访问的安全性:1、绑定要访问MongoDB服务所在的ip内网地址在启动时添加--bind_ip参数用以限制只允许某一特定I

Mongodb默认启动是不带认证的,也没有账号,只要连接上服务就可以进行CRUD操作。作为数据库软件,为了保证数据的安全,可以采用以下方法提高数据访问的安全性:

1、绑定要访问MongoDB服务所在的ip内网地址
在启动时添加--bind_ip参数用以限制只允许某一特定IP地址访问MongoDB服务,如:服务端限制只有58.20.3.52这个IP可以访问MongoDB服务
QQ截

客户端访问时需要指定服务端的IP,否则会报错:
QQ截
此时服务端和客户端位于一台机器,所以IP一致


2、设置监听端口
默认的监听端口是27017,我们可以修改这个监听端口,如:将服务器监听端口修改为27018
QQ截

当服务端指定了端口后,客户端访问时需要明确指定端口才可以访问
QQ截


3、使用用户名和口令登陆

MongoDB默认启动是不需要用户名和密码的,一个MongoDB实例中的每个数据库都可以拥有许多用户,使用--auth开启安全性检查,则只有数据库认证的用户才能执行读写操作。

1、添加用户,使用addUser('username’, ‘password’, ‘是否只读true|false(default)' )
QQ截
在admin数据库中的用户被视为超级管理员,--auth开启安全认证检查之前一定要有个管理员帐号。

QQ截
test普通数据库中添加了两个普通账户tom和tory,而tory账户只拥有readOnly权限。

2、开启安全认证检查(--auth)
启动MongoDB服务时添加-auth参数开启安全认证,开启安全认证检查之前一定要有个管理员帐号
QQ截

带有-auth参数时,必须通过认证才可以查询数据。如果没有加-auth参数,即使配置了安全认证用户,也不需要认证谁都可以操作。

3、用户认证
使用--auth开启安全性检查之后,则只有数据库认证的用户才能执行读写操作
QQ截
db.auth('tom' ,'123')用户认证,tom用户具有test数据库下的读写权限

QQ截
tory用户只有test数据库下的读权限

非特权用户不能使用show dbs查看所有数据库,作为超级管理员root用户,可以对所有数据库进行任意操作。

system.user

每个数据库的用户账号都是以文档形式存储在system.users集合里面的,
文档结构{'user':username, 'readOnly':true, 'pwd': password hash}。password hash是根据用户名和密码生成的散列。
QQ截

QQ截

查询某个数据库下的用户db.system.users.find();
删除某个数据库下的所有用户db.system.users.remove(),删除指定用户db.system.users.remove({'user':'用户名'})


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 一面自我介绍对象相等的判断,equals方法实现。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。希望去哪 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  •     系统采用jeeplus框架(ssm+redis+shiro+mongodb+redis),默认是做了JSP未做前后端分离,由于业务需要已经多终端使用的需求(H5、小程序等) ... [详细]
  • mongoDB高可用集群环境搭建
    2019独角兽企业重金招聘Python工程师标准在生产环境下,部署一台mongodb服务的话,会存在以下问题:单点问题生产环境是一个 ... [详细]
author-avatar
Pri_颖颖_773
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有