Windows下設置Mongodb用戶名密碼


MongoDB認證:

  在默認的情況下,Mongodb是監聽在127.0.0.1 IP上的,端口號默認為27017,任何客戶端都可以連接,不需要認證

  默認情況下,Mongodb也是沒有管理賬戶的,除非你在admin庫中創建了用戶,當然光創建了用戶是沒有用的,還要用--auth參數啟動,不然認證也是不生效的

  好處:

    隨時可以連接,不用配置一堆配置文件

  壞處:

    公網服務器搭建的Mongodb,那么所有人都可以玩你的數據,並且會有網管發來的郵件,然后添加認證

 

首先先啟動Mongodb,以不帶認證的方式啟動

 

 

創建所有數據庫管理員賬戶:

1:以管理員身份運行cmd,然后cd到Mongodb的bin的目錄

C:\WINDOWS\system32>cd F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15

C:\WINDOWS\system32>F:

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15>cd bin

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15\bin>

2:輸入命令mongo.exe,進入mongodb命令界面:前提是先啟動Mongodb

F:\6.0\env\mongodb-win32-x86_64-2008plus-3.2.15\bin>mongo.exe

3:創建數據庫,我用的庫叫test

> use test;
switched to db test

4:然后切換回admin庫創建用戶

> use admin
switched to db admin

5:創建管理員賬號,創建之前需要先了解一下Mongodb內置角色

Mongodb內置角色
1. 數據庫用戶角色:read、readWrite;
2. 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. 備份恢復角色:backup、restore;
5. 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. 超級用戶角色:root  
7. 內部角色:__system

6:然后創建管理員賬號:

> db.createUser({user:"root",pwd:"root",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
        "user" : "root",
        "roles" : [
                {
                        "role" : "userAdminAnyDatabase",
                        "db" : "admin"
                }
        ]
}

7:然后驗證一下是否成功

> db.auth("root","root")
1

在我創建完成后使用這個賬號去連接test庫時,卻還是連接不上,經過排查后,發現這個創建的用戶是在admin庫創建的,需要再去test庫創建一個用於認證鏈接test庫的賬號

然后再Mongodb啟動的時候加上 --auth就可以了

作者:彼岸舞

時間:2020\09\26

內容關於:工作中用到的小技術

本文來源於網絡,只做技術分享,一概不負任何責任


免責聲明!

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



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