linux-基础服务

mongodb用户认证问题

2025-10-20  本文已影响0人  宇晨棒棒的

背景:项目连接mongodb-分片集群出现写入数据时,报认证失败,目前mongodb的版本是3.6.2

1、  用户验证方式更改:

Mongodb2.6的默认用户验证方式是:MONGODB-CR

Mongodb3.0的默认用户验证方式是:SCRAM-SHA-1

因为新的验证方式在spring和java中还有一些问题,因此现在项目中3.0的数据库依旧使用之前的验证方式。

2.目前mongodb是分片集群并建立认证机制,目前需要将配置文件中认证keyFile文件注释掉,重启mongodb服务。

3.把3.0的用户验证改为MONGODB-CR,过程如下:

(1)分别对mongos、shard1主节点、shard2主节点、shard3主节点进行操作

(2)查看版本: db.system.version.find();

         查看用户:db.system.users.find();

版本和用户截图

用户主要关注:credentials: SCRAM-SHA-1

版本主要关于:currentVersion=5

(3)删除root和educloud用户

use admin

db.system.users.remove({user:"root"})

db.system.users.remove({user:"educloud"})

(4)更改用户验证方式:

  use admin

 var schema = db.system.version.findOne({"_id" : "authSchema"})

schema.currentVersion = 3

db.system.version.save(schema)

(5)再次创建一个新的用户:

use amin

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

use educloud

db.createUser({"user":"educloud","pwd":"educloud111","roles":["dbOwner"]})

(6)再次查看版本: db.system.version.find();

         查看用户:db.system.users.find();

新版本用户认证

用户主要关注:credentials: MonGODB-CR

版本主要关于:currentVersion=3

(7)修改配置文件中认证keyFile文件注释去掉,重启mongodb服务

(8)登录mongos、mongos、shard1主节点、shard2主节点、shard3主节点查看用户认证和版本。

用户主要关注:credentials: MonGODB-CR

版本主要关于:currentVersion=3

备注:

如果是新mongodb,在修改用户认证的话,需要先创建用户,之后再修改更改用户验证方式,再删除用户,最后再重新建用户,查看确认用户认证机制。

上一篇 下一篇

猜你喜欢

热点阅读