Mongodb常用的身份验证方式

对于 Mongodb 常用的身份验证方式,主要有以下两种:

1. SCRAM-SHA

SCRAM-SHA 是一种新的身份验证机制,它基于 Salted Challenge Response Authentication Mechanism(SCRAM)协议,提供更安全的密码验证。SCRAM-SHA 分为 SCRAM-SHA-1 和 SCRAM-SHA-256 两种方式。在 MongoDB 4.0 及之后的版本中默认使用 SCRAM-SHA-256 方式验证。

配置 SCRAM-SHA-256 验证

1.启用身份验证功能

在启动 MongoDB 时,需使用 --auth 参数启用身份验证功能。

2.创建超级管理员账户

> use admin
> db.createUser(
...   {
...     user: "admin",
...     pwd: "123456",
...     roles: [ { role: "root", db: "admin" } ]
...   }
... )

3.为普通用户授予角色

在创建用户时,需确保用户具备在相关数据库上执行所需的操作的角色。下面的示例创建了一个名为 user1,密码为 123456 的用户,并将其授予 readWriteAnyDatabase 权限。

> use test
> db.createUser(
...   {
...     user: "user1",
...     pwd: "123456",
...     roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]
...   }
... )

SCRAM-SHA-1 验证配置方法与 SCRAM-SHA-256 类似,在此不再赘述。

2. X.509

X.509 是一种公钥基础结构(PKI)标准,是使用数字证书进行身份验证的协议。与 SCRAM-SHA 不同,X.509 不需要使用用户名/密码验证方式,而是使用数字证书完成身份验证。

配置 X.509 验证

1.生成或获取证书

首先需要获取或生成证书,可以使用自签名证书或颁发机构(CA)证书。

2.启用身份验证功能

在启动 MongoDB 时,使用 --auth --sslMode requireSSL --sslPEMKeyFile <pem_file> --sslCAFile <ca_file> 参数启用身份验证并启用 SSL/TLS 加密。

3.将客户端证书添加到数据库中

> use admin
> db.runCommand({
...  createUser: "CN=myClient,OU=client",
...  roles: [
...    {role: "readWrite", db: "myDatabase"}
...  ],
...  userSource: "$external"
... })

此示例中,CN=myClient,OU=client 为证书的公用名称(Common Name,CN)和组织单位(Organizational Unit,OU)。需要根据实际证书信息进行替换。

4.配置 MongoDB 实例,使其接受客户端证书

在配置文件中添加以下配置,使 MongoDB 实例接受客户端证书。

net:
  # ...

  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
    CAFile: /etc/ssl/rootCA.pem

示例

使用 openssl 命令生成自签名证书

$ openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -x509 -days 365 -out mongodb.crt

将证书拼接成 pem 格式

$ cat mongodb.crt mongodb.key > mongodb.pem

启动 MongoDB 并启用身份验证与 SSL/TLS 加密

$ mongod --auth --sslMode requireSSL --sslPEMKeyFile /path/to/mongodb.pem --sslCAFile /path/to/rootCA.pem

创建用户并授予角色

> use admin
> db.runCommand({
...    createUser: "CN=myClient,OU=client",
...    roles: [
...        {role: "readWrite", db: "test"}
...    ],
...    userSource: "$external"
...})

使用证书连接 MongoDB 实例

$ mongo --ssl --sslPEMKeyFile /path/to/mongodb.pem --host localhost --username 'CN=myClient,OU=client' --authenticationMechanism MONGODB-X509

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mongodb常用的身份验证方式 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • 使用scrapy实现增量式爬取方式

    使用Scrapy实现增量式爬取方式的攻略如下: 一、为什么要使用增量式爬取方式 在许多情况下,我们需要经常更新我们的爬虫程序,以便及时获取网站上的新数据。但是,一些网站每天只能采集一定数量的数据,可能由于网站资源受到限制或自身能力问题。在这种情况下,为了提高爬取的效率,我们可以使用增量式爬取方式。 相比于全量爬取,增量式爬取能够只抓取最新的数据,只需爬取网站…

    MongoDB 2023年5月16日
    00
  • MongoDB安全及身份认证(实例讲解)

    MongoDB安全及身份认证 MongoDB是一个非常流行的开源、面向文档的数据库管理系统。然而,由于安全问题,MongoDB被攻击的频率也在逐年上升。因此,我们必须要学会如何保护MongoDB数据的安全。 为什么需要MongoDB的安全及身份认证? MongoDB的安全及身份认证是非常重要的,因为它可以保护你的数据免受意外、恶意或非法访问。如果没有适当的安…

    MongoDB 2023年5月16日
    00
  • Mongodb安装与配置笔记

    下面是“Mongodb安装与配置笔记”的完整攻略。 Mongodb安装与配置 安装Mongodb 在Ubuntu系统中安装Mongodb 步骤1:添加Mongodb存储库 在终端输入以下命令来添加Mongodb存储库: sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0C…

    MongoDB 2023年5月16日
    00
  • Tomcat9安装windows服务的详细教程

    以下是“Tomcat9安装windows服务的详细教程”的完整攻略。 前置要求 在开始操作Tomcat9安装windows服务之前,请确保已经完成以下步骤: 下载并解压Tomcat9的安装包; 配置JDK环境变量,并确保JDK能够成功运行。 安装Tomcat9服务 下面是安装Tomcat9服务的详细步骤: 打开命令提示符,进入Tomcat9的bin目录; 运…

    MongoDB 2023年5月16日
    00
  • windows下安装mongodb以及node.js连接mongodb实例

    下面我将为您详细讲解Windows下安装MongoDB以及Node.js连接MongoDB实例的完整攻略。 安装 MongoDB 下载 MongoDB 访问官网 https://www.mongodb.com/download-center/community ,选择相应的版本进行下载。在Windows平台下选择.msi的安装文件。 安装 MongoDB 双…

    MongoDB 2023年5月16日
    00
  • ubuntu取消pppoe启动时自动拔号的设置方法

    下面是详细的“ubuntu取消pppoe启动时自动拔号的设置方法”的攻略: 1. 确认当前系统网络连接方式 首先,我们需要确认当前系统是使用 pppoe 拨号方式连接网络还是其他方式。可以在命令行中输入以下命令确认: nmcli connection show 如果当前系统是使用 pppoe 拨号方式连接网络,则会看到类似如下输出结果: NAME UUID …

    MongoDB 2023年5月16日
    00
  • 基于Go和PHP语言实现爬楼梯算法的思路详解

    标题:【攻略】基于Go和PHP语言实现爬楼梯算法的思路详解 概述:本攻略主要介绍如何利用Go和PHP语言实现爬楼梯算法,包括算法思路、代码实现、示例说明等。 第一部分:算法思路 爬楼梯算法可以使用递归和迭代两种方式实现。 递归方式:爬n级楼梯,可以先爬(n-1)级楼梯,再爬1级楼梯;或者先爬(n-2)级楼梯,再爬2级楼梯。因此,爬n级楼梯的可能性为爬(n-1…

    MongoDB 2023年5月16日
    00
  • 提升MongoDB性能的方法

    提升 MongoDB 性能的方法主要包括以下几个方面: 1. 选择合适的硬件设备 合适的硬件设备包括CPU、内存、磁盘、网络等等。其中,CPU 和内存是 MongoDB 最为关键的硬件设备,CPU 负责计算并响应请求,内存则用于存储数据、索引和一些运行时的数据结构,磁盘则用于永久存储数据。网络也很重要,尤其是对于分布式的 MongoDB 集群而言。 2. 优…

    MongoDB 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部