集群安全認證
主節點添加管理員賬號
//切換到admin庫
use admin
//創建系統超級用戶myroot密碼123456,設置角色root
db.createUser({user:"myroot",pwd:"123456",roles:[{"role":"root","db":"admin"]}]})
或
db.createUser({user:"myroot",pwd:"123456",roles:[{"root"}]})
創建副本集認證的key文件
openssl rand -base64 90 -out ./mongo.keyfile
chmod 400 ,.mongo.keyfile
ll mongo.keyfile
- 注意:所有副本集節點都用同一份keyfile,在一台機器生成,然後拷貝到其它機器上,且必須有讀的全選
- 將這份文件拷貝到其它副本集裡面
修改配置文件制定keyfile
security:
#keyFile鑒權文件
keyFile: 剛才複製的mongo.keyfile文件的地址
#開始認證方式運行
authorization: enable
重啟副本集
- 必須要先關閉除了主節點之外的所有從節點包括仲裁節點,主節點放在最後一個關閉
- 之前分別啟動副本集節點
在主節點上添加普通賬號
//創建將要操作的數據庫atricledb
use atricledb
//創建用戶,有讀寫權限,密碼123456
db.createUser({user:"bibi",pwd:"123456",roles:[{"role":"readWrite","db":"atricledb"]}]})
//測試是否可用
db.auth("bibi","123456")
springboot連接副本集
- 使用賬號密碼登錄mongodb連接,需要用username:password@hostname/dbname
spring:
data:
mongodb:
uri:
mongodb://bibi:123456@副本集ip:端口號/atricledb?connect=replicaset&slaveOK=true&replicaSet=myes