MongoDB預設不開啟授權認證,隻要用戶端程式能夠通路MongoDB伺服器,就可以與它進行連接配接。
但是在生産環境,一般都是需要開啟授權認證的,隻有經過授權的使用者才能夠連接配接到MongoDB,才允許通路相關的資源,即:使用者-角色-資源~ 這種模式與其它關系型資料庫的權限模式基本一緻,這裡不做過多的解釋。
要開啟認證模式,首先修改MongoDB的配置檔案: /etc/mongod.conf (路徑可能與我不同~)
修改配置:
開啟完成後重新開機MongoDB即可生效:
需要特别注意一點,就是在開啟授權認證模式之前,需要先在MongoDB中建立一個管理者使用者,MongoDB是不提供預設使用者的。
下面介紹如何建立管理者使用者:
1、首先切換到admin資料庫,這個庫的作用是用來存放MongoDB中所有的授權使用者,預設這個庫是不存在的,我們先切換過來,在用的時候它會自動建立。
2、建立使用者,把下面代碼負載進去執行。
MongoDB中内置了很多角色,我們可以直接使用。
角色可以設定多個:
role:表示角色,db:表示目前角色針對哪個資料庫有效。比如設定了admin 那麼這個使用者的權限範圍隻在admin資料庫有效。
比如我設定 role:"readWrite", db:"mydb" 那麼這個使用者隻能在mydb這個資料庫有讀寫的權限。
但是MongoDB中提供了幾個全局資料庫的角色,例如上面的
注意後面的AndDataBase, 如果設定了這個角色,那麼意味着這個角色是針對所有資料庫有效的,盡管它設定了db:"admin"。
設定完畢系統管理者使用者後,我們就可以開啟MongoDB中的授權認證模式了,開啟模式後在此進入MongoDB的用戶端:
第一步切換到admin資料庫:
switched to db admin
第二步進行身份認證:
認證成功傳回1,如果認證失敗會提升相關的錯誤資訊。
我們可以檢視一下系統使用者:
然後我們可以給具體的資料裡設定授權使用者了。
我們給mydb資料庫設定讀寫的權限使用者。
上面的URL配置了使用者名和密碼 以及要連接配接的資料庫。