首页 > 代码库 > MongoDB开启用户名密码验证

MongoDB开启用户名密码验证

mongodb将所有的用户信息存在admin数据库的集合system.users中,这些信息主要包括用户名、密码和数据库信息。mongodb默认不启用授权认证,只要能连接到该服务器,就可连接到mongod。若要启用安全认证,Windows下需要更改注册表,Linux下则要更改配置文件。这里只介绍Windows下的操作。

一、创建管理员用户

1 用show dbs查看数据库,发现找不到admin数据库

技术分享

2 创建用户admin

db.createUser(

{

"user":"admin",

"pwd":"admin",

roles:[{role:"userAdminAnyDatabase",db:"admin"}]

}

)

技术分享

上图显示成功创建admin用户。

3 再查询所有数据库,可以看到admin数据库被显示出来

技术分享

4 查询集合和集合中的数据

技术分享

5 开启登录验证

进入系统注册表,找到[HKEY_LOCAL_MACHINE-->SYSTEM-->CurrentControlSet-->Services-->MongoDB]在右边的健-值列表中找到 “ImagePath”

技术分享

在ImagePath对应的值中添加--auth,即

"D:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath=e:\db "--logpath=D:\Program Files\MongoDB\Server\3.2\logs\mongodb.log" --auth --service

改完之后,重启MongoDB服务,

技术分享

6 用非验证方式登录Mongodb,并查询集合,报没有权限的错误

技术分享

7 使用用户名密码来登录

技术分享

返回值为1,说明登录成功。

8 再查询集合,可以正常显示结果

技术分享

二、创建普通用户

> use test

> db.createUser(

{

user: "test1",

pwd: "test1",

roles: [ { role: "readWrite", db: "test" } ]

}

)

技术分享

上图显示用户创建成功

使用用户名和密码登录,并查询集合

技术分享

MongoDB开启用户名密码验证