MongoDB的oplog的用戶配置
MongoDB 的複製集是通過 Oplog 來實現的,主庫的更改操作會被記錄到主庫的 Oplog
日誌中,然後從庫通過異步方式複製主庫的 Oplog 文件並且將 Oplog 日誌應用到從庫,從而
實現了與主庫的同步。
關於 oplog 的大小
創建 mongod 服務時可以指定 --oplogSize 參數指定 oplog 大小,如果不指定,不同操作系統上的 oplog 默認大小不同,具體爲以下:
For 64-bit Linux, Solaris, and FreeBSD systems:可以分配 5% 的剩餘空間。
如果分配的值仍小於 1GB,那麼會分配 1GB。
For 64-bit OS X systems:分配 183MB。
For 32-bit systems:分配 48MB
oplog儲存位置
oplog在local庫:
1 master/slave 架構下
local.oplog.$main;
2 replica sets 架構下:
local.oplog.rs
3 sharding 架構下,mongos下不能查看oplog,可到每一片去
由於我們監聽實時數據變化,需要一個admin所有庫的read權限:
在啓動命令添加 --auth 或者需改配置文件 auth=true,啓動服務(當不啓動auth參數時,不需要登錄驗證)
1.認證機制:MONGODB-CR SCRAM-SHA-1
默認認證方式:SCRAM-SHA-1
spring使用: MONGODB-CR
2.權限
Read:允許用戶讀取指定數據庫
readWrite :允許用戶讀寫指定數據庫
dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
root:只在admin數據庫中可用。超級賬號,超級權限
3.創建默認用戶
use admin
/創建超級管理員,操作齊他users
db.createUser(
{
user: "root",
pwd: "root",
roles: [ { role: "root", db: "admin" } ]
}
)
認證:
db.auth("root","root")
db.system.users.find()
//創建其他用戶
db.createUser(
{
user: "adminUser",
pwd: "adminPass",
roles: [ { role: "readAnyDatabase", db: "admin" },
{role:"read",db:"local"}
]
}
)
認證:
db.auth("adminUser","adminPass")