MongoDB中的关键概念之一是数据库管理。当涉及到数据库管理时,安全性,备份,对数据库的访问等重要方面都是重要概念。
在本教程中,您将学习 ——
• 数据库安全概述
• 备份程序-mongodump
• Mongodb监控
• 索引编制和性能注意事项
MongoDB安全概述
MongoDB能够定义数据库的安全性机制。默认情况下,我们当然不希望任何人都可以对MongoDB中的每个数据库进行开放访问操作,因此在MongoDB中具有某种安全机制的要求很重要。
下面是在数据库中实现安全性的最佳操作:
1. 启用访问控制–创建用户,以便在访问MongoDB上的数据库时强制所有应用程序和用户具有某种身份验证机制。
2. 配置基于角色的访问控制–有时可能需要对权限进行逻辑分组,这些分组可以包含在角色中。然后可以将用户分配给这些角色。
3. 尝试将MongoDB配置为使用某种加密协议,例如TLS或SSL。这些协议可在客户端进行加密,或者mongo DB环境之间流动的流量。
4. 配置审计–管理员通常需要知道谁在做什么,这有助于以后分析问题。最好的方法是在MongoDB中启用审计。
5. 使用单独的用户ID运行MongDB服务器实例,该用户ID可以访问服务器环境上的所需资源。
MongoDB备份程序-mongodump
使用MongDB时,务必确保备份过程顺利,成功,以防MongoDB中的数据由于任何原因而损坏。
以下是MongoDB的备份机制:
1. 通过复制底层数据文件进行备份 –这可能是最简单的机制,所要做的就是复制MongoDB所在的数据文件,理想情况是将其复制到是另外一台服务器。
2. 使用mongodump备份数据库 -mongodump工具从MongoDB数据库读取数据并创建高保真BSON文件。需要注意,如果数据量很大,mongodump可能会占用大量资源,所以,为缓解这种情况,应该在辅助服务器上运行此程序。
3. MongoDB Cloud Manager备份 -MongoDB Cloud Manager通过从MongoDB环境中读取操作日志数据来持续备份MongoDB副本集和分片群集。MongoDB Cloud Manager可以通过存储操作日志数据来创建时间点恢复,以便随时为特定副本集或分片集群进行恢复。
MongoDB监控
监控是MongoDB中最关键的管理活动之一。这是因为通过监控环境中可能出现的问题,以便更好的解决问题。
下面是一些实施监控的例子:
1. mongostat将告诉您服务器上实际上发生了多少次数据库操作,例如插入,查询,更新,删除等。这将为服务器处理多少负载提供一个参照,并将指示您是否需要服务器上的其他资源,或者可能需要其他服务器来分配负载。
2. mongotop跟踪并报告MongoDB实例的当前读写活动,并基于每个集合报告这些统计信息。
3. MongoDB提供了一个Web界面,可在一个简单的网页中显示诊断和监视信息。可以浏览到本地服务器上的以下URL,以打开Web管理实用程序:
http:// localhost:28017
4. serverStatus命令或命令程序中的db.serverStatus()返回数据库状态的概述,包括磁盘使用情况,内存使用情况,与MongoDB环境建立的连接等详细信息。
MongoDB索引和性能影响
1. 索引在任何数据库中都非常重要,可用于提高MongoDB中的搜索查询效率。如果您继续在文档中执行搜索,则最好在搜索条件中使用的文档字段上添加索引。
2. 尝试始终限制返回的查询结果的数量。假设在文档中有2个字段名称,只想从文档中看到2个字段。所以,确保查询仅针对显示需要的2个字段,而不是所有字段。
3. 如果要查看某些字段值,则在查询中使用这些字段。如果不需要,请不要查询集合中的所有字段。
总结:
• 在数据库中使用安全机制是很重要的,这样才可以确保数据库中的数据保持安全。
• 可以使用createUser命令在数据库中创建用户。可以将特定角色分配给用户,以赋予他们对数据库本身的特定权限。
• 可以为所有数据库添加管理员,仅针对特定数据库添加。这可以通过授予userAdmin或userAdminAnyDatabase角色来实现。
• 始终备份MongoDB数据,以便在发生任何灾难的情况下都可以轻松恢复数据。
• 始终监控MongoDB环境,能让我们在问题发生之前,更主动的发现问题。
源地址:https://www.guru99.com/database-management-mongodb.html
本文分享自 Mongoing中文社区 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!