博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB用户权限管理
阅读量:2338 次
发布时间:2019-05-10

本文共 1257 字,大约阅读时间需要 4 分钟。

MySQL的登录验证方式为:用户名+密码+IP+端口号

MongoDB的登录验证方式为:用户名+密码+IP+端口号+验证库

 

验证库,建立用户时use到的库,在使用用户登录时,要加上验证库才能登录。对于管理员用户,必须在admin下创建

1 建用户时,use到的库,就是次用户的验证库(也就是use进哪个库后创建的账号,就是该用户的验证库)
2 登录时必须明确指定验证库才能登录
3 登录时,管理员用的验证库是admin库,普通用户的验证库一般是所管理的库设置为验证库
4 如果直接登录到数据库,不进行use,默认的验证库是test,不是生产建议的

 

案例:

1 创建超级管理员用,管理所有数据库(必须use到admin库)

use admin

db.createUser({ user: "root", pwd: "root123", roles: [ { role: "root", db: "admin" } ] })

基本语法说明

user:用户名
pwd:密码
roles:
    role:角色名
    db:作用对象

role(角色)有三种:root,readWrite,read

在mongodb中进行认证

db.auth('root','root123')

 

开启用户验证功能

修改配置文件

cat >> /mongodb/conf/mongo.conf <

mongod -f /mongodb/conf/mongo.conf --shutdown

mongod -f /mongodb/conf/mongo.conf

 

重启后登录

mongo -uroot -proot123 192.168.2.100/admin   (/admin就是验证库)

这个时候用 mongo也是可以登录的,但是进去不能做任何操作

 

2 创建对app数据库,读、写权限的app01用户

use app

db.createUser({ user: "app01", pwd: "123456", roles: [ { role:"readWrite", db: "app" } ]})

db.auth('app01','123123')

 

登录验证

mongo -uapp01 -p123123 192.168.2.100/app

这里可以看到不加/app验证库是远程登录不了的

 

删除用户

db.dropUser('app01')

注:删除用户要进入到该用户的验证库才能删除成功

 

3 创建app数据库读写权限的用户app03用户,并对test数据库具有读权限

use app

db.createUser({ user: "app03", pwd: "123456", roles: [ { role:"readWrite", db: "app" }, { role: "read", db: "test" } ]})

 

查看所有用户及权限(用户信息保存在admin库中的system.users表)

db.system.users.find()

 

 

 

 

转载地址:http://fqepb.baihongyu.com/

你可能感兴趣的文章
XAVC
查看>>
详解HDR的三个标准——HLG/HDR10/Dolby Vision
查看>>
流言终结者 1080P全高清都等于高画质?
查看>>
PSNR指标值
查看>>
灰度图像-图像增强 中值滤波
查看>>
两种HDR格式(HLG, HDR10)的理解
查看>>
视频主观质量对比工具(Visual comparision tool based on ffplay)
查看>>
HDMI 接口及CEC信号
查看>>
H.264专利介绍
查看>>
YUV格式小结
查看>>
log4j2.xml实用例子
查看>>
Dockerfile中的CMD和ENTRYPOINT有什么区别?
查看>>
jQuery提示和技巧
查看>>
是否可以在Python中将长行分成多行[重复]
查看>>
使用pip找不到TensorFlow
查看>>
命令行上的Node.js版本? (不是REPL)
查看>>
你什么时候使用Builder模式? [关闭]
查看>>
在jQuery中每5秒调用一次函数的最简单方法是什么? [重复]
查看>>
如何在Windows上安装和使用curl?
查看>>
Angular 2+中的ngShow和ngHide等效于什么?
查看>>