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';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章