【mongoDB】mongodb权限验证 || mongodb重启 || mongodb常用命令

news2025/4/5 18:17:51

mongodb版本号

6.0


前言

  • mongoDB刚开始无需密码登录
  • mongoDB有3默认数据库,分别为:
    1. admin 超级用户,能对所有数据库操作,执行管理员命令
    2. config 分片集群配置的数据库
    3. local 分片集群锁信息的集合
    4. test 这个数据库一般是隐式创建的,没有显示出来。若你进入到数据库,默认进入test数据库,若你没有指定数据库,直接添加数据db.insert({name:'123'}),会添加到test数据库
      在这里插入图片描述

角色介绍

一、角色参考

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

二、角色作用

名称作用注意备注
read只读不可对数据库进行操作,只能查询数据
readWrite读写可对数据库查询、修改、删除、添加等操作
dbAdmin数据库管理可对数据库执行管理函数,如创建索引
userAdmin管理数据库用户可创建、删除和管理用户
clusterAdmin赋予用户所有分片和复制集相关函数的管理权限仅admin数据库中可用
readAnyDatabase赋予用户所有数据库的读权限仅admin数据库中可用
readWriteAnyDatabase赋予用户所有数据库的读写权限仅admin数据库中可用
userAdminAnyDatabase赋予用户所有数据库的userAdmin权限仅admin数据库中可用
dbAdminAnyDatabase赋予用户所有数据库的dbAdmin权限仅admin数据库中可用
dbAdminAnyDatabase赋予用户所有数据库的dbAdmin权限仅admin数据库中可用
root超级账号,超级权限别的角色管不到的我要管、管到的我也要管仅admin数据库中可用

创建角色

  • use dbName 进入名为dbName的数据库
    • dbName 数据库名称

  • db.createUser({ user,pwd,roles:[{role,db}] }) 创建用户

    • user 用户名
    • pwd 密码
    • roles
      • role 分配的角色
      • db 管理的数据库

1. 开始创建角色

  1. 进入admin数据库
  2. 在admin数据库创建一个超级用户
  3. 其它数据库只可读
use admin
db.createUser(
    {
        user: "root",
        pwd: "123456",
        roles: [
        { role: "root", db: "admin" },
		'read'
		]
    }
)

2. 创建完角色后修改配置(开启权限验证)

开启验证-官方参考

  • 备用地址 https://www.mongodb.com/docs/manual/tutorial/configure-scram-client-authentication/#procedure

  • 记事本打开: mongodb安装目录 > bin > mongod.cfg
    在这里插入图片描述
    找到 #security: 修改为↓
    (注意:第二行空格不要删除,复制粘贴即可)

security:
    authorization: enabled

重启mongodb服务

修改后最好重启下mongodb服务↓↓↓↓↓↓
mongodb服重启传送门
mongodb服重启传送门
mongodb服重启传送门
mongodb服重启传送门


3. 使用命令登录角色

  • mongosh --port 端口号 --authenticationDatabase “数据库” -u “角色用户名” -p “角色密码”

参考↓↓↓↓↓↓↓↓↓↓↓↓

mongosh --port 27017  --authenticationDatabase  "admin" -u "root" -p "123456"

3. 使用第三方工具连接数据库

mongodb://root:123456@127.0.0.1:27017/admin

例如使用compa工具参考图
在这里插入图片描述


查看创建的用户

  • 3种方式

1 ↓↓↓↓↓↓↓↓↓↓↓

show users  

2 ↓↓↓↓↓↓↓↓↓↓↓

db.system.users.find() 

3 ↓↓↓↓↓↓↓↓↓↓↓

db.runCommand({usersInfo:"userName"})

修改角色密码

db.changeUserPassword("角色用户名", "修改的密码")

修改密码和用户信息

db.runCommand(
    {
        updateUser:"角色用户名",
        pwd:"输入修改的密码",
        customData:{title:"xxx"}
    }
)

删除角色

db.dropUser('角色名称')

切换角色

db.auth('角色名称','角色密码')

问题 || mongodb重启

  • 创建完角色最好重启下mongoDB服务
  • 不重启有时会出问题,比如已创建的角色无法使用某些命令

  • net stop mongodb 停止mongodb服务
  • net start mongodb 开启mongodb服务

net stop mongodb
net start mongodb

mongodb常用命令

命令作用备注
show dbs查看数据库
show collections显示当前数据库中的集合
show users显示用户
use dbName使用名为dbName的数据库dbName:数据库名 。空数据库不显示
db.getName()获取当前数据库的名称
db.help()mongodb帮助
show tabless查看当前数据库的表
db.users.insert({name:‘1’})往名为users的集合插入数据{name:'1'}users > 集合名称
db.users.find()查询users集合的数据users > 集合名称
db.users.drop()删除users集合users > 集合名称
db.dropDatabases()删除当前使用的数据库有权限才能删
db.help()mongodb帮助
db.help()mongodb帮助
$gt大于 >
$lt小于 <
$gte大于等于 >=
$lte小于等于 <=
$ne不等于 noe equals
$in存在于
$nin不存在于
$exists是否存在

db.collection.find({age:{$gt:18}}) //查看collection表中年龄大于不包含18岁的数据
db.collection.find({field:{$in:array}})   
db.collection.find({field:{$nin:array}})  
db.collection.find({title:{$exists:true}})//如果记录中有包含title属性的全部返回
db.collection.find({title:{$exists:false}})//如果记录中有包含title属性的全部不返回,不包含title属性的全部返回

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

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

相关文章

新书出版了(文末送书)

大家好&#xff0c;我是麦哥。 最近一位好友的新书出版了&#xff0c;由衷的替他开心&#xff0c;赶紧来支持一波。 新书长这样 这本书的作者是前中兴高级工程师&#xff0c;某知名培训机构的教学总监&#xff0c;现于某研究所担任重要的研发工作&#xff0c;我喜欢叫他彭老师。…

路径规划算法:基于蚁狮优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于蚁狮优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于蚁狮优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法蚁狮…

路径规划算法:基于蝗虫优化的路径规划算法- 附代码

路径规划算法&#xff1a;基于蝗虫优化的路径规划算法- 附代码 文章目录 路径规划算法&#xff1a;基于蝗虫优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要&#xff1a;本文主要介绍利用智能优化算法蝗虫…

Python爬虫之美丽的汤——BeautifulSoup

本文概要 本篇文章主要介绍利用Python爬虫之美丽的汤——BeautifulSoup&#xff0c;适合练习爬虫基础同学&#xff0c;文中描述和代码示例很详细&#xff0c;干货满满&#xff0c;感兴趣的小伙伴快来一起学习吧&#xff01; 是不是以为今天要教大家怎么做饭&#xff1f;确实&…

MATLAB图像处理:图像分割、特征提取和目标识别的应用和优化

MATLAB图像处理&#xff1a;图像分割、特征提取和目标识别的应用和优化 作为一种常用的图像处理工具&#xff0c;MATLAB在图像分割、特征提取和目标识别等方面具有广泛的应用。本文将详细介绍这三个方面的应用和优化。 第一章&#xff1a;图像分割 图像分割是将一幅图像划分成…

阿里云服务器安装宝塔面板教程图解(超详细)

使用阿里云服务器安装宝塔面板教程&#xff0c;阿里云服务器网以CentOS操作系统为例&#xff0c;安装宝塔Linux面板&#xff0c;先远程连接到云服务器&#xff0c;然后执行宝塔面板安装命令&#xff0c;系统会自动安装宝塔面板&#xff0c;安装完成后会返回面板地址、账号和密码…

Django如何把SQLite数据库转换为Mysql数据库

大部分新手刚学Django开发的时候默认用的都是SQLite数据库&#xff0c;上线部署的时候&#xff0c;大多用的却是Mysql。那么我们应该如何把数据库从SQLite迁移转换成Mysql呢&#xff1f; 之前我们默认使用的是SQLite数据库&#xff0c;我们开发完成之后&#xff0c;里面有许多数…

『python爬虫』20. 用协程爬取一本小说(保姆级图文)

目录 1. 分析目标网站1.1 寻找所有章节信息1.2 寻找章节内容 2. 爬虫思路获取得到的信息首先要同步协程获取所有章节标题和cid写入异步任务然后根据章节标题和cid获取章节内容 3. 完整实现代码总结 欢迎关注 『python爬虫』 专栏&#xff0c;持续更新中 欢迎关注 『python爬虫』…

linux命令文本命令之~~~ sort ~~ tr ~~cut ~~ uniq ~~split~~~paste~~eval

目录 一. sort命令二. uniq 命令三. tr命令四. cut命令五 . split六. paste 合并文件内容的列七. eval命令 一. sort命令 以行为单位对文件内容进行排序&#xff0c;也将他根据不同的数据类型来排序 比较原则是从首字符向后&#xff0c;依次按ASCII码进行比较&#xff0c;最后…

龟兔赛跑,环形链表解题思路:用兔子的速度,龟的智慧,和链表的结构,解决力扣难题

本篇博客会讲解力扣“141. 环形链表”的解题思路&#xff0c;这是题目链接。 审题 先来审题&#xff1a; 以下是输出示例&#xff1a; 以下是提示&#xff1a; 以下是进阶&#xff1a; 思路 本题有一种非常巧妙的解法&#xff1a;快慢指针法&#xff0c;又称龟兔赛跑法…

SpringBoot——默认页面在哪里?

简单介绍&#xff1a; 在之前我们创建了一个SpringBoot的应用程序&#xff0c;并且我们也启动了&#xff0c;但是我们都是在postman或者是在控制台看到了我们的界面&#xff0c;那么在浏览器中看到的界面其实只有一个&#xff1a; 这个界面其实就是SpringBoot的报错默认界面&a…

buuctf8

目录 crypto 摩丝 password 变异凯撒 Quoted-printable Rabbit web [护网杯 2018]easy_tornado [HCTF 2018]admin misc 被劫持的神秘礼物​编辑 crypto 摩丝 下载文件&#xff0c;得到一串摩斯密码 在线解码 password 下载文件 张三英文zs&#xff0c;加上生日&a…

opencv_contrib模块编译与安装

前言 由于opencv_contrib模块的安装依赖于opencv基础模块&#xff0c;所以看该教程前请先看一遍OpenCV基础模块安装教程 下载 下载 opencv_contrib模块&#xff08;需要与opencv基础模块版本号4.6.0相同&#xff0c;国内可以在gitcode下载&#xff09; 配置、编译、安装 打…

网工视角看基础网络,原来这么与众不同

大家好&#xff0c;我是老杨。 前两天去华为生态大会刚回来&#xff0c;颇为感慨。 感慨万物互联的世界越来越大&#xff0c;网络渗透度也越来越极致化。 网络很大&#xff0c;非常大&#xff0c;但在网工眼里&#xff0c;网络复杂又美妙&#xff0c;有着外行人难以理解的魅…

大数据Doris(十九):Doris索引介绍与前缀索引

文章目录 Doris索引介绍与前缀索引 一、Doris索引介绍 二、前缀索引 Doris索引介绍与前缀索引 一、Doris索引介绍 索引用于帮助快速过滤或查找数据。目前 Doris 主要支持两类索引: 内建的智能索引,包括前缀索引和 ZoneMap

【Prompting】ChatGPT Prompt Engineering开发指南(2)

ChatGPT Prompt Engineering开发指南2 从产品概况表生成营销产品描述问题1&#xff1a;文本太长问题2: 文本聚焦于错误的细节问题3&#xff1a;描述需要一个尺寸表 加载Python库查看HTML内容来源 在本教程中&#xff0c;学习迭代分析并完善给出的提示&#xff0c;以从结果概况表…

20230514 Google宣布引入生成式人工智能搜索引擎

&#x1f680; Google宣布引入生成式人工智能搜索引擎&#xff0c;可能是最大变化之一。 Google宣布引入生成式人工智能搜索引擎&#xff0c;可能是最大变化之一。 新搜索将使用人工智能模型整合互联网信息&#xff0c;更好地响应用户需求。然而&#xff0c;网络出版商担心这…

python+vue流浪动物公益科普宠物在线领养网站

使用动物在线领养网站的用户分管理员和用户两个角色的权限子模块。 开发语言&#xff1a;Python 框架&#xff1a;django/flask Python版本&#xff1a;python3.7.7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm 系统所要实现的功…

接口自动化测试之request模块讲解,以及初步接口自动化测试框架封装(统一请求)

一、有接口测试工具的情况下&#xff0c;为什么要做接口自动化&#xff1f; 1.敏捷开发&#xff0c;接口一般数量很大&#xff0c;团队实现接测试&#xff0c;版本控制。 2.功能太死板&#xff0c;有些接口完全无法实现&#xff08;复杂的加密接口&#xff0c;签名接口等) 3.接…

【STL十九】算法——修改序列的操作(copy、move、remove、transform、replace)

算法——不修改序列的操作&#xff08;copy、move、transform、remove、replace&#xff09; 一、分类二、修改序列的操作三、copy四、move五、remove、remove_if六、fill、transform、replace、replace_if、reverse 一、分类 根据网站https://www.apiref.com/cpp-zh/cpp/head…