Mongo DB之用户与权限管理、备份与恢复管理以及客户端工具的使用

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB是一款灵活且高性能的文档型数据库,具有可扩展性和强大的查询功能,适用于各种应用场景。

用户、权限管理

MongoDB默认不使用权限认证方式启动,但是需要设置权限以保证数据安全。

内置角色

1. 数据库用户角色:read、readWrite 

2. 数据库管理角色:dbAdmin、dbOwner、userAdmin

3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager

4. 备份恢复角色:backup、restore

5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

6. 超级用户角色:root     

创建超级管理员

MongoDB是没有默认管理员账号,所以要先添加管理员账号,并且MongoDB服务器需要在运行的时候开启验证模式

用户只能在用户所在数据库登录(创建用户的数据库),包括管理员账号

管理员可以管理所有数据库,但是不能直接管理其他数据库,要先认证后才可以

语法格式:

mongo>db.createUser(
{
   
    user: "<name>",
  pwd: "<cleartext password>",
  customData: {
   
    <any information> },
  roles: [
    {
   
    role: "<role>", db: "<database>" } | "<role>",
    ...
  ]}
)

创建root用户,角色为root

# 进入mongo shell
mongod

# 使用admin数据库(超级管理员账号必须创建在该数据库上)
use admin 

# 创建超级用户
db.createUser( {
   
    "user":"root", "pwd":"123456", "roles":["root"] } )

# 账号登录
use admin
# 认证成功会返回1,失败返回0
db.auth('用户名','密码')

image.png

创建普通用户

在使用的数据库上创建普通用户

# 选择需要创建用户的数据库
use demo

#  db: 设置访问数据库
#  role:设置访问数据库权限:read, write, readWrite
db.createUser( {
   
   "user": "db01", "pwd": "123456", "roles": [{
   
   "db": "demo", "role": "read"}]} )

db.createUser( {
   
   "user": "db02", "pwd": "123456", "roles": [{
   
   "db": "demo", "role": "readWrite"}]} )

认证登录

若需要连接Mongodb进行认证登录,则需要打开Mongodb的认证开关

编辑D:\program files\mongodb\Server\4.4\bin\monogod.cfg然后找到 #security:去掉#号,开启安全认证。该mongodb.cfg文件是 yaml 文件格式,缩进应该使用空格进行缩进。

monogod.cfg配置文件可以是yaml格式也可以是键值对格式。

A.键值对
        在mono.conf中设置 auth=true

B.yaml格式
        #security:
            security:
              authorization: enabled

重启Mongodb

C:\WINDOWS\system32>net stop mongodb
MongoDB Server (MongoDB) 服务正在停止.
MongoDB Server (MongoDB) 服务已成功停止。


C:\WINDOWS\system32>net start mongodb
MongoDB Server (MongoDB) 服务正在启动 .
MongoDB Server (MongoDB) 服务已经启动成功。

使用账号和密码连接数据库

mongo.exe ‐u root ‐p root‐‐authenticationDatabase admin

image.png

查询用户

查询admin库下所有用户:

use admin

show users

修改用户

语法格式:

db.updateUser(
  "<username>",
  {
   
   
    customData : {
   
    <any information> },
    roles : [
              {
   
    role: "<role>", db: "<database>" } | "<role>",
              ...
            ],
    pwd: "<cleartext password>"
    },
    writeConcern: {
   
    <write concern> })

创建test用户:

db.createUser(
     {
   
   
       user:"test",
       pwd:"test",
       roles:[{
   
   role:"root",db:"admin"}]
     }
  )

修改test用户的角色为readWriteAnyDatabase

use admin
db.updateUser("test",{
   
   roles:[{
   
   role:"readWriteAnyDatabase",db:"admin"}]})

修改密码

语法格式:

db.changeUserPassword("username","newPasswd")

修改 test用户的密码为123

se admin 
db.changeUserPassword("test","123")

删除用户

# 进入账号数据所在的数据库
use admin

db.dropUser('用户名')

备份与恢复

MongoDB备份与恢复可以通过mongodump和mongorestore命令行工具来完成。

注意:一定要退出mongo环境,然后执行操作。

备份

mongodump -h dbhost -d dbname -o dbdirectory

mongodump -h 127.0.0.1 -d demo -o /backup

# 备份所有数据
mongodump

恢复

mongorestore -h dbhost -d dbname --dir dbdirectory

mongorestore -h 127.0.0.1 -d demo --dir /backup

定时备份

使用crontab 定义执行脚本备份数据库

打开当前用户的crontab文件

crontab -e

在打开文件中添加定时任务

# mysql 定时备份脚本
mysqldump -u用户名 -p密码 dbname | gzip > /backup/$(date +%Y%m%d_%H%M%S).sql.gz

# mongodump命令进行备份  gzip压缩输出重定向到以当前时间为名的压缩文件中
mongodump -h dbhost -d dbname -o dbdirectory | gzip > /backup/$(date +%Y%m%d_%H%M%S).sql.gz

MongoDB操作工具

mongo shell

使用MongoDB自带命令行工具 mongo,进入MongoDB shell中操作

mongo [--host IP地址] [--port 端口]
root@d8110bf377a7:/# mongo
MongoDB shell version v5.0.5
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session {
   
    "id" : UUID("a703ae81-c58c-4021-9f18-e10a1270d0bc") }
MongoDB server version: 5.0.5
================
Warning: the "mongo" shell has been superseded by "mongosh",
which delivers improved usability and compatibility.The "mongo" shell has been deprecated and will be removed in
an upcoming release.
For installation instructions, see
https://docs.mongodb.com/mongodb-shell/install/
================
> show dbs;
admin   0.001GB
config  0.000GB
demo    0.000GB
local   0.000GB
>

MongoDB Compass

官网地址: https://www.mongodb.com/try/download/tools

MongoDB Compass是官方提供的免费 GUI 管理工具,包含如下功能

数据管理(增删改查)

Schema 管理

索引管理

性能排查

实时性能监控

image.png

连接Atlas免费MongoDB云数据库:输入连接: mongodb+srv://账户:密码@cluster0.ruiuw.mongodb.net/myFirstDatabase
image.png

测试

添加数据库:demo

添加集合:user

添加一条数据

选择集合user即能看到MongoDB Compass提供的功能,如:Documents,Aggregations,Schema.....
image.png

Studio 3T

Studio 3T是mongodb优秀的客户端工具。

Studio 3T官网: https://studio3t.com/download/#windows
image.png

双击运行,直接安装
image.png

创建一个连接,同时填写连接信息。
image.png

选择配置好的一个连接
image.png

连接成功
image.png

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
6天前
|
SQL NoSQL 数据可视化
你的mongodb客户端是哪个呢?
MongoDB 是一种流行的文档数据库,支持多种应用场景。常用的客户端管理工具包括: 1. **MongoDB Shell**:现代命令行界面,提供语法高亮、自动完成等功能。 2. **MongoDB Compass**:图形化界面,支持可视化查询、聚合框架、多平台运行和实时性能监控。 3. **Studio 3T**:企业级工具,支持SQL查询、代码生成、数据导入导出和高级安全功能。
38 14
|
4月前
|
NoSQL MongoDB 数据库
MongoDB备份与恢复总结
MongoDB备份与恢复总结
171 0
|
2月前
|
NoSQL MongoDB 数据库
|
4月前
|
NoSQL 网络安全 MongoDB
MongoDB 备份与恢复
MongoDB 中的数据备份和恢复主要依赖于 `mongodump` 和 `mongorestore` 两个命令。`mongodump` 用于备份数据,它可以将数据导出为 BSON 格式的文件,支持多种部署类型,包括独立运行部署、副本集、分片集群等。通过指定不同的参数,如 `--uri`、`--host`、`--port` 等,可以连接到不同的 MongoDB 实例。备份时还可以指定要备份的数据库、集合等。
53 1
|
6月前
|
NoSQL Linux MongoDB
MongoDB提供的这些工具
【6月更文挑战第8天】MongoDB提供的这些工具
132 6
|
7月前
|
存储 NoSQL 安全
【MongoDB 专栏】MongoDB 的备份与恢复策略
【5月更文挑战第11天】MongoDB的备份与恢复至关重要,确保数据安全、完整和可用。数据库提供文件级和逻辑备份,前者简单直接但可能需短暂停机,后者灵活可选特定数据。备份策略要考虑频率和存储位置,恢复时要验证数据完整性,选择合适恢复点。增量和差异备份可提升效率,监控管理备份是必要环节。案例显示,有效策略能降低意外损失。随着技术发展,应持续优化策略,强化人员培训,以责任和使命对待备份恢复,保障企业数据环境的安全稳定。
107 1
【MongoDB 专栏】MongoDB 的备份与恢复策略
|
6月前
|
NoSQL 数据可视化 关系型数据库
MongoDB提供的这些工具
【6月更文挑战第8天】MongoDB提供的这些工具
61 3
|
6月前
|
NoSQL 数据可视化 前端开发
MongoDB可视化工具Robo 3T的下载、安装与使用介绍
【6月更文挑战第3天】该文介绍了如何下载和安装MongoDB的图形化工具Robo 3T。首先,建议在开始之前安装MongoDB。然后,访问Robo 3T官网下载安装包,接受条款并选择适合的操作系统版本(此处以Windows 64位为例)。下载后,运行安装程序,依次点击&quot;Next&quot;,选择安装路径,等待安装完成。安装后,启动Robo 3T,同意用户协议,免费激活并登录或注册账号。最后,按照提示完成配置步骤。
520 1
|
5月前
|
NoSQL MongoDB 数据库
MongoDB的GUI工具——Robo 3T连接远程数据库MongoDB
MongoDB的GUI工具——Robo 3T连接远程数据库MongoDB
395 0
|
6月前
|
NoSQL 测试技术 MongoDB
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧
MongoDB数据库管理:全面掌握mongodump和mongorestore的备份与恢复技巧
222 0