開啟MongoDB客戶端訪問控制


參考官方文檔:https://docs.mongodb.org/v2.6/tutorial/enable-authentication/

基於版本:MongoDB 2.6

概覽

在MongoDB數據實例上開啟了訪問控制,約束了用戶必須在連接MongoDB的時候認證一下。在這個步驟中,你開啟訪問控制,然后創建的第一個用戶必須是一個administrator的用戶。這個administrator用戶用來創建其他的用戶。

注意事項

如果你在開啟訪問控制之前,創建了一個administrator用戶,那么就關閉了localhost exception,在這種情況下,你必須使用'Enable Authentication after Creating the User Administrator'的步驟來開啟訪問控制。

這里主要是說明'Enable Authentication after Creating the User Administrator的方式開啟訪問控制(即先創建第一個用戶然后開啟認證):

步驟:

  1.使用無認證的方式啟動MongoDB

    比如:mongod --port 27017 --dbpath c:\data\db1

  2.創建administrator用戶

    這個用戶有且僅有userAdminAnyDatabase這個角色的權限。

    比如:創建一個用戶名為siteUserAdmin的用戶在admin數據庫中,(必須是在admin數據庫中創建)。

    use admin

    db.createUser(
       {
      user: "siteUserAdmin",
      pwd: "password",
      roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
       }
    )

    對於角色、權限以及創建用戶的命令,請參考:創建一個administrator用戶 角色以及db.createUser()

  3.以認證的方式啟動MongoDB數據庫

    mongod --auth --port 27017 --dbpath /data/db1

  4.創建其他的用戶

   文檔參考:https://docs.mongodb.org/v2.6/tutorial/add-user-to-database/

   1.用有合適權限的用戶連接MongoDB實例

     比如:使用剛才創建的administrator用戶siteUserAdmin,

      mongo --port 27017 -u siteUserAdmin -p password --authenticationDatabase admin

   2.創建一個新用戶

    創建用戶語法可以參考:db.createUser()

    下面的例子是在reporting數據庫中創建一個用戶。

    use reporting  

    db.createUser(
      {
        user: "reportsUser",
        pwd: "12345678",
        roles: [
          { role: "read", db: "reporting" },
          { role: "readWrite", db: "reporting" }
        ]
      }
    )

    其中,use reporting命令,如果沒有reporting數據庫,則創建這個reporting數據庫。

    如果要認證這個reportUser用戶,就必須在reporting數據庫中認證。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM