MongoDB 用户管理

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 10月更文挑战第12天

在 MongoDB 中进行用户管理涉及用户的创建、分配角色、认证和登录等操作。

下面是一个详细的说明,包含如何使用 MongoDB Shell (mongo) 或 MongoDB Compass 来管理用户。

使用 MongoDB Shell (mongo) 管理用户

以下是使用 MongoDB Shell (mongosh) 进行用户管理的详细说明,包括创建用户、分配角色、认证和登录的具体步骤。

1. 连接到 MongoDB

首先,打开你的终端并使用 mongosh 命令连接到 MongoDB 服务器:

mongosh --host <hostname> --port <port>

说明:

  • mongosh:启动 MongoDB Shell 命令行工具。
  • --host <hostname>:指定 MongoDB 服务器的主机名或 IP 地址。
  • <hostname>:MongoDB 服务器的主机名(如 localhost)或 IP 地址(如 127.0.0.1)。
  • --port <port>:指定 MongoDB 服务器的端口号。
  • <port>:MongoDB 服务器监听的端口号,默认端口是 27017

2. 切换到目标数据库

在 MongoDB 中,用户是针对特定数据库创建的,使用 use 命令切换到你要创建用户的数据库:

use <database_name>

  • database_name - 为要切换的数据库。

3. 创建用户

使用 db.createUser 命令创建用户并分配角色。

例如,创建一个名为 testuser 的用户,密码为 password123,并赋予 readWrite 和 dbAdmin 角色:

db.createUser({

 user: "testuser",

 pwd: "password123",

 roles: [

   { role: "readWrite", db: "<database_name>" },

   { role: "dbAdmin", db: "<database_name>" }

 ]

})

4. 验证用户

创建用户后,你可以使用 db.auth 命令验证用户身份:

db.auth("testuser", "password123")

5. 启用身份验证

为了确保只有经过身份验证的用户才能访问 MongoDB,需要启用身份验证。

编辑 MongoDB 配置文件 mongod.conf,并在其中添加以下内容:

security:

 authorization: "enabled"

然后重启 MongoDB 服务以应用更改。

6. 使用用户身份登录

启用身份验证后,你需要使用创建的用户身份连接到 MongoDB:

mongosh --host <hostname> --port <port> -u "testuser" -p "password123" --authenticationDatabase "<database_name>"

7. 删除用户

使用 db.dropUser 命令删除指定用户。

例如,删除名为 testuser 的用户:

db.dropUser("testuser")

实例操作

以下是一个完整的示例操作流程:

启动 MongoDB Shell 并连接到服务器:

mongosh --host localhost --port 27017

切换到 testdb 数据库:

use testdb

创建 testuser 用户:

db.createUser({

 user: "testuser",

 pwd: "password123",

 roles: [{ role: "readWrite", db: "testdb" }]

})

启用身份验证并重启 MongoDB 实例

编辑 mongod.conf 文件,添加以下内容:

security:

 authorization: "enabled"

重启 MongoDB 服务:

sudo systemctl restart mongod

使用 testuser 用户进行身份验证连接:

mongosh --host localhost --port 27017 -u "testuser" -p "password123" --authenticationDatabase "testdb"

删除 testuser 用户:

db.dropUser("testuser")

目录
相关文章
|
12月前
|
监控 NoSQL MongoDB
MongoDB的用户管理总结
这篇文章总结了MongoDB的用户管理,包括用户创建、角色分配、用户认证、账号密码配置以及用户删除等操作。
702 1
|
NoSQL 网络协议 Unix
第6期 MongoDB配置启动方式
第6期 MongoDB配置启动方式
828 0
|
存储 NoSQL Linux
MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])
MongoDB【部署 02】mongodb使用配置文件启动、添加为系统服务及自启动(一个报错:[13436][NotMasterOrSecondary])
1067 0
|
Oracle Java 关系型数据库
三分钟拿下dbeaver企业版
数据库管理工具Dbeaver,开源的企业版,功能丰富
2347 0
三分钟拿下dbeaver企业版
|
NoSQL Linux MongoDB
MongoDB配置用户名和密码
MongoDB配置用户名和密码
1963 0
|
11月前
|
存储 NoSQL Shell
MongoDB 创建数据库
10月更文挑战第12天
576 4
|
9月前
|
SQL NoSQL 数据可视化
你的mongodb客户端是哪个呢?
MongoDB 是一种流行的文档数据库,支持多种应用场景。常用的客户端管理工具包括: 1. **MongoDB Shell**:现代命令行界面,提供语法高亮、自动完成等功能。 2. **MongoDB Compass**:图形化界面,支持可视化查询、聚合框架、多平台运行和实时性能监控。 3. **Studio 3T**:企业级工具,支持SQL查询、代码生成、数据导入导出和高级安全功能。
1281 14
|
存储 JSON NoSQL
MongoDB入门-MongDB介绍和安装
MongoDB是一个基于分布式文件存储 [1] 的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
1636 1
|
11月前
|
NoSQL MongoDB 数据库
|
11月前
|
NoSQL Ubuntu Linux
Linux平台安装MongoDB
10月更文挑战第11天
355 5