Eggjs筆記:mongodb的使用:權限配置,數據庫角色

關於 Mongodb 4.x

1)3.x 步驟

  • 安裝
  • 環境變量配置path
  • 啓動mongodb服務 mongod --dbpath 跟上存儲路徑開啓服務
  • 再次啓動一個客戶端:mongo 即可!

注:4.x 與3.x基本相同,但是無需指定存儲路徑,在安裝的時候,要求配置(舉例爲windows環境下)

2 )4.x 步驟

  • 安裝(可選可視化工具,windows環境下)
  • 環境變量Path配置
  • 直接用 mongo (相關服務直接寫入開啓任務中)

MongoDB的權限配置

第一步創建超級管理用戶

use admin
db.createUser({
    user:'admin', pwd:'123456', roles:[{role:'root',db:'admin'}]
})

注意這裏一定要是 use admin, 而且db也是admin

第二步修改 Mongodb 數據庫配置文件

  • Windows下,路徑:C:\Program Files\MongoDB\Server\4.0\bin\mongod.cfg 這裏是默認安裝路徑
  • 其他系統具體配置查看官方手冊:https://docs.mongodb.com/manual/reference/configuration-options/
  • 注意windows和Mac的配置文件名不一樣

windows下的配置:

# 開啓權限認證
security:
    authorization: enabled

mac下:路徑按照文檔上的來

systemLog:
   destination: file
   path: "/usr/local/mongodb/log/mongod.log"
   logAppend: true
storage:
   dbPath: "/Users/johnny/data/db"
   journal:
      enabled: true
processManagement:
   fork: true
net:
   bindIp: 127.0.0.1
   port: 27017
security:
   authorization: enable

第三步重啓 mongodb 服務

  • 在windows下的 services.msc 下重啓
  • mac下,只需要使用配置文件進行連接 , 任選其一即可
    • mongod --config /usr/local/mongodb/etc/mongod.conf
    • mongod -f /usr/local/mongodb/etc/mongod.conf

第四步用超級管理員賬戶連接數據庫

  • 本機:mongo admin -u 用戶名 -p 密碼
    • mongo eggcms -u eggadmin -p 123456
  • 遠程:mongo 192.168.1.200:27017/test -u user -p password
    • 如:mongo localhost:27017/eggcms -u eggadmin -p 123456

第五步給 eggcms 數據庫創建一個專屬用戶

只能訪問 eggcms 不能訪問其他數據庫

use eggcms
db.createUser({
    user: "eggadmin", pwd: "123456", roles: [ { role: "dbOwner", db: "eggcms" } ]
})

Mongodb 賬戶權限配置中常用的命令

  • show users; 查看當前庫下的用戶
  • db.dropUser("eggadmin") 刪除用戶
  • db.updateUser( "admin", {pwd:"password"}); 修改用戶密碼
  • db.auth("admin","password"); 權限認證,如果沒有權限可以用權限的用戶的權限進行操作,參數是:角色,密碼
  • $ mongo eggcms -u eggadmin -p 123456 使用當前用戶eggadmin連接指定數據庫eggcms

Mongodb 數據庫角色

  • 數據庫用戶角色:read、readWrite;
  • 數據庫管理角色:dbAdmin、dbOwner、userAdmin;
  • 集羣管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
  • 備份恢復角色:backup、restore;
  • 所有數據庫角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
  • 超級用戶角色:root
  • 參考:https://www.cnblogs.com/zzw1787044/p/5773178.html

連接數據庫的時候需要配置賬戶密碼

  • 在nodejs中賬戶和密碼的鏈接配置 mongodb://username:pwd@localhost:27017/dbname
    • 如: const url = 'mongodb://admin:123456@localhost:27017/eggcms';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章