mongoDB数据库设置账号密码验证

一般默认安装mongoDB到电脑的时候,默认数据库是没有设置管理员账号密码的。
所以为了安全问题,必须需要设置一下

  1. 以系统管理员的方式运行powershell
  2. 进入mongo(不需要账号验证)
mongo

在这里插入图片描述

  1. 查看数据库 show dbs
show dbs

在这里插入图片描述

  1. 切换到admin数据库 use admin
  2. 创建超级管理员账户 db.createUser()
use admin
db.createUser({ user:"设置管理员账号", pwd:"设置管理员密码", roles:["root"] })

  1. 切换到blog数据库 use blog
  2. 创建普通账号 db.createUser()
    普通账号可指定管理某个数据库
use blog
db.createUser({ user:"普通账号", pwd:"设置密码", roles:["readWrite"] })


PS:roles属性是设置该账号对mongoDB数据库的权限
mongodb 一共有哪些权限:

 1. 数据库用户角色:read、readWrite; 

 2. 数据库管理角色:dbAdmin、dbOwner、userAdmin; 

 3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;

 4. 备份恢复角色:backup、restore;

 5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase

 6. 超级用户角色:root 

 // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)

 7. 内部角色:__system

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

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

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

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

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

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

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

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

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

 root:只在admin数据库中可用。超级账号,超级权限
  1. 退出mongo服务
exit

在这里插入图片描述

  1. 卸载mongodb服务
    1. 停止服务 net stop mongodb
    2. mongod --remove
net stop mongodb

在这里插入图片描述

mongod --remove

在这里插入图片描述

  1. 创建mongodb服务
    路径指定为数据库安装目录的data文件夹和log文件夹下的mongod.log文件
    –auth 表示启动进入mongo需要账号密码验证
mongod --logpath="D:\数据库的路径\log\mongod.log" --dbpath="D:\数据库的路径\data" --install –-auth

在这里插入图片描述
在这里插入图片描述

  1. 重新启动mongodb服务
net start mongodb

在这里插入图片描述

  1. 重新进入mongo(需要账号验证)
mongo --host 127.0.0.1 --port 27017 -u "账号" -p "密码" --authenticationDatabase "admin"

在这里插入图片描述

  1. 在项目中使用账号连接数据库
    这里以node的express框架的mongoose为例

超级管理员连接数据库

// 连接mongodb数据库
const mongoose = require("mongoose"); // 引入mongoDB操作模块

const dbUsername = "root"; // 数据库管理员连接账号
const dbPassword = "root"; // 数据库管理员的密码
const dbHost = "localhost"; // 数据库路径
const dbPort = 27017; // 数据库端口(可省略)
const db = "blog"; // 需要操作的数据库

// authSource=认证源
// (使用超级管理员账号连接其他数据库时的认证,普通账号不用设置)
// 数据库认证需要依赖于另外一个数据库名称
const dbAuth = "admin"; // 认证源

mongoose
  .connect(`mongodb://${dbUsername}:${dbPassword}@${dbHost}:${dbPort}/${db}?authSource=${dbAuth}`, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify: false,
    useCreateIndex: true,
  })
  .then(() => {
    console.log("mongoDB数据库连接成功");
  })
  .catch((err) => {
    console.log(err, "mongoDB数据库连接失败");
  });

普通账号连接指定数据库

  // 连接mongodb数据库
const mongoose = require("mongoose"); // 引入mongoDB操作模块

const dbUsername = "user"; // 数据库普通账号
const dbPassword = "123456"; // 数据库普通账号的密码
const dbHost = "localhost"; // 数据库路径
const dbPort = 27017; // 数据库端口(可省略)
const db = "blog"; // 需要操作的数据库

mongoose
  .connect(`mongodb://${dbUsername}:${dbPassword}@${dbHost}:${dbPort}/${db}`, {
    useNewUrlParser: true,
    useUnifiedTopology: true,
    useFindAndModify: false,
    useCreateIndex: true,
  })
  .then(() => {
    console.log("mongoDB数据库连接成功");
  })
  .catch((err) => {
    console.log(err, "mongoDB数据库连接失败");
  });

收. 这是根据自己的理解整理的笔记,希望对你有帮助

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
设置MongoDB账号密码,可以按照以下步骤进行操作: 1. 进入MongoDB的安装目录的bin目录。可以使用命令`cd /mongodb安装目录/bin`进入。 2. 打开MongoDB的配置文件mongod.cfg,可以在bin目录下找到。在该文件中开启权限验证功能,在security下添加`authorization: enabled`。 3. 保存并退出配置文件。 4. 重启MongoDB服务,以使配置生效。 5. 使用mongo命令连接到MongoDB数据库,并登录超级管理员账号。 有两种方式可以登录超级管理员账号: - 方式一:使用以下命令登录 ``` mongo use admin db.auth('admin', '密码') ``` 其中'admin'是超级管理员的账号,'密码'是超级管理员的密码。 - 方式二:使用以下命令登录 ``` mongo admin -u admin -p 密码 ``` 其中'admin'是超级管理员的账号,'密码'是超级管理员的密码。 通过以上步骤,你就可以成功设置MongoDB账号密码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mongodb 设置用户账号密码](https://blog.csdn.net/weixin_42140261/article/details/105242450)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MongoDB设置登录账号和密码](https://blog.csdn.net/hbtj_1216/article/details/120875957)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值