首页 > 数据库 >Ubuntu22.10 使用命令安装 MongoDB6.0 并配置

Ubuntu22.10 使用命令安装 MongoDB6.0 并配置

时间:2023-03-14 14:45:31浏览次数:45  
标签:角色 admin Ubuntu22.10 数据库 6.0 MongoDB6.0 mongodb org 安装

 

安装 mongodb

apt-get install gnupg
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
apt-get update

# 安装最新
apt-get install -y mongodb-org

# 指定安装 6.0
apt-get install -y mongodb-org=6.0.5 mongodb-org-database=6.0.5 mongodb-org-server=6.0.5 mongodb-org-shell=6.0.5 mongodb-org-mongos=6.0.5 mongodb-org-tools=6.0.5

 

安装最新和指定安装 6.0 二选一

 

mongodb 服务管理

# 启动 mongodb 服务
sudo systemctl start mongod

# 查看 mongodb 服务是否正常启动
sudo systemctl status mongod

# 让 mongodb 随系统一起启动
sudo systemctl enable mongod

# 关闭 mongodb 服务
sudo systemctl stop mongod

# 重启 mongodb 服务
sudo systemctl restart mongod

 

配置

vi /etc/mongod.conf

# 设置绑定地址
bind_ip = 0.0.0.0

 

查看版本

1、输入 mongo 进入 MongoDB 控制台

2、使用 db.version() 命令查询 MongoDB 的版本

 

设置数据库账号

1、进入 MongoDB 命令行

# mongo
MongoDB shell version v3.6.8
connecting to: mongodb://127.0.0.1:27017
Implicit session: session { "id" : UUID("d596a2ee-9263-441c-8926-f40e4fd91cd9") }
MongoDB server version: 3.6.8
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings:
2021-08-26T10:57:28.939+0000 I CONTROL  [initandlisten]
2021-08-26T10:57:28.939+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-08-26T10:57:28.939+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-08-26T10:57:28.939+0000 I CONTROL  [initandlisten]
>

 

2、创建 admin 用户

> use admin
switched to db admin
> db.createUser({user: "admin_wcl",pwd: "xyz123456",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]})
Successfully added user: {
        "user" : "admin_wcl",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

> exit
bye

 

3、重启 MongoDB

# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   4116  3304 pts/0    Ss+  10:56   0:00 /bin/bash
root         9  0.0  0.0   2616  1636 pts/1    Ss   10:56   0:00 /bin/sh
mongodb     56  0.2  3.8 979732 76880 ?        SLl  10:57   0:03 /usr/bin/mongod --config /etc/mongodb.conf
root       175  0.0  0.1   5904  2856 pts/1    R+   11:20   0:00 ps aux
#
# kill -9 56
#
# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1   4116  3304 pts/0    Ss+  10:56   0:00 /bin/bash
root         9  0.0  0.0   2616  1636 pts/1    Ss   10:56   0:00 /bin/sh
root       176  0.0  0.1   5904  2980 pts/1    R+   11:20   0:00 ps aux
#
# service mongodb start
 * Starting database mongodb                                         [ OK ]
#

 

4、使用刚创建的账号登录

# mongo --port 27017 -u "admin_wcl" -p "xyz123456" --authenticationDatabase "admin"
MongoDB shell version v3.6.8
connecting to: mongodb://127.0.0.1:27017/
Implicit session: session { "id" : UUID("cf802538-a71b-48a6-b0c7-65e8a985de75") }
MongoDB server version: 3.6.8
Server has startup warnings:
2021-08-26T11:21:14.317+0000 I CONTROL  [initandlisten]
2021-08-26T11:21:14.317+0000 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2021-08-26T11:21:14.317+0000 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2021-08-26T11:21:14.317+0000 I CONTROL  [initandlisten]
>

 

数据库权限角色 

 

默认mongoDB 并没有用户限制,任何人都可以连接数据库

默认有 admin 、 config 、local、 test 四个数据库,show dbs 命令开始会显示前三个数据库,因为test 没有数据。

当前数据库的角色(每个数据库都有的角色)

角色 能够执行的操作
read 能读取所有非系统集合和system.js集合的数据
readWrite 能读取所有非系统集合和system.js集合的数据 或 写入
dbAdmin 提供执行管理任务的能力,例如与架构相关的任务、索引和收集统计信息。但没有用户和角色管理权限。
userAdmin 提供在当前数据库上创建和修改角色和用户的功能。由于userAdmin角色允许用户向任何用户(包括他们自己)授予任何权限,因此该角色还间接地向超级用户提供对数据库、集群及admin数据库(如果有scoped)的访问。
dbOwner 可以执行任何操作,readWrite、dbAdmin和userAdmin 权限的总和

群集管理角色 (admin数据库的角色)

admin数据库包括所有以下角色,用于管理整个系统,而不仅仅是单个数据库。这些角色包括但不限于副本集和分片集群管理功能。

角色 能够执行的操作
clusterManager 提供群集上的管理和监视操作。具有此角色的用户可以访问 config 数据库和 local 数据库,它们分别用于分片和复制。
clusterMonitor 提供对监控工具(如MongoDB Cloud Manager和Ops Manager监控代理)的只读访问。
hostManager 提供监视和管理服务器的功能。
clusterAdmin 提供最大的群集管理访问。此角色结合了clusterManager、clusterMonitor和hostManager角色授予的权限。还提供dropDatabase操作。

备份和恢复角色(admin数据库的角色)

admin数据库包括所有以下角色

角色 能够执行的操作
backup 提供备份数据所需的最低权限。此角色提供足够的权限来使用MongoDB Cloud Manage、Ops Manager 备份代理或使用mongodump备份整个mongod实例。
restore 提供从备份中还原数据所需的权限(如果数据不包括system.profile数据) 并在运行mongorestore时,可不使用--oplogReplay选项。

所有数据库的角色(admin数据库的角色)

以下角色在admin 数据库上可用,并提供适用于除local 和config之外的所有数据库的权限:

角色 能够执行的操作
readAnyDatabase 提供与在除 local 和 config之外的所有数据库上 read 相同的只读权限。该角色还提供对整个集群的listDatabases操作。
readWriteAnyDatabase 提供与在除 local 和 config之外的所有数据库上 readWrite 相同的读写权限。该角色还提供对整个集群的listDatabases操作。
dbAdminAnyDatabase 提供与在除 local 和 config之外的所有数据库上 dbAdmin 相同的权限。该角色还提供对整个集群的listDatabases操作。
userAdminAnyDatabase 提供与在除 local 和 config之外的所有数据库上 userAdmin 相同权限。

超级用户角色

以下角色可以为任何用户分配任何数据库上的任何权限,这意味着具有这些角色之一的用户可以为自己分配任何数据库上的任何权限:
admin 数据库的 dbOwner 角色
admin 数据库的 userAdmin 角色
userAdminAnyDatabase 角色
root 角色:超级权限

 

创建普通用户

> use foobar;
> db.createUser({ user:"foobarUser",pwd:"foo",roles:[{role:"readWrite",db:”foobar”}],});

 

创建用户管理员

> use admin;
> db.createUser({ user:"Useradmin",pwd:"Userpwd",roles:["userAdminAnyDatabase"],});

 

创建数据库管理员

> use admin;
> db.createUser({ user:"DbUser",pwd:"DbPwd“,roles:["readWriteAnyDatabase", "dbAdminAnyDatabase"]});

 

查询某个数据库下的用户

> db.system.users.find();

 

删除指定用户

> db.dropUser(“用户名”);

 

 

管理

官方管理工具 Compass:https://www.mongodb.com/products/compass

 

标签:角色,admin,Ubuntu22.10,数据库,6.0,MongoDB6.0,mongodb,org,安装
From: https://www.cnblogs.com/cnwcl/p/17214849.html

相关文章

  • linux 安装nodejs
    https://www.cnblogs.com/veezeng/p/11164066.htmlhttps://nodejs.org/dist/......
  • 麒麟V10安装dm8数据库
    1.操作系统银河麒麟V10[root@Kylin-V10-x86-64dm8]#mountdm8_20230104_x86_rh6_64.iso/mnt/mount:/mnt:WARNING:sourcewrite-protected,mountedread-only.[......
  • DataX 安装&体验
    第二章 安装&体验2.1官方地址下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz源码地址:https://github.com/alibaba/DataX2.2前置要求L......
  • docker安装kafka
    dockerrun-d--namezookeeper-p2181:2181-tzookeeper:latest  dockerrun-d--namekafka-p9092:9092-eKAFKA_BROKER_ID=0-eKAFKA_ZOOKEEPER_CONNEC......
  • docker安装mysql8
    拉取镜像dockerpullmysql:8.0.26 创建文件夹 mkdir-p/var/mysql/{data,conf}  配置cd/var/mysql/confvimmy.cnf  输入以下内容 ......
  • 国产机器安装wps
    首先用命令查看是下载deb包还是rpm包dpkg--versionrpm--verion然后去wps官网,下载安装包。因为是国产机,所以下载aarch64.rpm的安装命令:sudorpm-ivhwps-office-1......
  • docker安装redis
    下载镜像 dockerpullredis创建文件夹mkdir-p/var/redis/{conf,data} Ridis.conf获取 上github搜索redis,找到版本对应的配置文件,上传配置文件redis......
  • 金蝶AAS-V10安装过程问题集合
    启动指令\ApusicAS\aas\bin目录下./startserv启动(前台启动)\ApusicAS\aas\bin目录下./asadminstart-domain(后台启动)端口设置1、路径/ApusicAS/aas/domains/m......
  • 创维酷开电视安装第三方软件的方法
    用手机安装软件到智能电视。手机和智能电视在一个局域网下。我手机是WiFi,电视是网线连接。1,电视打开ADB。2,下载甲壳虫ADB助手。手机上安装。3,要安装的软件先下载到手机中。......
  • fedora上安装netease-music-xx.appimage
    极简描述版网易云音乐外表简洁,没有广告,让人想起了千千静听。自带的音乐播放器Pragha,没有歌词,私人电台。但是在Linux上编译netease-music,依赖很多,怕搞坏系统,所以安装appim......