Skip to content

Mongoose携带用户名和密码连接MongoDB数据库

最重要的

javascript
const mongoDB =  "mongodb://用户名:密码@1.1x.xx.xx:端口号/数据库名?authSource=账号所在数据库名"

下面的教程是基于Linux宝塔环境的MongoDB添加用户的教程

前置流程

也就是一开始需要执行的命令

shell
# 进入目录
cd /www/server/mongodb/bin/
# 连接数据库 
mongo 127.0.0.1:26555
# 切换数据库
use admin

添加用户

在添加用户前,我们可以暂时关闭 安全认证,添加完用户后,记得开启。

用户分为:

  1. 超级管理员
  2. 普通管理员。

在 **admin **数据库里面的权限级别最高的为超级管理员,这个用户可以管理其他的所有的数据库,当然我们也可以为某一个数据库创建一个普通的管理员,只用于管理对应的一个数据库。

创建管理员账户

shell
db.createUser({user: "root",pwd: "password", roles: [ { role: "root", db: "admin" } ]})

添加普通用户

shell
# 这时候一定切换到对应的数据库中去
use yourdatabase
# db为数据库名,dbOwner表示在当前数据库中可以执行任意操作
db.createUser({user: "user",pwd: "password",roles: [ { role: "dbOwner", db: "yourdatabase" } ]})

常用的命令

登录数据库:

shell
# 方式一
mongo
use admin
db.auth('admin', '123456')

#方式二
mongo admin -u admin -p 123456

查看所有用户名:show users

验证用户:db.auth("user","password")

分配角色:db.grantRolesToUser('bkadmin',[{ role:"root", db:"bookmarks" }])

删除用户:db.dropUser('username')

修改密码:db.updateUser('admin', {pwd: '654321'})

密码认证:db.auth('admin', '654321')

角色role的汇总

Read:允许用户读取指定数据库

readWrite:允许用户读写指定数据库

dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile

userAdmin:允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户

clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。

readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限

readWriteAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读写权限

userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的userAdmin权限

dbAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限。

root:只在admin数据库中可用。超级账号,超级权限

参考文章

Node.js通过账号密码连接MongoDB数据库_梦回三国.的博客-CSDN博客