在 mongodb 中创建安全数据库

2024-04-14

我想在 mongodb 中创建安全的数据库。

安全意味着应用程序必须传递用户名/密码才能连接到我的 mongodb 数据库。


来自 Mongo Java 教程

MongoDB 可以在安全模式下运行,其中通过名称和密码身份验证控制对数据库的访问。在此模式下运行时,任何客户端应用程序在执行任何操作之前都必须提供名称和密码。在 Java 驱动程序中,您只需对连接的 mongo 对象执行以下操作:

boolean auth = db.authenticate(myUserName, myPassword);

如果名称和密码对于数据库有效,则 auth 将为 true。否则就是假的。您应该查看 MongoDB 日志以获取更多信息(如果有)。

大多数用户在受信任的环境中运行 MongoDB,无需身份验证。


配置身份验证和安全性

身份验证存储在每个数据库的 system.users 集合中。例如,在数据库projectx上,projectx.system.users将包含用户信息。

我们应该首先为整个数据库服务器进程配置一个管理员用户。该用户存储在特殊的管理数据库下。

如果 admin.system.users 中没有配置用户,则无需身份验证即可从 localhost 界面访问数据库。因此,从运行数据库的服务器(因此在本地主机上)运行数据库 shell 并配置管理用户:

$ ./mongo
> use admin
> db.addUser("theadmin", "anadminpassword")

我们现在为数据库管理员创建了一个用户。请注意,如果我们之前没有进行身份验证,那么如果我们希望执行进一步的操作,我们现在必须进行身份验证,因为 admin.system.users 中有一个用户。

> db.auth("theadmin", "anadminpassword")

我们可以使用以下命令查看数据库的现有用户:

> db.system.users.find()

现在,让我们为另一个数据库配置一个“常规”用户。

> use projectx
> db.addUser("joe", "passwordForJoe")

最后,让我们添加一个只读用户。 (仅在 1.3.2+ 中支持)

> use projectx
> db.addUser("guest", "passwordForGuest", true)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 mongodb 中创建安全数据库 的相关文章

随机推荐

  • 在 Python Pandas read_csv 中使用多个字符分隔符

    看来熊猫read csv函数仅允许单个字符定界符 分隔符 是否有某种方法允许使用 或 等字符串代替 熊猫现在做支持多字符分隔符 http pandas pydata org pandas docs stable generated pand
  • 下载错误或资源不是有效图像

    尝试使用清单中的以下图标时出现错误 http localhost 3000 logo192 png http localhost 3000 logo192 png 下载错误或资源不是有效的图像 从控制台 import React from
  • Firebase Cloud Messaging 订阅多个令牌到一个主题

    我有一个允许用户创建帐户的应用程序 然后 我将用户信息存储在 Firebase 数据库中 我还存储所有用户的设备令牌 以防他们通过一个帐户使用多台设备 iPhone iPad Android 等 当用户订阅某个主题时 我希望能够订阅该主题的
  • 如何避免 OSX 上自制程序中的“无法加载此类文件 -- utils/popen”

    我运行时遇到错误brew在终端中 System Library Frameworks Ruby framework Versions 2 0 usr lib ruby 2 0 0 rubygems core ext kernel requi
  • Capifony 和目录所有者

    When I cap deploy我的 Symfony2 项目 然后登录到我的服务器 我看到 dev app dev php 运行正常 但 prod 版本 app php 运行正常 错误是 Tue Jan 03 14 31 48 2012
  • 设置overflow-y也会导致overflow-x发生变化[重复]

    这个问题在这里已经有答案了 当我设定overflow y在一个街区上 它似乎正在影响overflow x财产 我做了一个JSFiddle 提供了此问题的示例 http jsfiddle net sgjennings 7fNhx 这似乎发生在
  • 将对象传递给 AutoMapper 映射

    我正在使用 AutoMapper 被映射到的实体的一些值是我当前方法中的变量 我尝试用谷歌搜索但没有成功 我可以将一组键值对或一个对象或其他东西传递给我的映射以使其使用这些值吗 映射后修改示例 comment variable is a C
  • 如何使用 Node.JS 通过 XMPP 发送 HTML 格式的消息?

    这个问题讨论使用node xmpp发送消息 在 Node js 上通过 XMPP 连接到 Google Talk https stackoverflow com questions 4349577 connecting to google
  • python - 池映射的字典迭代器

    我正在处理一组冻结集 我试图在字典 输出 中找到每个冻结集的最小集 我有 70k freezesets 所以我正在制作这个 freezeset 字典的块并并行化这个任务 当我尝试将此字典作为我的函数的输入传递时 仅发送密钥 因此我收到错误
  • 按组列出的最常见值(众数)[重复]

    这个问题在这里已经有答案了 我试图按组找到最常见的值 在以下示例数据框中 df lt data frame a c 1 1 1 1 2 2 2 3 3 b c 2 2 1 2 3 3 1 1 2 gt df a b 1 1 2 2 1 2
  • 标签助手“input”在元素的属性声明区域中不得包含 C#

    在构建最近从 NET Core 2 2 迁移到 3 0 的 ASP NET Core MVC 应用程序时 我们遇到以下错误 标签助手 input 或 textarea 或任何其他 不得具有 C 在元素的属性声明区域中 我们用的是剃须刀 fu
  • android EditText maxLength 允许用户输入更多内容

    我已经在 xml 布局文件中为 EditText 小部件设置了 maxLength 属性 它确实限制了字符的显示 但它仍然允许用户在键盘上按更多字母 并且退格键会删除这些额外的按键 而不是显示屏上的最后一个字母 我相信事情不应该是这样的 达
  • Django项目中大量页面如何组织分页?

    我有一个view py产品列表 from django shortcuts import render get object or 404 from models import ProductCategory Product Product
  • VB.net中是否有像SQL中那样的IN运算符

    是否有类似的函数或运算符 If RoleName in Val1 Val2 Val2 Then Go End If 代替 If RoleName Val1 Or RoleName Val2 Or RoleName Val2 Then Go
  • 有人可以解释这种行为吗?只需两行代码[重复]

    这个问题在这里已经有答案了 请解释一下这个片段 include
  • Bulbflow:neo4jserver Graph 和 neo4jserver Neo4jclient 之间的区别

    我现在正在尝试学习如何连接到 Neo4j 服务器并使用 Python 中的 Bulbflow 在其上运行 Cypher 查询 我不明白的是连接到 neo4j 服务器的两种可能性之间的区别 1 Graph http bulbflow com
  • 包含 std::string 常量的类

    所以我目前正在使用 C 进行一个学校项目 我对此并不熟悉 我想创建一个类 包含我所有的常量 字符串 整数 双精度 自己的类 我正在尝试这个 这在 Java 中一直对我有用 class Reference Picture Paths publ
  • 使用 TensorFlow 对象检测输出分数、类别和 ID 提取

    如何提取由用于对象检测的 Tensorflow 模型生成的图像中检测到的对象 对象类别 对象 ID 的输出分数 我想将所有这些详细信息存储到单独的变量中 以便以后将它们存储在数据库中 使用与此链接中找到的相同的代码https github
  • 两个日期之间的输出 mysql [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我需要像这样在MYSQL中输出 记录
  • 在 mongodb 中创建安全数据库

    我想在 mongodb 中创建安全的数据库 安全意味着应用程序必须传递用户名 密码才能连接到我的 mongodb 数据库 来自 Mongo Java 教程 MongoDB 可以在安全模式下运行 其中通过名称和密码身份验证控制对数据库的访问