MONGO DB 启用验证

之前写过一篇文章介绍MongoDB下建立用户的,现在回头看,没有我在公司里记录的笔记完整,现特别将笔记完整贴过来

软件

Mongodb 3

描述

MongoDB安装后默认无用户,任何人均可特权访问,此教程指引设置超级管理员基于本地的MongoDB认证,只有经过认证后,用户才可访问数据库。

解决方案

1. 先创建用户,服务器下键入"mongo",进入MongoDB命令行环境,键入"use admin",进入系统数据库。随后键入下列内容以创建用户

> db.createUser({user:"超级管理员用户名",pwd:"超级管理员密码",roles:["root","root"]});

 

2. 启用验证,在配置文件 /etc/mongod.conf 中添加

security:
  authorization: enabled

 

3. 重启MongoDB服务以应用设置

# systemctl restart mongod

 

4. 使用密码登录数据库,启用验证后再进入mongo命令行界面,切换至任意数据库后,键入任意命令系统均提示未验证

> use admin
switched to db admin
> show tables;
2018-03-22T11:52:17.663+0800 E QUERY [thread1] Error: listCollections failed:
{

       "ok" : 0,
       "errmsg" : "not authorized on admin to execute command { listCollections: 1.0, filter: {}, $db: \"admin\" }",
       "code" : 13,
       "codeName" : "Unauthorized"

} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:941:1
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:953:19
DB.prototype.getCollectionNames@src/mongo/shell/db.js:964:16
shellHelper.show@src/mongo/shell/utils.js:809:9
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1

 

5. 在访问数据库前,进行一次认证即可。经过认证后即可访问全部数据

> db.auth("超级管理员用户名","超级管理员密码")1

 

6. 若要删除用户,可使用 db.system.users.remove 函数删除

建立用户时,也可指定其权限和数据库绑定,详细的命令行可参阅:
https://docs.mongodb.com/manual/reference/method/db.createUser/

 


  请注意,本站的所有文章均要求阁下在转载时注明出处和原作者,阁下转载本站文章即表示阁下同意并遵守此规程,除非特别注明转载出处,否则文章即为其发布者所著。本站及文章作者保留文章的著作权并有权在阁下违反上述规程时予以追究。

本文链接地址: MONGO DB 启用验证

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*