深圳外贸建站模版,php开发网站流程,创办公司需要多少资金,微网站预约网站开发[MongoDB]-权限验证管理
senge | 2023年9月 背景说明#xff1a;现有两套MongoDB副本集群给开发人员使用时未开启认证。 产生影响#xff1a;用户若输入账号以及密码则会进行校验#xff0c;但用户可以在不输入用户名和密码的情况下也可直接登录。 倘若黑客借此进行攻击勒索…[MongoDB]-权限验证管理
senge | 2023年9月 背景说明现有两套MongoDB副本集群给开发人员使用时未开启认证。 产生影响用户若输入账号以及密码则会进行校验但用户可以在不输入用户名和密码的情况下也可直接登录。 倘若黑客借此进行攻击勒索后果是比较严重的。所以下面我们一起为我们的集群增加认证。
当前版本4.4.15
1. 生成Keyfile文件
某个节点下面进行操作
openssl rand -base64 753 /data/mongodb/etc/mongo.keyfilechmod 600 /data/mongodb/etc/mongo.keyfile将生成的文件复制到其他节点:
scp /data/mongodb/etc/mongo.keyfile userhost:/dir2. 修改配置文件
# 配置文件末尾添加
security:keyFile: /xxx/mongo.keyfileauthorization: enabled3. 重启实例
可以先将slave节点停止再重启Primary节点后启动slave节点这样不会更改主节点。
4. 验证集群状态 rs.status()health : 1 即为某节点正常
5. 用户角色
在增加认证登录后我们还可以对用户的权限进行设置增加安全性。
5.1 创建用户 use admin db.createUser({user:username,pwd:xxxxxx,roles:[{role:xxx,db:xxx}]}
)关于 role 有以下几种 5.2 修改用户密码 use admin db.changeUserPassword(用户名,新密码); db.auth(用户名,新密码);
5.3 用户赋权
db.grantRolesToUser(username,[{ role: xxxx, db: xxxx }]
)不会影响已有权限
5.4 回收权限
db.revokeRolesFromUser(username,[{ role: xxxx, db: xxxx }]
)5.5 更新用户
db.updateUser(username,{customData: { info: user for username },roles: [{ role: dbabd, db: admin },{ role: read, db: admin }]}
)customData: 账户信息描述
到此我们的对于MongoDB的权限介绍就结束了如果不对之处敬请指正溜啦~~