MongoDB工具命令和用户认证

news2024/11/27 2:14:24

1.MongoDB工具命令

文章目录

  • 1.MongoDB工具命令
    • 1.1.Mongod命令
    • 1.2.Mongos命令
    • 1.3.Mongostat命令
    • 1.4.Mongotop命令
    • 1.5.Mongooplog命令
    • 1.6.Mongoperf命令
  • 2.MongoDB用户认证
    • 2.1.创建一个用户
    • 2.2.修改配置文件启用用户认证
    • 2.3.重启MongoDB
    • 2.4.使用用户口令登录MongoDB
  • 3.授权用户并赋予多个权限
    • 3.1.创建用户并制造数据
    • 3.2.使用"qing"用户登录test库进行权限验证
    • 3.3.查看test2库的权限

1.1.Mongod命令

MongoDB是MongoDB系统的主要守护进程,它处理数据请求,管理数据访问,并执行后台管理操作。启动进程指定配置文件,控制数据库行为。

1.2.Mongos命令

Mongos对于“MongoDB Shard”,是用于处理癞子应用层的MongoDB分片配置的路由服务,并确定此在分片集群的位置,以完成这些操作。从应用程序的角度来看,一个Mongos实例与任何其他的MongoDB实例行为相同。

1.3.Mongostat命令

Mongostat实现程序可以快速概览当前正在运行的MOngoD或Mongos实例的状态。Mongostat在功能上类似于UNIX/linux文件系统实用程序vmstat,但提供有关的数据Mongod和Mongos实例。

1.4.Mongotop命令

Mongotop提供了一种追踪MongoDB实现读取和写入数据的时间量的方法。MOngotop提供每个收集级别的统计信息。默认情况下,Mongotop每秒放回一次值。

1.5.Mongooplog命令

Mongooplog是一个简单的工具,可以远程服务器的复制oplog轮询操作,并将其应用于本地服务器。此功能支持某些类型的实间迁移,这些迁移要求源服务器保持联机并整个迁移过程中运行。通常,此命令将采用以下形式

Mongooplog  -from Mongodb().example.net --host mongodb1.example.net

1.6.Mongoperf命令

Mongoperf是一种独立于MongoDB检查磁盘I/O性能的实用程序。它是随机磁盘I/O的测试并呈现结果。

例如:
echo"(nTherads:16,fileSizeMB:10000,r:true,w:true)"|mongoperf
在这个操作中:
mongoperf测试直接物理随机读写IO的,使用16个并发阅读器线程。
mongoperf使用10G的测试文件。
或者参数写入文件mongoperf<config

2.MongoDB用户认证

用户相关命令

db.auth() 将用户验证到数据库。
db.changeUserPassword() 更改现有用户的密码。
db.createUser() 创建一个新用户。
db.dropUser() 删除单个用户。
db.dropAllUsers() 删除与数据库关联的所有用户。
db.getUser() 返回有关指定用户的信息。
db.getUsers() 返回有关与数据库关联的所有用户的信息。
db.grantRolesToUser() 授予用户角色及其特权。
db.removeUser() 已过时。从数据库中删除用户。
db.revokeRolesFromUser() 从用户中删除角色。
db.updateUser() 更新用户数据。

2.1.创建一个用户

> use admin
> db.createUser(
{
   user: "admin",
   pwd: "123456", 
   roles: [ { role: "root", db: "admin" } ]			//指定角色为root,表示管理员
}
)

请添加图片描述
请添加图片描述

2.2.修改配置文件启用用户认证

 [mongo_clusetr]# vim /opt/mongo_clusetr/mongodb_27017/conf/mongodb.yml
修改配置文件:
security:
 authorization:enabled

2.3.重启MongoDB

[root@localhost mongo_clusetr]# mongodb/bin/mongod -f mongodb_27017/conf/mongodb.yml --shutdown
killing process with pid: 5358

启动MongoDB
[root@localhost mongo_clusetr]# mongodb/bin/mongod -f mongodb_27017/conf/mongodb.yml
about to fork child process, waiting until server is ready for connections.
forked process: 8365
child process started successfully, parent exiting

2.4.使用用户口令登录MongoDB

[root@localhost mongo_clusetr]# mongodb/bin/mongo -uadmin -p123456

3.授权用户并赋予多个权限

mongodb可以创建多个用户并针对不同的库进行不同的操作

3.1.创建用户并制造数据

1.创建用户“qing”
> db.createUser(
... {
...  user: "qing",
... pwd: "123456",
... roles: [ { role: "readWrite", db: "test" },  //可读可写
... { role: "read", db: "test2" }   ]  	//可读
... }
... )
2.插入数据
test库
#我这边是已经提前插入好的
> db.test.find()
{ "_id" : ObjectId("636918296db9dbd5d46e98af"), "name" : "zhang", "age" : "10" }
{ "_id" : ObjectId("6369183d6db9dbd5d46e98b0"), "name" : "li", "age" : "20" }

test2
> db.test2.insert({"name":"gao","age":20})
> db.test2.insert({"name":"liu","age":20})

3.2.使用"qing"用户登录test库进行权限验证

1.登录用户qing并连接test库
[root@localhost mongo_clusetr]# mongodb/bin/mongo -uqing -p123456 192.168.40.4:27017/test

2.查看所有表
> show tables
test
test1

3.查看是否有读的权限
> db.test.find()
{ "_id" : ObjectId("636918296db9dbd5d46e98af"), "name" : "zhang", "age" : "10" }
{ "_id" : ObjectId("6369183d6db9dbd5d46e98b0"), "name" : "li", "age" : "20" }

4.查看是否有写入权限
 db.test.insert({"name":"wangwu","age":22})
WriteResult({ "nInserted" : 1 })

5.查询是否写入成功
> db.test.find({"name":"wangwu"})
{ "_id" : ObjectId("63691c0764606b8480ada848"), "name" : "wangwu", "age" : 22 }
是具有读写的权限

3.3.查看test2库的权限

由于普通用户只能登录test库因此想要切换其他库,只能是登陆test库后使用use进行切换

1.切换test2库
> use test2
switched to db test2

2.查看所在库
> db
test2

3.查看表中数据
> db.test2.find()
{ "_id" : ObjectId("63691a6560b0576a88593727"), "name" : "gao", "age" : 20 }
{ "_id" : ObjectId("63691a6c60b0576a88593728"), "name" : "liu", "age" : 20 }

4.尝试插入权限
>db.test2.insert({"name":"qiang","age":50})
WriteResult({
	"writeError" : {
		"code" : 13,
		"errmsg" : "not authorized on test2 to execute command { insert: \"test2\", ordered: true, lsid: { id: UUID(\"ee4fcdd6-7b71-4a04-af50-17e134a7addf\") }, $db: \"test2\" }"
	}
})
> db.test2.find()
{ "_id" : ObjectId("63691a6560b0576a88593727"), "name" : "gao", "age" : 20 }
{ "_id" : ObjectId("63691a6c60b0576a88593728"), "name" : "liu", "age" : 20 }
发现插入失败,只有读取权限

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

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

相关文章

【数据结构】链表OJ第二篇 —— 链表的中间节点 链表中倒数第k个节点 链表分割 链表的回文结构 相交链表

文章目录0. 前言1. 链表的中间节点2. 链表中倒数第k个结点3. 链表分割4. 链表的回文结构5. 相交链表6. 结语0. 前言 书接上回&#xff0c;我们这次依然是为大家带来链表的OJ题。这一次的题量比之前多一些&#xff0c;内容为链表的中间节点、链表中倒数第k个节点、链表分割、链…

安卓讲课笔记5.2 编辑框

文章目录零、本讲学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;继承关系图&#xff08;二&#xff09;编辑框常用属性&#xff08;三&#xff09;教学案例&#xff1a;用户注册1、创建安卓应用2、准备图片素材3、主界面与主布局资源文件更名4、创建息界面类5、字…

数据获取与预处理

文章目录Requests简介Requests库安装Requests库的基本操作Requests库的7个主要方法Request方法get方法Response对象的属性head方法post方法Requests简介 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 首先他是个第三方库&#xff0c;应用非常广泛 采用Apac…

《数据结构》(六)八大排序(下)

承接上篇的八大排序&#xff0c;今天本篇文章主要讲归并排序&#xff0c;冒泡排序&#xff0c;快速排序(挖坑&#xff0c;左右指针&#xff0c;前指针)和计数排序 八大排序交换排序冒泡排序冒泡排序思想代码冒泡排序总结快速排序快速排序思想三数取中快速排序之挖坑法挖坑法代码…

量化股票查询代码是什么?

量化股票查询代码是什么&#xff1f;接下来用一些代码来分析一下&#xff0c;如下&#xff1a; 做空95&#xff1a;HHV((HIGHLOWOPEN2*CLOSE)/5H-L,5),COLORBLUE;做空68: HHV((HIGH-LOWOPEN2*CLOSE)/5*2-L,5),COLORRED&#xff1b; 平衡点&#xff1a;LLV((HIGHLOWOPEN2*CLOSE…

狗厂员工来面试本想难为一下,问他内存溢出,结果被虐得连console.log也不敢写了

这次说到的面试题是关于node服务端内存溢出的问题&#xff0c;狗厂员工来面试本想难为一下&#xff0c;现在我连console.log也不敢写了 关于这道node内存溢出的问题&#xff0c;大哥从以下几个方面讲的&#xff0c;讲完我觉得自己得到了升华&#xff0c;现在搞得连代码也快不敢…

AI人脸检测/安全帽检测智能分析网关告警消息配置——微信告警消息配置

AI智能分析网关内置多种深度学习算法&#xff0c;可支持对接入的多路视频流进行智能检测、智能识别等&#xff0c;包括人脸检测与识别、车辆检测与识别、车牌识别、烟火识别、安全帽识别、区域入侵检测等。将智能分析网关与EasyCVR视频融合平台联合使用&#xff0c;可实现智能告…

Linux命令从入门到实战 ---- 用户管理命令

文章目录useradd添加新用户passwd设置用户密码id查看用户是否存在查看创建了哪些用户su切换用户userdel删除用户who查看登录用户信息sudo设置普通用户具有root权限用户组groupadd 新增用户组usermod修改用户groupdel删除用户组groupmod修改用户组总结useradd添加新用户 将usera…

安卓学习笔记5.3 按钮、图像视图与图像按钮

文章目录零、本讲学习目标一、导入新课二、新课讲解&#xff08;一&#xff09;按钮控件1、继承关系图2、常用属性&#xff08;二&#xff09;图像视图1、继承关系图2、常用属性&#xff08;三&#xff09;图像按钮1、继承关系图2、常用属性&#xff08;四&#xff09;教学案例…

vue无需改动代码的SEO【百度爬取】优化--puppeteer(详细流程)

vue无需改动代码的SEO优化–puppeteer&#xff08;详细流程&#xff09; 目录vue无需改动代码的SEO优化--puppeteer&#xff08;详细流程&#xff09;一级目录二级目录三级目录一、安装puppeteer&#xff1a;npm install puppeteer --save安装依赖二、编写puppeteer服务js文件p…

DDD领域驱动设计基础

什么领域驱动模型 领域驱动模型一种设计思想&#xff0c;我们又称为DDD设计思想。是一种为了解决传统设计思想带来的维护困难&#xff0c;沟通困难和交互困难而产生的一种新的思想。 架构模式的演进 单体架构 采用面向对象的设计方法&#xff0c;系统包括业务接入层、业务逻…

Eclipse切JRE环境后如何恢复- Unrecognized option: --enable-preview

场景 使用switch 新特性 配合 lambda 练习小案例 // 需求&#xff1a; 1 2 3 -> 一、二、 三 int num 1; switch ( num) {// jdk13 可以缺省 break 并且 单语句可以省略 花括号 case 1 -> { System.out.println("一"); }case 2 -> System.out.p…

[附源码]计算机毕业设计JAVAjsp宠物店管理系统

[附源码]计算机毕业设计JAVAjsp宠物店管理系统 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybat…

Mybatis-Plus知识点[MyBatis+MyBatis-Plus的基础运用]

目录 前言 一、了解Mybatis-Plus 1.简介 2.Mybatis-Plus具有的特性 3.支持数据库 4.框架结构 5.官网链接 二、快速开始 2.1.创建数据库以及表 2.2.创建工程 2.3 MybatisMybatis-Plus的使用 2.3.1创建一个itcast-mybatis-plus-simple的maven项目 2.3.2写UserMapper接口 2.3.3写U…

北京化工大学数据结构2022/11/3作业 题解

目录 问题 A: 二叉树非递归前序遍历-附加代码模式 问题 B: 二叉树非递归中序遍历-附加代码模式 问题 C: 二叉树非递归后序遍历-附加代码模式 问题 D: 求二叉树中序遍历序根节点的下标 问题 E: 根据前序中序还原二叉树 问题 F: 算法6-12&#xff1a;自底向上的赫夫曼编码 …

ServletConfig和ServletContext接口

一、ServletConfig接口详解 1、简介 Servlet 容器初始化 Servlet 时&#xff0c;会为这个 Servlet 创建一个 ServletConfig 对象&#xff0c;并将 ServletConfig 对象作为参数传递给 Servlet 。通过 ServletConfig 对象即可获得当前 Servlet 的初始化参数信息。一个 Web 应用中…

微电网优化调度(风、光、储能、柴油机)(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️❤️&#x1f4a5;&#x1f4a5;&#x1f4a5; ​ &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻…

【Linux命令】文件和目录权限

【Linux命令】文件和目录权限 权限查看 众所周知&#xff0c;可以使用 ls -l 来查看文件和目录的详细信息&#xff0c;那么输出的东西是什么呢&#xff1f; 我们先来看 文件类型&#xff1a; -&#xff1a;普通文件&#xff1b;d&#xff1a;目录文件&#xff1b;b&#xff…

网络协议:TCP三次握手与四次挥手

本篇内容包括&#xff1a;TCP/IP 传输协议&#xff08;TCP/IP 传输协议简介&#xff0c;IP 协议&#xff0c;UDP 协议&#xff0c;TCP 协议介绍&#xff09;&#xff0c;TCP 的三次握手、TCP 的四次挥手 以及 TCP 协议是怎么保证有效传输等内容。 一、TCP/IP 传输协议 1、TCP/…

【仿牛客网笔记】 Redis,一站式高性能存储方案——Redis入门

Redis可以开发对性能要求较高的功能。还可以利用Redis重构我们现有的功能。 NoSQL关系型数据库之外的统称。 快照有称为RDB 以快照的形式 不适合实时的去做&#xff0c;适合一段时间做一次。 日志又称AOF 以日志的形式每执行一次就存入到硬盘中&#xff0c;可以做到实时的存储以…