MongoDB用户权限管理

MongoDB的用户验证包括用户名、密码、IP、端口号和验证库。管理员用户需在admin库创建,普通用户验证库为其管理的库。登录时必须指定验证库,如admin库用于管理员,其他用户通常对应其管理的数据库。案例展示了创建超级管理员、具有读写权限的用户以及删除用户的过程。
摘要由CSDN通过智能技术生成

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 <<EOF
security:
  authorization: enabled
EOF

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()

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值