溫馨提示×

MongoDB在Debian上的權限配置指南

小樊
37
2025-10-17 04:40:49
欄目: 云計算

MongoDB在Debian上的權限配置指南

1. 安裝MongoDB

首先確保Debian系統已更新,然后通過官方倉庫安裝MongoDB(以Debian 11 Bullseye為例):

sudo apt update && sudo apt upgrade -y
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
echo "deb [arch=amd64,arm64] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update
sudo apt install -y mongodb-org

啟動MongoDB服務并設置開機自啟:

sudo systemctl start mongod
sudo systemctl enable mongod

2. 啟用身份驗證

編輯MongoDB配置文件/etc/mongod.conf,在security部分添加或修改以下內容以啟用認證:

security:
  authorization: enabled

保存文件后重啟MongoDB服務使配置生效:

sudo systemctl restart mongod

3. 創建管理員用戶

連接MongoDB shell(默認本地連接無需密碼):

mongo

切換到admin數據庫(管理員用戶需在admin庫中創建),創建具有root角色的管理員用戶(root角色擁有所有權限):

use admin
db.createUser({
  user: "admin",
  pwd: "yourStrongPassword", // 替換為強密碼
  roles: [{ role: "root", db: "admin" }]
})

退出shell:

exit

4. 創建數據庫用戶并分配權限

4.1 選擇目標數據庫

假設要為用戶appUser創建myApp數據庫的讀寫權限:

mongo -u admin -p yourStrongPassword --authenticationDatabase admin
use myApp

4.2 創建用戶并分配角色

根據需求選擇合適的內置角色(常見角色說明見下文),例如創建讀寫權限用戶:

db.createUser({
  user: "appUser",
  pwd: "appUserPassword",
  roles: [{ role: "readWrite", db: "myApp" }] // 讀寫權限
})

或創建僅讀權限用戶:

db.createUser({
  user: "readOnlyUser",
  pwd: "readOnlyPassword",
  roles: [{ role: "read", db: "myApp" }] // 只讀權限
})

內置角色說明

  • 數據庫用戶角色read(只讀,排除系統集合)、readWrite(讀寫,排除系統集合);
  • 數據庫管理角色dbAdmin(數據庫管理,如索引創建)、userAdmin(用戶管理)、dbOwner(所有權限,包含readWrite+dbAdmin+userAdmin);
  • 集群管理角色clusterAdmin(集群最高權限)、clusterManager(集群管理與監控);
  • 備份還原角色backup(備份數據)、restore(還原數據);
  • 所有數據庫角色readAnyDatabase(所有數據庫只讀)、readWriteAnyDatabase(所有數據庫讀寫);
  • 超級權限角色root(所有權限,僅在admin庫創建)。

5. 驗證用戶權限

5.1 使用管理員登錄

mongo -u admin -p yourStrongPassword --authenticationDatabase admin

5.2 切換到目標數據庫并驗證用戶

use myApp
db.auth("appUser", "appUserPassword") // 返回1表示驗證成功

5.3 測試權限操作

嘗試插入數據(驗證readWrite權限):

db.myCollection.insertOne({ name: "test" }) // 成功則權限正確

若權限不足,會返回Unauthorized錯誤。

6. 可選:配置IP白名單(增強安全性)

編輯/etc/mongod.conf,在net部分添加bindIpipWhitelist限制訪問IP:

net:
  bindIp: 127.0.0.1,192.168.1.100  # 允許本地和指定IP訪問
  # security:
  #   ipWhitelist: ["127.0.0.1", "192.168.1.100"] # MongoDB 6.0+版本使用此配置

保存后重啟MongoDB服務:

sudo systemctl restart mongod

注意事項

  • 生產環境中務必使用強密碼,并定期更換;
  • 遵循最小權限原則,僅為用戶分配完成任務所需的最小權限;
  • 定期審計用戶權限(通過db.system.users.find()查看用戶列表);
  • MongoDB 6.0及以上版本推薦使用SCRAM-SHA-256認證(默認啟用)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女