下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當前位置:軟件下載吧 > 數據庫 > DB2 > MongoDB為用戶設置訪問權限

          MongoDB為用戶設置訪問權限

          時間:2024-03-08 08:50作者:下載吧人氣:35

          MongoDB已經使用很長一段時間了,基于MongoDB的數據存儲也一直沒有使用到權限訪問(MongoDB默認設置為無權限訪問限制),今天特地花了一點時間研究了一下,研究成果如下:

          注:研究成果基于Windows平臺
          MongoDB在本機安裝部署好后
          1. 輸入命令:show dbs,你會發現它內置有兩個數據庫,一個名為admin,一個名為local。local好像沒啥用,如果哪位在使用過程中發現了這個local表的用途,希望能夠留言提醒,那我們就專心來說說admin表
          2. 輸入命令:use admin,你會發現該DB下包含了一個system.user表,呵呵,沒錯,這個表就等同于MsSql中的用戶表,用來存放超級管理員的,那我們就往它里面添加一個超級管理員試試看
          3. 輸入命令:db.addUser(‘sa’,’sa’),這里我添加一個超級管理員用戶,username為sa,password也為sa,即然我們添加了超級管理員,那咱們就來測試下,看看咱們再次連接MongoDB需不需要提示輸入用戶名、密碼,我們先退出來(ctrl+c)
          4. 輸入命令:use admin
          5. 輸入命令:show collections,查看該庫下所有的表,你會發現,MongoDB并沒有提示你輸入用戶名、密碼,那就奇怪了,這是怎么回事呢?在文章最開始提到了,
          MongoDB默認設置為無權限訪問限制,即然這樣,那我們就先把它設置成為需要權限訪問限制,咱們再看看效果,怎么設置呢?
          6. 在注冊表中,找到MongoDB的節點,在它的ImgPath中,我們修改一下,加入 -auth,如下所示:
          “D:Program Filesmongodbbinmongod” -dbpath e:workdatamongodbdb -logpath e:workdatamongodblog -auth -service
          7. 輸入命令:use admin
          8. 輸入命令:show collections,呵呵,我們發現無法查看該庫下的表了,提示:”$err” : “unauthorized db:admin lock type:-1 client:127.0.0.1″,很明顯,提示沒有權限,看來關鍵就在于這里,我們在啟動MongoDB時,需要加上-auth參數,這樣我們設置的權限才能生效,好,接下來我們使用剛剛之前設置的用戶名、密碼來訪問
          9. 輸入命令:db.auth(‘sa’,’sa’),輸出一個結果值為1,說明這個用戶匹配上了,如果用戶名、密碼不對,會輸入0
          10. 輸入命令:show collections,呵呵,結果出來了,到這里,權限設置還只講到一多半,接著往下講,我們先退出來(ctrl+c)
          11. 輸入命令:mongo TestDB,我們嘗試連接一個新的庫(無論這個庫是否存在,如果不存在,往該庫中添加數據,會默認創建該庫),然后,我們想看看該庫中的表
          12. 輸入命令:show collections,好家伙,沒權限,我們輸入上面創建的用戶名、密碼
          13. 輸入命令:db.auth(‘sa’,’sa’),輸入結果0,用戶不存在,這下有人可能就不明白了,剛剛前面才創建,怎么會不存在呢?原因在于:當我們單獨訪問MongoDB的數據庫時,需要權限訪問的情況下,用戶名密碼并非超級管理員,而是該庫的system.user表中的用戶,注意,我這里說的是單獨訪問的情況,什么是不單獨訪問的情況呢?接下來再講,現在咋辦,沒權限,那我們就嘗試給庫的system.user表中添加用戶
          14. 輸入命令:db.addUser(‘test’,’111111′),哇靠,仍然提示沒有權限,這可咋辦,新的數據庫使用超級管理員也無法訪問,創建用戶也沒有權限,呵呵,別急,即然設定了超級管理員用戶,那它就一定有權限訪問所有的庫
          15. 輸入命令:use admin
          16. 輸入命令:db.auth(‘sa’,’sa’)
          17. 輸入命令:use TestDB
          18. 輸入命令:show collections,哈哈,一路暢通無阻,我們發現可以利用超級管理員用戶訪問其它庫了,呵呵,這個就是不單獨訪問的情況,不難發現,我們是先進入admin庫,再轉到其它庫來的,admin相當于是一個最高級別官員所在區域,如果你是個地產商,想在地方弄個大工程做做,你想不經過那些高級官員就做,這是行不通的,你需要先去到他們那里,送點禮,再順著下到地方,工程你就可以拿到手了,此言論僅為個人觀點,不代表博客園;即然工程拿到手了,就要開始建了,那我們不至于每加塊磚、添個瓦都得去和那幫高級官員打招呼吧,所以我們得讓這個工程合法化,咱們得把相關的手續和證件弄齊全,不至于是違建
          19. 輸入命令:db.addUser(‘test’,’111111′),我們給TestDB庫添加一個用戶,以后每次訪問該庫,我都使用剛剛創建的這個用戶,我們先退出(ctrl+c)
          20. 輸入命令:mongo TestDB
          21. 輸入命令:show collections,提示沒有權限
          22. 輸入命令:db.auth(‘test’,’111111′),輸出結果1,用戶存在,驗證成功
          23. 輸入命令:show collections,沒再提示我沒有權限,恭喜您,成功了
          注:當需要使用權限才能訪問MongoDB時,如果需要查看MongoDB中所有的庫,我們只能通過超級管理員權限,輸入命令show dbs來查看了。

          標簽MongoDB,用戶,設置,訪問,權限

          相關下載

          查看所有評論+

          網友評論

          網友
          您的評論需要經過審核才能顯示

          熱門閱覽

          最新排行

          公眾號

          主站蜘蛛池模板: 伊人久久精品无码麻豆一区| 国产一区二区三区露脸| 日本片免费观看一区二区| 韩国资源视频一区二区三区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产精品无圣光一区二区| 精品日韩一区二区三区视频| 久久精品免费一区二区三区| 一区五十路在线中出| 国产成人免费一区二区三区| 国产精品久久一区二区三区| 久久久老熟女一区二区三区| 免费看一区二区三区四区 | 精品一区二区三区在线播放视频| 亚洲国产激情一区二区三区| 理论亚洲区美一区二区三区| 中文字幕日韩精品一区二区三区| 性色A码一区二区三区天美传媒 | 久久99精品波多结衣一区| 精品伦精品一区二区三区视频 | 日韩爆乳一区二区无码| 国产精品高清一区二区三区| 中文字幕在线观看一区二区| 丰满人妻一区二区三区免费视频| 人妻无码一区二区三区| 一区五十路在线中出| 国产一区二区三区四| 一区二区不卡久久精品| 激情啪啪精品一区二区| 福利视频一区二区牛牛| 国产伦精品一区二区三区视频金莲 | 亚洲V无码一区二区三区四区观看| 丝袜无码一区二区三区| 99久久精品国产高清一区二区 | 亚洲一区二区三区夜色| 91成人爽a毛片一区二区| 久久毛片一区二区| 国产成人精品亚洲一区| 福利一区福利二区| 亚洲电影一区二区| 国产一区二区三区乱码在线观看|