在Debian上設置MongoDB的權限管理涉及多個步驟,包括安裝MongoDB、配置MongoDB以啟用認證、創建用戶以及分配角色和權限。以下是詳細的步驟:
首先,確保你的系統是最新的:
sudo apt update && sudo apt upgrade -y
然后,導入MongoDB的GPG密鑰并添加官方存儲庫:
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
更新包列表并安裝MongoDB:
sudo apt update
sudo apt install -y mongodb-org
啟動MongoDB服務并設置其開機自啟:
sudo systemctl start mongod
sudo systemctl enable mongod
編輯MongoDB配置文件 /etc/mongod.conf
:
sudo nano /etc/mongod.conf
啟用身份驗證并配置其他安全設置:
security:
authorization: enabled
enableLocalhostAuthBypass: false
修改默認端口(例如27017):
net:
port: 27017
啟動MongoDB shell:
mongo
在 admin
數據庫中創建一個管理員用戶:
use admin
db.createUser({
user: "myUserAdmin",
pwd: "myStrongPassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
})
啟用身份驗證:
security:
authorization: enabled
重啟MongoDB服務以使更改生效:
sudo systemctl restart mongod
連接到MongoDB shell并使用管理員賬戶:
mongo -u myUserAdmin -p myStrongPassword --authenticationDatabase admin
為需要權限的數據庫創建其他用戶:
use myDatabase
db.createUser({
user: "readOnlyUser",
pwd: "readPassword",
roles: [ { role: "read", db: "myDatabase" } ]
})
修改MongoDB配置文件以限制訪問:
net:
bindIp: 127.0.0.1
只允許本機訪問MongoDB:
net:
bindIp: 127.0.0.1
配置MongoDB使用TLS/SSL以加密通信。請參考MongoDB官方文檔進行詳細配置。
啟用系統審計以跟蹤數據庫配置和數據的訪問和更改。MongoDB企業版包括一個系統審計工具,可以記錄MongoDB實例上的系統事件。
定期更新MongoDB和操作系統以修補已知漏洞:
sudo apt update && sudo apt upgrade -y