MongoDB之角色与权限及创建用户与授权操作详解

MongoDB之角色与权限及创建用户与授权操作详解

文章目录

  • MongoDB之角色与权限及创建用户与授权操作详解
  • 1. 角色与权限
    • 1. 角色分类
    • 2. 权限说明
  • 2. MongDB创建用户及删除用户
    • 1. 创建用户
    • 2. 查看用户信息
    • 3. 修改用户密码
  • 3. db.runCommand创建用户与授权
    • 1. 创建用户
    • 2. 更改用户权限

1. 角色与权限

1. 角色分类

角色分类角色分类中的具体角色
数据库用户角色read、readWrite
数据库管理角色dbAdmin、dbOwner、userAdmin
集群管理角色clusterAdmin、clusterManager、clusterMonitor、hostManage
数据库备份、恢复角色backup、restore
所有数据库角色readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色root
内部角色__system

2. 权限说明

权限说明
read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除、查看统计或访问system.profile
userAdmin允许用户向system.users集合写入,可以在指定数据库中创建、删除和管理用户
clusterAdmin必须在admin数据库中定义,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase必须在admin数据库中定义,赋予用户所有数据库的读权限
readWriteAnyDatabase必须在admin数据库中定义,赋予用户所有数据库的读写权限
userAdminAnyDatabase必须在admin数据库中定义,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase必须在admin数据库中定义,赋予用户所有数据库的dbAdmin权限
root必须在admin数据库中定义,超级账号,超级权限

2. MongDB创建用户及删除用户

1. 创建用户

use admin
db.createUser({"user":"用户名","pwd":"密码","roles":[# 角色可配多个{role:"角色",db:"所属数据库"}],# 用户信息,可选coustomData:{name:"jinshengyuan",email:"xxx@xx.com"}
})
# 创建一个不受访问限制的用户,
db.createUser({user:"wei",pwd:"wei",roles:["root"]
})

2. 查看用户信息

use admin
show users
db.system.users.find()
db.system.users.pretty()
db.runCommand({userInfo:"用户名"})

3. 修改用户密码

use amdin
db.changeUserPassword("用户名","新密码")
# 修改用户密码及用户信息
db.runCommand({updateUser:"用户名",pwd:"新密码",customData:{age:22}})

3. db.runCommand创建用户与授权

可通过db.runCommand命令行来创建/修改用户与授予相关权限的操作

1. 创建用户

use admin
db.runCommand({"createUser" : "yuan","pwd" : "yuan","customData" : {},"roles" : [{"role" : "__queryableBackup","db" : "admin"},{"role" : "__system","db" : "admin"},{"role" : "backup","db" : "admin"},{"role" : "clusterAdmin","db" : "admin"},{"role" : "clusterManager","db" : "admin"},{"role" : "clusterMonitor","db" : "admin"},{"role" : "dbAdmin","db" : "admin"},{"role" : "dbAdminAnyDatabase","db" : "admin"},{"role" : "dbOwner","db" : "admin"},{"role" : "enableSharding","db" : "admin"},{"role" : "hostManager","db" : "admin"},{"role" : "read","db" : "admin"},{"role" : "readAnyDatabase","db" : "admin"},{"role" : "readWrite","db" : "admin"},{"role" : "readWriteAnyDatabase","db" : "admin"},{"role" : "restore","db" : "admin"},{"role" : "root","db" : "admin"},{"role" : "userAdmin","db" : "admin"},{"role" : "userAdminAnyDatabase","db" : "admin"}]
});

2. 更改用户权限

use admin
db.runCommand({"updateUser" : "yuan","customData" : {},"roles" : [{"role" : "readWrite","db" : "yuan"},{"role" : "__queryableBackup","db" : "admin"},{"role" : "__system","db" : "admin"},{"role" : "backup","db" : "admin"},{"role" : "clusterAdmin","db" : "admin"},{"role" : "clusterManager","db" : "admin"},{"role" : "clusterMonitor","db" : "admin"},{"role" : "dbAdmin","db" : "admin"},{"role" : "dbAdminAnyDatabase","db" : "admin"},{"role" : "dbOwner","db" : "admin"},{"role" : "enableSharding","db" : "admin"},{"role" : "hostManager","db" : "admin"},{"role" : "read","db" : "admin"},{"role" : "readAnyDatabase","db" : "admin"},{"role" : "readWrite","db" : "admin"},{"role" : "readWriteAnyDatabase","db" : "admin"},{"role" : "restore","db" : "admin"},{"role" : "root","db" : "admin"},{"role" : "userAdmin","db" : "admin"},{"role" : "userAdminAnyDatabase","db" : "admin"}]
});

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

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

相关文章

ARMv8-AArch64 的异常处理模型详解之异常向量表vector tables

目录 一,AArch64 异常向量表 二,栈指针以及SP寄存器的选择 三,从异常返回 一,AArch64 异常向量表 异常向量表(vector tables)是一组存放于普通内存(normal memory)空间的&#xf…

【机器学习科学库】全md文档笔记:Jupyter Notebook和Matplotlib使用(已分享,附代码)

本系列文章md笔记(已分享)主要讨论人工智能相关知识。主要内容包括,了解机器学习定义以及应用场景,掌握机器学习基础环境的安装和使用,掌握利用常用的科学计算库对数据进行展示、分析,学会使用jupyter note…

vue从flask获取数据并显示

记录一个前后端分离遇到的问题,即vue前端从flask后端获取数据。具体描述如下:flask只负责连接数据库并获取数据库的数据,并返回给前端vue;vue则需要获取后端返回的数据并显示。 方法如下,分别用一个vue组件和一个flas…

跟着爱学习的饲养员做题记录之两个数之和,力扣1

题目要求在给定的整数数组中找到两个数的索引,使它们的和等于一个特定的目标值。 import java.util.Hashtable;/*** 开发人员: * 时间:2024/2/24*/ //两数之和 public class leecode1 {public static void main(String[] args) {int[] nums …

npm install报错,如何解决

npm install报错可能有多种原因,以下是一些常见的解决方法: 检查网络连接:确保你的网络连接正常,有时候网络不稳定会导致npm install失败。 清除npm缓存:运行命令npm cache clean --force清除npm的缓存,然…

【网站项目】488服装店销售管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【CMake】(9) 日志

message 函数被用于向用户显示信息。这个函数可以在 CMake 运行时输出各种级别的消息,包括状态消息、警告、错误等。 message 函数的语法 message([<mode>] "message to display" ...)<mode> 可选的参数,指定消息的类型。可能的值包括: STATUS: 显示…

迷你世界之建筑生成球体

local x0,y0,z00,30,0--起点坐标 local dx,dy,dz60,60,60--外切长方体横纵竖长度 local count,all0,dx*dy*dz--计数&#xff0c;总数 local m,k10000,0--单次生成方块数&#xff0c;无用循环值 local x,y,z0,0,0--当前坐标 local demath.random(2,19)/2 local id600--方块…

评估测试接口软件与网站的使用方法及优劣势比较

评估测试接口软件与网站的使用方法及优劣势比较 导言 在软件开发和测试过程中&#xff0c;对接口进行测试是至关重要的一步。测试接口的软件和网站提供了各种工具和方法&#xff0c;以便开发人员和测试人员能够有效地测试他们的应用程序接口。本文将探讨几种常见的测试接口软…

小米标准模组+MCU 快速上手开发(二)——之模组串口调试

小米标准模组+MCU 开发笔记之固件调试 背景技术名词简介● 小米IoT开发者平台● 小米IoT 模组● 固件● OTA● CRC32固件双串口调试● MHCWB6S-IB 模组资料下载● MHCWB6S-IB 模组管脚图● 上电调试背景 小米标准模组+MCU的开发过程中,由于部分官方资料较为古早,踩了很多的坑…

单片机上电后不工作,应该检查什么

当单片机上电后不工作&#xff0c;应该按照以下步骤进行检查&#xff1a; 1.电源检查。使用电压表测量单片机的电源电压是否正常&#xff0c;确保电压在规定的范围内&#xff0c;如常见的5V。 2.复位检查。检查复位引脚的电压是否正常&#xff0c;在单片机接通电源时&#xff…

中兴通讯携吉林移动迈向5G-A新阶段,完成3CC技术应用

日前&#xff0c;中兴通讯携手中国移动吉林移动分公司&#xff0c;在5G-A领域取得新突破。具体来说&#xff0c;双方基于MTK芯片M80终端&#xff0c;完成了5G-A三载波聚合试点&#xff0c;实测下行速率达到理论峰值4.25Gbps&#xff0c;相比2.6G单载波速率提升2.5倍。如此成绩&…

【JavaScript】减少 DOM 操作

文章目录 1. 了解DOM操作的性能影响2. 批量操作和缓存选择器2.1 批量操作2.2 缓存选择器 3. 使用事件委托4. 缓存计算值5. 合理使用样式操作6. 使用文档碎片和克隆节点7. 总结 在Web开发中&#xff0c;对DOM&#xff08;Document Object Model&#xff09;的频繁操作可能导致性…

C++面试题精选与解析

C面试题精选与解析 一、基础与语法 请问C中的指针和引用有什么区别&#xff1f; 指针是一个变量&#xff0c;存储的是另一个变量的内存地址。指针可以被重新赋值以指向另一个不同的对象。而引用是某个变量的别名&#xff0c;一旦引用被初始化为一个变量&#xff0c;就不能改变…

LLM权重量化

LLM权重量化 浮点表示的背景知识Nave 8位量化使用LLM.int8() 进行8位量化结论References 大型语言模型(llm)以其广泛的计算需求而闻名。通常&#xff0c;模型的大小是通过将**参数的数量(大小)乘以这些值的精度(数据类型)**来计算的。为了节省内存&#xff0c;可以通过称为量化…

cmake 项目。qt5升级 qt6 报错 error: “Qt requires a C++17 compiler 已解决

日常项目开发中。需要对qt5升级到qt6 做cmake兼容配置&#xff0c;在编译中发现&#xff0c;有c 编译环境 报错 2>C:\Qt\6.5.3\msvc2019_64\include\QtCore/qcompilerdetection.h(1226,1): fatal error C1189: #error: "Qt requires a C17 compiler, and a suitable …

了解 JavaScript 中的重放攻击和复现攻击

在网络安全领域&#xff0c;重放攻击&#xff08;Replay Attack&#xff09;和复现攻击&#xff08;Playback Attack&#xff09;是一些可能导致安全漏洞的攻击形式。这两种攻击类型涉及在通信过程中再次发送已经捕获的数据&#xff0c;以达到欺骗系统的目的。本文将介绍 JavaS…

企业微信怎么变更企业名称?

企业微信变更主体有什么作用&#xff1f;现在很多公司都用企业微信来加客户&#xff0c;有时候辛辛苦苦积累了很多客户&#xff0c;但是公司却因为各种各样的原因需要注销&#xff0c;那么就需要通过企业微信变更主体的方法&#xff0c;把企业微信绑定的公司更改为最新的。企业…

Qt Android sdk配置报错解决

使用的jdk8总是失败&#xff0c;报错command tools run以及platform sdk等问题。后来主要是设置jdk版本为17&#xff0c;就配置生效了。Android sdk路径可以选用Android Studio自带的&#xff0c;但是也要在Qt中点击“设置SDK”按钮做必要的下载更新等。 编译器这里会自动检测到…

linux中的权限

Linux 的权限 在了解Linux的权限之前&#xff0c;我们需要知道Linux的构成&#xff0c;Linux分为三个部分&#xff0c;内核、外部程序、以及用户。 内核&#xff1a; 内核一般是指Linux的操作系统&#xff0c;用来执行用户发送的指令 或者 拒绝执行用户发布指令时而发出的报…