安装 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