ubuntu20 使用命令安裝 mongodb


 

安裝 mongodb

sudo apt-get install mongodb -y

 

mongodb 服務管理

# 啟動 mongodb 服務
service mongodb start

# 關閉 mongodb 服務
service mongodb stop

# 重啟 mongodb 服務
service mongodb restart

 

配置

vi /etc/mongodb.conf

# 設置綁定地址
bind_ip = 0.0.0.0

 

設置數據庫賬號

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM