一步一步搭建react應(yīng)用-mongodb開啟身份認證

git地址

  • 通過不認證的方式啟動Mongodb
   mongod --port 3007  --config mongod.conf
  • mongo 連接實例 mongo --port 3307

  • 創(chuàng)建用戶超級管理員

use admin
db.createUser(
  {
    user: "myAdmin",
    pwd: "XXXXX",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
  • 重啟mongodb,加上訪問控制
    mongod --port 3007  --config mongod.conf --auth
  • 認證

連接時認證

mongo --port 3307 -u 'xxx' -p 'xxx' --authenticationDatabase "admin"

連接后認證

mongo --port 3307

use admin

db.auth('username','pwd')


  • 為其他庫創(chuàng)建用戶
use movies
db.createUser(
  {
    user: "moviesAdmin",
    pwd: "XXXX",
    roles: [ { role: "readWrite", db: "movies" },
             { role: "read", db: "db2" } ]
  }
)
//添加user moviesAdmin,對movies有讀寫權(quán)限,對db2有讀權(quán)限

?db.js

const {MongoClient,ObjectId} = require('mongodb')
const f = require('util').format
const user = encodeURIComponent('moviesAdmin')
const pwd = encodeURIComponent('xxxxx')
const authMechanism = 'DEFAULT'
let db_name='Movies'
if(process.env.NODE_ENV=='test'){
    db_name='Movies_test'
}
const url = f(`mongodb://%s:%s@localhost:3307/${db_name}?authMechanism=%s`, user, pwd, authMechanism)

module.exports = {
    connect() {
        return MongoClient.connect(url).catch(e=>{
            console.log(e)
        })
    },
    id(id) {
        try {
            if (id) {
                return new ObjectId(id)
            } else {
                return new ObjectId()
            }
        } catch (e) {

        }
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,958評論 6 342
  • 一、MongoDB安裝及配置 1.1、下載安裝程序 MongoDB提供了linux平臺上32位和64位的安裝包,你...
    misszero閱讀 1,252評論 1 2
  • 開啟授權(quán)認證之后,只有經(jīng)過授權(quán)的用戶才能夠連接到MongoDB,才允許訪問相關(guān)的資源,增加數(shù)據(jù)庫的安全性與穩(wěn)定性。...
    Uzero閱讀 2,014評論 1 1
  • NoSql數(shù)據(jù)庫優(yōu)缺點 在優(yōu)勢方面主要體現(xiàn)在下面幾點: 簡單的擴展 快速的讀寫 低廉的成本 靈活的數(shù)據(jù)模型 在不足...
    dreamer_lk閱讀 2,776評論 0 6
  • 從周五到周六這接近一天的時間里,我經(jīng)歷了一件特別煎熬的事情。雖然沒有人批評我,但我還是陷入極度自責無法自拔。 事情...
    木木1994閱讀 223評論 0 0