mongodb 创建只读用户

关闭mongo

#先找到mongo的进程
ps -ef | grep mongo
kill -9  {pid}

先停止mongodb的进程

修改配置文件mongo.conf

dbpath=/opt/sumscope/mongodb/data/db
logpath=/opt/sumscope/mongodb/logs/mongodb.log
logappend=true
port=27017
fork=true
verbose=vv
bind_ip = 0.0.0.0
maxConns=100
pidfilepath =/opt/sumscope/mongodb/bin/mongo.pid
cpu = true
auth=true //是否开启权限验证
把权限认证先关闭,设置为false
重新启动mongodb,进入到mongo的bin目录下面

./mongod -f mongodb.conf

创建用户

mongo启动成功后

  1. 进去admin
use admin
  1. 创建mongo库
use STC

创建好之后再切换会admin库

use admin
  1. 创建用户
# 读写用户
db.createUser({user:"tbook",pwd:"tbook",roles:[{role:"readWrite",db:"STC"}]})
# 只读用户
db.createUser({user:"tbookread",pwd:"tbookread",roles:[{role:"read",db:"STC"}]})

4.查看创建的用户

#查看所有的用户
db.system.users.find().pretty()

在这里插入图片描述

# 查看当前库的用户
show users;

在这里插入图片描述

  1. 停止mongo,修改配置文件
    配置文件的auth要设置为true
auth=true  //权限认证开启

然后关闭mongo,重新启动mongo

创建用户登录

读写用户登录,并且创建集合案例
读写用户登录

./mongo --port 27017 -u "tbook" -p "tbook" --authenticationDatabase "STC"

在这里插入图片描述
进入设置的读写数据库

use STC

创建STC库中的集合

db.createCollection("test")

在这里插入图片描述
只读用户登录

./mongo --port 27017 -u "tbookread" -p "tbookread" --authenticationDatabase "STC"

在这里插入图片描述
只读用户创建集合

db.createCollection("test1")

在这里插入图片描述
只读用户不允许创建集合
查询读写用户创建的test集合

show tables;

在这里插入图片描述
查询集合数据
在这里插入图片描述

角色权限解读

Built-In Roles(内置角色):

数据库用户角色:read、readWrite。
数据库管理角色:dbAdmin、dbOwner、userAdmin。
集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager。
备份恢复角色:backup、restore。
所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase。
超级用户角色:root 还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)。
内部角色:__system。

具体角色:

Read:允许用户读取指定数据库。
readWrite:允许用户读写指定数据库。
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问。
userAdmin:允许用户向 system.users 集合写入,可以找指定数据库里创建、删除和管理用户。
clusterAdmin:只在 admin 数据库中可用,赋予用户所有分片和复制集相关函数的管理权限。
readAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读权限。
readWriteAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的读写权限。
userAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 userAdmin 权限。
dbAdminAnyDatabase:只在 admin 数据库中可用,赋予用户所有数据库的 dbAdmin 权限。
root:只在 admi n数据库中可用。超级账号,超级权限。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无奈的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值