mongodb4.0开启用户密码登录

2,789 阅读3分钟

如果你还没有安装mongodb,请移步至该文章:mongodb4.0安装,安装后再观看本文

本教程环境

centos 7.5 64位版本

前期准备

请确保你的mongodb已经启动,输入以下指令查看mongodb启动状态

sudo service mongod status

mongodb启动状态
如果状态为active(running),则证明启动成功!

如果未启动,请使用以下命令启动服务

sudo service mongod start

开始添加用户

首先输入以下指令,进入mongodb数据库

mongo

如下图所示:

进入mongodb
接着,我们切换到admin数据库

use admin

下面我们输入以下指令创建一个admin用户,其中密码为abc123,请按照自己的需求自行修改用户名密码

db.createUser(
  {
    user: "admin",
    pwd: "abc123",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)

密码建议使用密码生成器生成随机的安全密码,以增强数据库的安全性

其中的userAdminAnyDatabase角色赋予了admin账户在该mongodb实例中,管理(新增、删除、修改)所有数据库用户的权限.

点击此处了解更多userAdminAnyDatabase角色的信息

输入以下指令退出mongodb

exit

开启数据库身份校验

输入以下指令,编辑mongodb的配置文件

vim /etc/mongod.conf

在配置文件中,我们添加以下的内容

security:
    authorization: enabled

接下来,我们重启mongodb,生效我们刚刚的配置

sudo service mongod restart

添加单个数据库的用户权限

首先我们先输入mongo进入数据库,之后我们使用use admin切换至admin数据库,然后我们使用admin账户校验身份,这样我们就可以为其它的数据库添加新用户了。

mongo
use admin
db.auth("admin", "abc123")

接下来我们创建并使用一个名为test的测试数据库,并为其创建一个名为testUser,密码为test123的用户

use test
db.createUser(
  {
    user: "testUser",
    pwd: "test123",
    roles: [ { role: "dbOwner", db: "test" } ]
  }
)

我们为testUser用户赋予了dbOwner权限,保证testUser用户有操作所有collection读和写的权限

点击此处了解更多dbOwner角色的信息

连接mongodb

接下来我们可以使用以下的字符串来连接我们上面例子中创建的mongodb数据库,它的数据库名为test,用户名为testUser,密码为test123

mongodb://testUser:test123@localhost/test

您可以按照您的实际情况进行调整

修改bindIp使远程端可以访问

mongodb默认情况下是只允许本地端口,也就是127.0.0.1访问,如果我们希望别的机器也可以访问,此时我们需要修改配置文件,来允许别的机器访问 输入以下指令编辑配置文件

vim /etc/mongod.conf

我们将默认的127.0.0.1端口,修改为如下图所示的0.0.0.0,此种情况下允许所有机器访问次mongodb实例

修改配置文件

⚠️⚠️⚠️⚠️警告⚠️⚠️⚠️⚠️

请一定注意如果开启0.0.0.0允许所有机器访问时,请在你的防火墙内设置仅允许你特定ip的机器访问,如果是云主机,可以在你的网络安全组中配置27107端口的ip访问限制,这样可以加强安全性,保证你的mongodb数据库不会被入侵导致数据丢失