mongodb 开启身份认证_一步一步搭建react应用-mongodb开启身份认证

通过不认证的方式启动Mongodb

mongod --port 3007 --config mongod.conf

mongo 连接实例 mongo --port 3307

创建用户超级管理员

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')

为其他库创建用户

use movies

db.createUser(

{

user: "moviesAdmin",

pwd: "XXXX",

roles: [ { role: "readWrite", db: "movies" },

{ role: "read", db: "db2" } ]

}

)

//添加user moviesAdmin,对movies有读写权限,对db2有读权限

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) {

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值