mongodb给不同的库设置不同的密码进行连接

默认的数据库安装之后是没有密码的,是可以直接访问的,但是如果端口不小心暴露出去了,就会存在很大的安全隐患。本节课教大家如何给mongodb设置账号密码进行访问。

设置管理员并密码登录

查看服务

默认安装好的mongodb会自动创建好服务,如下图:我们只需找到该服务就能看到启动文件在哪里,配置文件在那了。

启动文件

我们先找到当前数据库的启动文件

打开命令

上图箭头处输入cmd即可打开命令

创建管理员账号

输入如下命令

注意:一定是bin目录下输入,

输入mongo则会自动调用bin目录下的mongo.exe文件打开数据库

use admin则表示我需要使用admin这个表,也就是超级管理员的表

db.createUser 则是创建管理员账号

复制代码
mongo
use admin
db.createUser(
  {
    user: "自己的账号",
    pwd: "自己的密码",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)

查看管理员账号

如果你不清楚你是否已经添加进来了,可以继续输入一下命令来查看管理员账号。

db.getUsers()

修改配置文件

好,有了账号密码之后,我们就需要修改配置文件了。在第一张图中--config 后面的路径就是配置文件路径。打开该文件,然后再加上如下代码,这样数据库的访问就需要密码校验了。

security:

authorization: enabled

重启服务

找到电脑的这个服务,然后重启就可以了。

连接测试

最后用mongocompass工具或其他数据库工具连接测试即可,连接代码如下

复制代码
mongodb://账号:密码@localhost:27017/?authSource=admin

设置其他库的密码

当然这只是针对管理员的账号设置,但我们做项目的时候会创建很多的库,比如做一个图书管理系统就有一个书籍管理的库book库,电商项目就有电商的库等等。不同的项目,创建不同的库。我们不可能直接用管理员账号去连接这些库,否则一旦账号泄漏,其他的库也会跟着遭殃。所以我们还需要对不同的库,用不同的账号密码。

在宝塔中设置库密码很简单,可视化的。接下来我将教大家如何用命令来设置密码。

管理员登录

由于设置了账号密码,所以不能直接输入mongo命令即可登录了。这里需要用管理员账号来登录。

继续在这个bin目录下,用cmd命令输入一下代码

复制代码
mongo -u 自己的账号 -p 自己的密码 --authenticationDatabase admin

选择自己的库

比如书籍管理book

use book

创建该库的管理员账号

代码如下。代码其实与上面的差不多,但是db这块要注意,db就是指你创建的库,而不是admin的库。

复制代码
db.createUser({
  user: "新库的账号",
  pwd: "新库的密码",
  roles: [{ role: "readWrite", db: "book" }]
})

连接库

最后是用代码连接数据库,如下:

注意:这里一定要注意,authSource是指你当前的库名称,不是admin,不是admin,不是admin

复制代码
mongodb://账号:密码@localhost:27017/?authSource=book
相关推荐
琑952 分钟前
Next.js项目MindAI教程 - 第四章:用户认证系统
开发语言·javascript·数据库·人工智能·mysql·typescript·node.js
一朝入魔3 小时前
oracle 中创建 socket客户端 监听数据库变动,返回数据给服务端!!!
数据库·oracle
洛北辰南5 小时前
系统架构设计师—案例分析—数据库篇—分布式缓存技术
数据库·分布式·系统架构·缓存技术
星光璀璨山河无恙6 小时前
【MySQL】数据库简要介绍和简单应用
数据库·mysql
px52133446 小时前
Solder leakage problems and improvement strategies in electronics manufacturing
java·前端·数据库·pcb工艺
啥都想学的又啥都不会的研究生6 小时前
Redis设计与实现-数据持久化
java·数据库·redis·笔记·缓存·面试
新知图书6 小时前
Windows下安装MongoDB 8
数据库·windows·mongodb
jay丿7 小时前
Django 分页操作详解
数据库·django·sqlite
誰能久伴不乏7 小时前
深入理解 Qt 系统托盘图标:创建自定义的系统托盘图标类
数据库·qt·microsoft
cherry52307 小时前
【第4章】项目实战-亿级电商系统需求分析
大数据·数据库·架构·需求分析