千家信息网

MongoDB中怎么实现用户管理

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关MongoDB中怎么实现用户管理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。● 条件一:服务器启动的时候打开
千家信息网最后更新 2026年11月02日MongoDB中怎么实现用户管理

本篇文章给大家分享的是有关MongoDB中怎么实现用户管理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。


● 条件一:服务器启动的时候打开授权认证。
● 条件二:需要配置用户名和密码。
但是需要明确的是,如果要想配置用户名和密码,一定是针对一个数据库的,例如现有要创建的是stone数据库用户,那么就必须切换到stone数据库上。

范例:执行用户的创建
任何用户都必须具备一个自己的操作角色:read、readWrite
> use admin
switched to db admin
> db.createUser({
... "user":"root",
... "pwd":"root",
... "roles":[{"role":"root","db":"admin"}]
... })
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}

> use hr
switched to db hr
> use hr
switched to db hr
> db.createUser({
... "user":"stone",
... "pwd":"stone",
... "roles":[{"role":"readWrite","db":"hr"}]
... })
Successfully added user: {
"user" : "stone",
"roles" : [
{
"role" : "readWrite",
"db" : "hr"
}
]
}

那么现在就表示成功的创建了stone用户。那么如果要想让次用户名起作用,则必须以授权的方式打开MongoDB服务。修改MongoDB的参数文件。

范例:修改参数文件,增加授权启动
[root@D2-LZY245 ~]# vim /usr/local/mongodb/mongodb.conf
dbpath=/usr/local/mongodb/db
logpath=/usr/local/mongodb/log/mongodb.log
logappend=true
auth=true
port=27017
fork=true

重启数据库:
> use admin
switched to db admin
> db.shutdownServer();

[root@D2-LZY245 ~]# mongod -f /usr/local/mongodb/mongodb.conf
about to fork child process, waiting until server is ready for connections.
forked process: 25987
child process started successfully, parent exiting

[root@D2-LZY245 ~]# mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
> use stone
switched to db stone
> db.emp.find();
Error: error: {
"ok" : 0,
"errmsg" : "not authorized on stone to execute command { find: \"emp\", filter: {} }",
"code" : 13,
"codeName" : "Unauthorized"
}

此时增加了一个验证的启动模式,发现依然可以在不输入用户名和密码的前提下进行登录,并且也可以直接进行数据库的切换操作。但是在使用数据库集合的时候出现了错误提示。

范例:登录数据库的时候使用用户名和密码
[root@D2-LZY245 ~]# mongo -u "stone" -p "stone" --authenticationDatabase "hr"
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7

或者:

[root@D2-LZY245 ~]# mongo
MongoDB shell version v3.4.7
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.7
> use hr
switched to db hr
> db.auth("stone","stone")
1

此时就表示成功的实现了用户的登录操作。

范例:修改密码
[root@D2-LZY245 ~]# mongo -u root -p 'root' --authenticationDatabase 'admin'
> db.changeUserPassword("stone","stone")

范例:查看用户及角色
> use admin
switched to db admin
> db.system.users.find();
{ "_id" : "test.stone", "user" : "stone", "db" : "test", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "boSLJ2acqh503AW0MZO7yA==", "storedKey" : "Y7zaryoqOiedeKsVs61SrAMAK8c=", "serverKey" : "+wa0fO2hwNrLRIuVmtJMvR1AJv0=" } }, "roles" : [ { "role" : "readWrite", "db" : "hr" } ] }
{ "_id" : "admin.root", "user" : "root", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "NmiMDfzuCnkO1CRKrVUV9A==", "storedKey" : "rD6NaqsfON8h0YMNv6idPKUpac0=", "serverKey" : "9MXDynhFSNmHEkMIMfxnSKdQPio=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
{ "_id" : "hr.stone", "user" : "stone", "db" : "hr", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "69NLL2oWTg0OehrBwytbsw==", "storedKey" : "LRmPZjHZorxhfWA+RS6SgzLbev4=", "serverKey" : "59xkCl7qKK+HrKrlK5QMdGx94U8=" } }, "roles" : [ { "role" : "readWrite", "db" : "hr" } ] }


以上就是MongoDB中怎么实现用户管理,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

用户 数据 数据库 密码 用户名 范例 时候 登录 管理 成功 参数 文件 更多 条件 知识 篇文章 角色 切换 服务 配置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 哈尔滨大商圈互联网科技有限公司 互联网科技英文 互联网高科技企业 天扬科技互联网广告 镁科技互联网资讯平台 四个字互联网科技公司取名 卫星互联网科技股票 银川新华互联网科技职业技术培训学校图片 花神(南京)互联网科技有限公司 青海科技产业互联网发展 保险科技服务互联网营销体系 2021互联网科技公司排名 济南小医互联网科技有限公司招聘 广州梦谷互联网科技有限公司领导 互联网科技平台产品运营 互联网科技机房 玉溪新华互联网科技怎么选 山东亿川互联网科技有限责任公司 株洲百竞科技的互联网营销顾问 上海互联网科技有限公司 互联网科技金融公司 互联网与新科技 友谊互联网络科技 互联网科技的未来发展 科技互联网大厂 移动互联网年度科技创新 智帮互联网科技公司最近动向 互联网企业和网络科技有限公司 山东亿川互联网科技有限责任公司
0