windows系統,MongoDB開啟用戶驗證登錄的正確姿勢


MongoDB默認安裝並沒有開啟用戶名密碼登錄,這樣太不安全了,百度出來的開啟驗證登錄的文章,對初次使用MongoDB的小白太不友好了,總結下經驗,自己寫一份指引。

1,我的安裝路徑是C:\Program Files\MongoDB\Server\4.0\bin

2,我是安裝在window10系統下的

3,直接做成系統服務(哪程序員每次用下MongoDB還要手動開啟的,這太不程序員了,程序員不就圖個懶字嘛),在C:\Program Files\MongoDB\  下創建一個記事本,命名為mongod.cfg寫入以下配置內容,注意要設置日志的path和數據庫的path,我是設置在D:\MongoDB\目錄下的,目錄要自己去建。

systemLog:
    destination: file
    path: "D:\MongoDB\log\mongo.log"
    logAppend: true
storage:
    dbPath: "D:\MongoDB\db"
    journal:
        enabled: true
security:
    authorization: "enabled"
net:
    #  bindIp: 127.0.0.1
    bindIpAll: true
    port: 27017
setParameter:
    enableLocalhostAuthBypass: false

然后點開cmd,右鍵以管理員身份運行,輸入

cd C:\Program Files\MongoDB\Server\4.0\bin

 進入MongoDB目錄,然后輸入(有可能出錯的情況是,cfg文件里面用tab去代替空格,會導致出錯)

mongod --config "C:\Program Files\MongoDB\Server\mongod.cfg" --install --serviceName "MongoDB_Svr" --serviceDisplayName "MongoDB_Svr"

對應的刪除系統服務的代碼如下,直接在cmd窗口輸入

sc delete MongoDB_Svr

注意,這時服務並沒有啟動,我們先不要啟動服務,下面先添加管理員用戶

4,打開CMD

cd C:\Program Files\MongoDB\Server\4.0\bin

然后開啟一個無需驗證用戶的MongoDB服務

modgod --dbpath="D:\MongoDB\db"

然后這個cmd就留着,進入文件夾 C:\Program Files\MongoDB\Server\4.0\bin 雙擊 mongo.exe打開命令窗口

粘貼下面代碼,運行

use admin
db.createUser(
  {
    user: "myadmin",
    pwd: "123456",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

使用 db.system.users.find() 可查看所有用戶

然后

db.auth("myadmin","123456")

假設你創建了一個TestDB的數據庫,如果要設置這個數據庫的用戶

use TestDB
db.createUser(
{
    user: "phoenix",
    pwd: "123456789",
    roles: [
         { role: "readWrite", db: "TestDB" },
      ]
    }
)

這樣就能用phoenix 和 123456789登陸TestDB數據庫了

其它可用的命令還有

刪除用戶db.dropUser("TestDB")
刪除用戶要注意的就是要到對應的數據庫下刪除用戶。

查看數據庫show dbs

開啟服務=>cmd下運行net start MongoDB_Svr
停止服務=>cmd下運行net stop MongoDB_Svr

 

附:

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

 


免責聲明!

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



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