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

这篇具有很好参考价值的文章主要介绍了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('用户名','密码')

MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全

创建普通用户

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

# 选择需要创建用户的数据库
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

MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全

查询用户

查询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 管理

索引管理

性能排查

实时性能监控

MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
连接Atlas免费MongoDB云数据库:输入连接: mongodb+srv://账户:密码@cluster0.ruiuw.mongodb.net/myFirstDatabase
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
测试

添加数据库:demo

添加集合:user

添加一条数据

选择集合user即能看到MongoDB Compass提供的功能,如:Documents,Aggregations,Schema…
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全

Studio 3T

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

Studio 3T官网: https://studio3t.com/download/#windows
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
双击运行,直接安装
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
创建一个连接,同时填写连接信息。
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
选择配置好的一个连接
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全
连接成功
MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用,数据库,mongodb,数据库,安全文章来源地址https://www.toymoban.com/news/detail-730538.html

到了这里,关于MongoDB之用户与权限管理、备份与恢复管理以及客户端工具的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux/ubuntu系统管理(8)ubuntu启动模式介绍以及如何进入单用户模式和恢复模式

    Ubuntu操作系统提供了多种启动模式,每种模式都有不同的用途和功能。下面将深入介绍Ubuntu的几种启动模式: 正常启动模式(Normal boot) :这是默认的启动模式,也是大多数用户使用的模式。在正常启动模式下,系统会按照正常的流程启动,加载所有必要的服务和驱动程序,

    2024年01月25日
    浏览(47)
  • UniApp开发安卓以及H5实现页面级权限管理,避免用户浏览器直接输入url访问页面

    前言:uni-app如何像vue-router中的beforeEach一样实现跳转拦截功能呢? 为此uniapp官方提供了专门的API方法 uni.addInterceptor 举个栗子 我们发现底部有四个菜单分别是:首页、分类、购物车、我的;按常理来说首页和分类是不需要登陆就能查看的。另外两个则需要先登陆才能查看没登

    2024年01月16日
    浏览(66)
  • Mysql的备份以及恢复

    在数据库保存数据时,有时候不可避免会出现数据丢失或者被破坏,这样情况下,我们必须保证数据的安全性和完整性,就需要使用日志来查看或者恢复数据了 数据库中数据丢失或被破坏可能原因: 1、误删除数据库 2、数据库工作时、意外程序终止、程序崩溃 3、病毒的入侵

    2024年01月25日
    浏览(42)
  • 如何在 Windows 中备份和恢复文件、文件夹或驱动器的权限

    在 NTFS 和 ReFS 卷上,可以设置文件和文件夹的安全权限。这些权限授予或拒绝访问文件和文件夹。 电脑上的每个容器(例如:文件夹)和对象(例如:文件)都附有一组访问控制信息。这些信息被称为安全描述符,控制用户和组允许的访问类型。安全描述符将与创建的容器或

    2024年02月12日
    浏览(49)
  • postgresql|数据库|角色(用户)管理工作---授权和去权以及usage和select两种权限的区别

    postgresql做为一个比较复杂的关系型的重型数据库,不管是安装部署,还是后期的运行维护,都还是有比较多的细节问题需要引起关注。 例如,用户权限的合理分配,那么,什么是权限的合理分配呢? 自然是权限的最小化原则,也就是说每个用户能够完成其权限范围内的工作

    2024年02月13日
    浏览(48)
  • 云备份客户端——客户端整体设计框架以及实用类工具实现

    客户端要实现的功能和服务端相比相对简单,客户端要实现的功能是 自动对指定文件中的文件进行备份,也就是定时对指定文件进行扫描,根据文件信息判断文件,符合要求(新文件或者被修改过的文件)进行上传 因此我们客户端大概需要实现下面三个模块 数据管理模块:

    2024年02月09日
    浏览(55)
  • Docker 安装 MongoDB开启认证,创建只读用户权限。

    docker run -itd --name mongo -p 27017:27017 mongo --auth --auth 就是开启mongodb权限认证。如果不加 --auth 则是无权限认证,连接成功后任何用户都可以对数据库进行读写操作。 docker run -itd  --name mongo -p 27017:27017 mongo --auth   docker exec -it mongo mongo admin   db.createUser({ user:\\\'admin\\\',pwd:\\\'123456\\\',roles:[

    2024年02月17日
    浏览(61)
  • Mysql日志管理与备份恢复

    Mysql的日志默认保存位置为/usr/local/mysql/date,Mysql的日志配置文件为/etc/my.cnf,里面有一个【mysqld】项。 1.1 错误日志 用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启 1.2 通用查询日志 用来记录MySQL的所有连接和语句,默认是关闭的 1.3 二进制日志 用来记录所有

    2024年02月04日
    浏览(59)
  • Mysql日志管理、备份与恢复

    Mysql的日志默认保存位置为/usr/local/mysql/date,Mysql的日志配置文件为/etc/my.cnf,里面有一个【mysqld】项 错误日志 用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启 通用查询日志 用来记录MySQL的所有连接和语句,默认是关闭的 二进制日志 用来记录所有更新了数据

    2024年02月04日
    浏览(51)
  • MySQL日志管理 备份和恢复

    备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。 而备份、恢复中,日志起到了很重要的作用 #######前言:日志⭐⭐ MySQL 的日志默认保存位置为 /usr/local/mysql/data ##配置文件 vim /etc/my.cnf [mysqld] ##错误日志,用来记录当MySQL启动、停止

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包