docker下的開啓權限,密碼的mongo容器

  1. 根據官方mongo鏡像,拉取到本地,docker pull mongo
  2. 通過docker run -p 27017:27017 –name mongo1 -v /data/db:/data/db -d imgId –auth 開啓 mongo容器,-v 左側指定的是宿主機目錄,右面是容器目錄,開啓mongo容器之前,最好保證宿主機該目錄爲空,不然會出現某些錯誤。
  3. 然後通過docker exec -it containID mongo admin命令,或者直接 docker exec -it containId bash進入到mongo容器,然後連接上容器中的mongo之後,
    1. 輸入命令use admin,使用admin數據庫。
    2. 通過db.createUser({user:"root",pwd:"root",roles:[{role:"root",db:"admin"}]}) 命令,創建一個對於admin數據庫最高權限的賬戶。創建成功之後會返回Successfully add user { xxxxx…略}
    3. 成功之後通過命令db.auth(‘root’,’root’),進行登陸認證。然後返回1
    4. 此時創建你需要的相對應權限的賬戶,db.createUser({user:"test",pwd:"test",roles:[{role:"readWrite ",db:"test"}]}),user與pwd就是賬戶與密碼,role,就是下面的權限,db就是這個用戶在哪個數據庫所擁有這些權限(注意:創建此類賬戶時,此時的登陸賬戶必須爲我們最開始創建的root賬戶,如果不是,請重新使用use admin命令,加上db.auth(‘root’,’root’)登陸該賬戶【因爲在該mongo中只有此賬戶擁有管理用戶的權限】)
      1. 權限對應:
      2. Read:允許用戶讀取指定數據庫
      3. readWrite:允許用戶讀寫指定數據庫
      4. dbAdmin:允許用戶在指定數據庫中執行管理函數,如索引創建、刪除,查看統計或訪問system.profile
      5. userAdmin:允許用戶向system.users集合寫入,可以找指定數據庫裏創建、刪除和管理用戶
      6. clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和複製集相關函數的管理權限。
      7. readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
      8. readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
      9. userAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的userAdmin權限
      10. dbAdminAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的dbAdmin權限。
      11. root:只在admin數據庫中可用。超級賬號,超級權限
    5. 上一步創建成功之後,我們就可以通過use test,(test 爲我們想要創建的數據庫名字),進入到我們的數據庫,此時通過show dbs 我們尚無法看到我們創建的test數據庫,(因爲我們還未在其中添加集合),此時登陸我們爲此數據庫創建的讀寫賬戶,db.auth(‘test’,’test’),返回1後,我們就可以通過db.collectionName.insert({x:1}),添加我們所需要的集合.成功後返回WriteResult({ "nInserted" : 1 })。
    6. 此時我們的開啓了權限的mongo就創建成功了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章