[MongoDB]-权限验证管理

news2024/10/2 8:39:02

[MongoDB]-权限验证管理

senge | 2023年9月

背景说明:现有两套MongoDB副本集群给开发人员使用时未开启认证。

产生影响:用户若输入账号以及密码则会进行校验,但用户可以在不输入用户名和密码的情况下也可直接登录。


倘若黑客借此进行攻击勒索,后果是比较严重的。所以下面我们一起为我们的集群增加认证。

当前版本:4.4.15

1. 生成Keyfile文件

某个节点下面进行操作:

openssl rand -base64 753 > /data/mongodb/etc/mongo.keyfile

chmod 600 /data/mongodb/etc/mongo.keyfile

将生成的文件复制到其他节点:

scp /data/mongodb/etc/mongo.keyfile user@host:/dir

2. 修改配置文件

# 配置文件末尾添加:
security:
    keyFile: /xxx/mongo.keyfile
    authorization: enabled

3. 重启实例

可以先将slave节点停止,再重启Primary节点后,启动slave节点,这样不会更改主节点。

4. 验证集群状态


> rs.status()

"health" : 1 即为某节点正常

5. 用户角色

在增加认证登录后,我们还可以对用户的权限进行设置,增加安全性。

5.1 创建用户

> use admin

> db.createUser(
    {
        user:"username",
        pwd:"xxxxxx",
        roles:[{role:"xxx",db:"xxx"}]
    }
)

关于 role 有以下几种:

请添加图片描述

5.2 修改用户密码


> use admin

> db.changeUserPassword('用户名','新密码');

> db.auth('用户名','新密码');

5.3 用户赋权

db.grantRolesToUser(
    "username",
    [
        { role: "xxxx", db: "xxxx" }
    ]
)

不会影响已有权限

5.4 回收权限

db.revokeRolesFromUser(
    "username",
    [
        { role: "xxxx", db: "xxxx" }
    ]
)

5.5 更新用户

db.updateUser(
    "username",
    {
        customData: { info: "user for username" },
        roles: [
            { role: "dbabd", db: "admin" },
            { role: "read", db: "admin" }
        ]
    }
)

customData: 账户信息描述

到此,我们的对于MongoDB的权限介绍就结束了,如果不对之处,敬请指正,溜啦~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1072239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nSoftware IPWorks IoT 2022 Java 22.0.8 Crack

物联网库,使用这个轻量级组件库,可以在任何平台上的应用程序中轻松实现物联网 (IoT) 通信协议。 nSoftware IPWorks IoT 最新的 IPWorks IoT 现已推出!最新版本的 IPWorks IoT 具有现代化和简化的体验,包括 .NET 中的异步和跨平台…

LeetCode竞赛---第 366 场周赛

Problem: 100103. 分类求和并作差 📚 题目:给你两个正整数 n 和 m 。 现定义两个整数 num1 和 num2 ,如下所示: num1:范围 [1, n] 内所有 无法被 m 整除 的整数之和。num1:范围 [1, n] 内所有 无法被 m 整…

OPPO realme 真我 一加 刷机工具下载 ColorOS Upgrade Tool

Download Realme Upgrade Tool for Windows Download ColorOS Upgrade Tool for Windows Realme升级工具是由Realme开发的Windows应用程序,可帮助用户升级其Realme设备上的固件。此工具支持在Realme Ul 3.0或更高版本上运行的Realme 设备。OPPO realme 真我 一加 …

下载安装JRebel插件

settings -> plugis -> JRebel 下载 然后重启idea 激活 现在呢,2023年啦~所以网址得是最先哒~ http://127.0.0.1:8888/{GUID} GUID从下面的网址生成,邮箱随意~ Create GUID online (guidgen.com) LS client not configured. 删除用户文件夹…

C++ | 仿函数

仿函数的用法 在C语言时期,如果想要实现回调函数或者是函数参数需要传入函数,通常是用的函数指针。而在C中,我们一般用仿函数来平替。 仿函数,又叫函数对象。虽然名字叫仿函数,但本质上就是一个重载了 operator() 的类…

金融信创黄金三年:小程序生态+跨端技术框架构建

小程序应用场景生态的发展,受益于开源技术的发展,以及响应快速开发的实际业务需求,一些跨端框架如:Electron、wxPython、FinClip、Tauri、Flutter等发展也非常迅速,小程序生态跨端技术框架,不仅能满足自有超…

Python3操作文件系列(三):OpenPyXl模块三大对象操作Excel文件

Python3操作文件系列(一):判断文件|目录是否存在三种方式 Python3操作文件系列(二):文件数据读写|二进制数据读写 Python3数据文件读取与写入 Python3操作文件系列(三):excel文件读写数据 Python操作Excel的三大对象认知升维: Excel对象模型:excel脚本编程的主要…

Idea热部署插件(JRebel for IntelliJ)激活(适用于内网、外网激活)

一.下载激活需要的Jar包 网盘地址: 链接:https://pan.baidu.com/s/1BYS9rE_3EA_isFfz8ORRDg 提取码:1i0c二.进入到第一步下载的jar目录下,运行cmd并且通过java-jar运行jar包 三.运行jar后,将激活地址复制到idea上&a…

docker基本用法

docker 基础常用命令 导入镜像 方式1 docker import kylin_sp2.tar.xz kylin-build:build-hs-220824方式2 [rootccc64 caojingjing]# cat kylin_sp2.tar.xz | docker import - kylin-build:build-hs-220824 sha256:c02cba7686b88e633eff58cddba3189712cbe7f449f2fd37b2033158a…

【JUC系列-10】深入理解ArrayBlockingQueue的底层原理

JUC系列整体栏目 内容链接地址【一】深入理解JMM内存模型的底层实现原理https://zhenghuisheng.blog.csdn.net/article/details/132400429【二】深入理解CAS底层原理和基本使用https://blog.csdn.net/zhenghuishengq/article/details/132478786【三】熟练掌握Atomic原子系列基本…

什么是研发效能DevOps?研发效能方程式又是什么?

研发效能DevOps是一种理念一个方法,旨在通过优化软件开发、运营和维护的流程,实现高效、高质量、快速的价值交付。 研发效能需要解决的是:如何平衡价值、效率、成本这三者的关系,同时寻求可持续发展。研发效能的目标是持续低成本…

多因素共同作用,行业格局或将发生变化

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 1、政经环境改善,数控机床有望走出寒冬 近年来,国家不断提高对于高端数控机床的扶持力度与关注。长…

高效解决 TypeError : ‘ numpy._DTypeMeta‘ object is not subscriptable 问题

文章目录 问题描述解决问题 问题描述 解决问题 参考博文 打开报错位置 AppData\Roaming\Python\Python39\site-packages\cv2\typing\ 添加single-quotes,即单引号 博主说The trick is to use single-quotes to avoid the infamous TypeError: ‘numpy._DTypeMeta’…

ChatGPT可以用于写留学文书嘛?对留学生有什么影响?

自从4月份ChatGPT4.0发布以后,越来越多的AI工具被应用于我们的日常生活当中,而对于学生来说,尤其是在读的留学生朋友,或多或少都使用过,无论是写文章综述还是项目总结,都有十分出色的效果。 01.ChatGPT 可…

算法题:买卖股票的最佳时机含手续费(动态规划解法贪心解法-详解)

这道题有两种解法:动态规划 or 贪心算法。 贪心算法的提交结果要比动态规划好一些,总体上动态规划的解法更容易想到。(完整题目附在了最后) 1、动态规划解法 设置两个数,dp[0]表示遍历到股票prices[i]时手里没有股…

SSM整合RabbitMQ,Spring4.x整合RabbitMQ

SSM整合RabbitMQ目录 前言版本实现目录参考pom.xml依赖rabbitmq.properties配置文件spring-rabbitmq.xmlspring-mvc.xml或applicationContext.xmlrabbitmq目录下MessageConsumer.javaMessageConsumer2.javaMessageProducer.javaMessageConstant.java 测试调用 扩展消息重发 前言…

飞桨大模型套件:一站式体验,性能极致,生态兼容

在Wave Summit 2023深度学习开发者大会上,来自百度的资深研发工程师贺思俊和王冠中带来的分享主题是:飞桨大模型套件,一站式体验,性能极致,生态兼容。 大语言模型套件PaddleNLP 众所周知PaddleNLP并不是一个全新的模型…

Google-CTF-2016-Stego.pcap数据包解析

Google-CTF-2016(a-cute-stegosaurus-100) 前言:别人发的题目 随便看看 记录一下解题过程! 知识点: 在报文段中有 6Bit 的状态控制码, 分别如下tcp URG:紧急比特(urgent)&#x…

机械臂抓取的产业落地进展与思考

工业机械臂是一种能够模拟人类手臂动作的机械装置,具有高精度、高速度和高灵活性的特点。近年来,随着人工智能和机器人技术的快速发展,机械臂在工业生产、物流仓储、医疗护理等领域得到了广泛应用。机械臂抓取技术作为机械臂的核心功能之一&a…

C语言进阶---程序环境和预处理

C语言进阶---程序环境和预处理 前言一、程序的翻译环境、执行环境二、详解:C语言程序的编译链接三、预定义符号介绍四、预处理指令 #define五、宏和函数的对比(思维导图)六、命令定义、预处理指令 #include #undef1.命名约定2.命令行定义 七、…