1. 程式人生 > 其它 >Windows下設定Mongodb使用者名稱密碼

Windows下設定Mongodb使用者名稱密碼

技術標籤: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")

在我建立完成後使用這個賬號去連線test庫時,卻還是連線不上,經過排查後,發現這個建立的使用者是在admin庫建立的,需要再去test庫建立一個用於認證連結test庫的賬號

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