MongoDB的oplog的用戶配置

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")

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章