我的問題是關於mongo shell --authenticationDatabase選項。MongoDB身份驗證數據庫目的
我被它有點思想困惑的是,我是管理數據庫,因爲這是用戶在這裏閱讀本文件後實際定義創建的用戶數據庫:https://docs.mongodb.com/manual/core/security-users/#user-management-interface
我明白我是錯誤;身份驗證數據庫是用戶具有角色的數據庫。那麼我的問題是選項「--authenicationDatabase?」的目的是什麼?看到我的情景如下。
下面的命令將連接到MyApp數據庫,並針對MYAPP數據庫
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp
下面的命令將連接到MyApp數據庫,並針對默認MYAPP數據庫進行身份驗證身份驗證。這似乎使命令過時了。
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myapp
下面的命令將對myapp數據庫進行身份驗證,但不會連接到它。爲什麼?僅僅是爲了測試憑證?
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp"
此命令會告訴我「錯誤:身份驗證失敗。」以及我仍然想知道爲什麼我需要先前的命令來找出我的憑據是無效的。
mongo -u "bob" -p "bobspassword" myapp
最後,就是有,我需要對一個數據庫進行驗證並連接到一個不同的像下面的命令的情況嗎?我只能連接到我已定義角色的數據庫,爲什麼我不會對我試圖連接的數據庫進行身份驗證?
mongo -u "bob" -p "bobspassword" --authenticationDatabase "myapp" myotherapp
謝謝您的洞察!
我爲什麼要只連接到服務器/測試?運行'show dbs'?還要別的嗎? – Daniel
也許會創建一個數據庫?我想這是有道理的。 – Daniel
即默認行爲,要連接到db測試,需要在某處寫入。在mongo中,DB在第一個文檔被保存的時刻創建。 – sergiuz