mongodb使用使用 SCRAM 验证客户端设置访问控制

简介: SCRAM 验证客户端设置访问控制

1、在没有访问控制的情况下启动 MongoDB

启动没有访问控制的mongodb实例,打开终端并以mongod用户身份运行以下命令:

mongod --port 27017 --dbpath /var/lib/mongodb

若是按照我前几篇的步骤来的,则查看数据库是否启动即可。

2、连接到实例

mongosh --port 27017

3、创建用户管理员

切换到admin库
创建具有 userAdminAnyDatabase和 readWriteAnyDatabase角色的用户

use admin
db.createUser(
  {
   
    user: "myUserAdmin",
    pwd: passwordPrompt(), // or cleartext password
    roles: [
      {
    role: "userAdminAnyDatabase", db: "admin" },
      {
    role: "readWriteAnyDatabase", db: "admin" }
    ]
  }
)

以上代码运行后会提示输入密码,输入即可。

myUserAdmin用户具有的权限:

创建用户
授予或撤销用户的角色
创建或修改自定义角色
读写任何数据库
管理和操作任何数据库

说明白点,他就是超级管理员root

4、重启数据库

5、以用户管理员的身份连接

连接后验证

mongosh --port 27017
use admin
db.auth("myUserAdmin", passwordPrompt()) // or 直接将passwordPrompt()替换为密码

连接时认证

mongosh --port 27017  --authenticationDatabase \
    "admin" -u "myUserAdmin" -p

6、创建自定义角色

管理操作角色

db.createRole(
   {
   
     role: "manageOpRole", 
     privileges: [
       {
    resource: {
    cluster: true }, actions: [ "killop", "inprog" ] },
       {
    resource: {
    db: "", collection: "" }, actions: [ "killCursors" ] }
     ],
     roles: []
   }
)

新角色授予终止任何操作的权限。(该权限使用要注意)

要运行的角色

db.createRole(
   {
   
     role: "mongostatRole", 
     privileges: [
       {
    resource: {
    cluster: true }, actions: [ "serverStatus" ] }
     ],
     roles: []
   }
)

该角色可以操作集群

7、修改角色权限

确定用户的角色和权限
要显示要修改的用户的角色和权限,可以使用 db.getUser()和db.getRole()方法。

例子:(查看reportsUser在reporting库中的角色)

use reporting
db.getUser("reportsUser")

要为该角色授予reporting的数据库权限 readWrite:

use reporting
db.getRole( "readWrite", {
    showPrivileges: true } )
目录
相关文章
|
NoSQL Linux atlas
|
NoSQL 安全 MongoDB
Mongo DB之用户与权限管理、备份与恢复管理以及客户端工具的使用
MongoDB是一款灵活且高性能的文档型数据库,具有可扩展性和强大的查询功能,适用于各种应用场景。
1519 1
|
10月前
|
NoSQL IDE MongoDB
Studio 3T 2025.11 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.11 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
530 3
|
7月前
|
NoSQL IDE MongoDB
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
421 1
Studio 3T 2025.17 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
6月前
|
NoSQL IDE MongoDB
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.18 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
374 0
Studio 3T 2025.18 发布 - MongoDB 的终极 GUI、IDE 和 客户端
|
10月前
|
NoSQL IDE MongoDB
Studio 3T 2025.10 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.10 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
904 21
Studio 3T 2025.10 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
12月前
|
NoSQL IDE MongoDB
Studio 3T 2025.7 发布 - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.7 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
270 3
Studio 3T 2025.7 发布 - MongoDB 的终极 GUI、IDE 和 客户端
|
NoSQL IDE MongoDB
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
477 2
Studio 3T 2025.5 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
|
11月前
|
NoSQL IDE MongoDB
Studio 3T 2025.8 发布 - MongoDB 的终极 GUI、IDE 和 客户端
Studio 3T 2025.8 (macOS, Linux, Windows) - MongoDB 的终极 GUI、IDE 和 客户端
242 0
Studio 3T 2025.8 发布 - MongoDB 的终极 GUI、IDE 和 客户端
|
NoSQL 数据可视化 MongoDB
微服务2——MongoDB单机部署3——Compass-图形化界面客户端
MongoDB Compass 是一款官方提供的图形化界面客户端,用于便捷管理 MongoDB 数据库。可前往官网下载([链接](https://www.mongodb.com/download-center/v2/compass?initial=true)),选择安装版或压缩版。安装版按步骤执行,压缩版解压后运行 `MongoDBCompassCommunity.exe` 即可。启动后,在界面输入主机地址与端口等信息完成连接。通过直观的可视化操作,提升数据库管理效率。
538 0
微服务2——MongoDB单机部署3——Compass-图形化界面客户端

推荐镜像

更多