MongoDB从入门到放弃(五)

6、安全认证

默认情况下,MongoDb实例启动运行时是没有启用用户访问权限控制的。

  • 启用访问权限控制

    MongoDB实例启动时使用选项–auth 或在指定启动配置文件中添加选项auth=true

mongod.conf中:

security:
    authorization: enabled

开启权限控制后,登录后要先验证:

db.auth('用户名','密码')
角色权限
read读取指定数据库中任何数据
readWrite读写指定数据库中任何数据
readAnyDatabase读取任意数据库中任何数据(除了数据块config和local之外)
readeWriteAnyDatabase读写任意数据库中任何数据(除了数据块config和local之外)
userAdminAnyDatabase可以在指定数据库创建和修改用户(除了数据块config和local之外)
dbAdminAnyDatabase可以读取任何数据库以及对数据块进行清理、修改、压缩、获取统计信息、执行检查等操作(除了数据块config和local之外)
dbAdmin可以读取任何数据库以及对数据块进行清理、修改、压缩、获取统计信息、执行检查等操
userAdmin可以在指定数据库创建和修改用户
clusterAdmin可以对整个集群或数据库系统进行管理操作
backup备份数据最小的权限
restore从备份文件中还原,恢复数据(除了system.profile)的权限
root超级权限
db.createUser({user:"myroot",pwd:"123456",roles:["root"]})
// 创建普通用户并指定数据库
db.createUser({user:"myroot",pwd:"123456",roles:[{role:"readeWrite", db:"tangyedb"}]})
// 查看已经创建了的用户的情况:
db.system.users.find()
// 删除用户
db.dropUser("myroot")
// 修改密码
db.changeUserPassword("myroot","1234567")

6.1、副本集安全认证

副本集中,主节点、从节点、仲裁节点之间是通过Key来认证的,每个节点上都有一个Key文件且文件都一致

在主节点中创建的用户,会同步到从节点,从节点中无需重复创建

6.1.1 创建副本集认证的key文件

// base64加密方式, 生成90位长度
openssl rand -base64 90 -out ./mongo.keyfile
// 将权限改为只对当前用户可读(这一步可以不要)
chmod 400 ./mongo.keyfile 

提示: 所有副本集节点必须使用同一份keyfile,最好先在宿主机上生成,然后拷贝到docker容器中,且文件必须有读的权限

然后SFTP到容器中,自己定义的目录下

修改mongod.conf文件:

security:
    keyFile:/mongodb/replicaSets/mongo.keyfile
    authorization:enabled

6.2、分片集群安全认证

上面分片集群架构图中的每一个节点上都需要一个keyfile

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值