无法在云数据库MongoDB中进行MONGODB-CR认证

问题描述

在使用MongoDB时,只能采用SCRAM-SHA-1认证,不能采用MONGODB-CR认证 。 修改配置schema.currentVersion=3时,出现以下报错。

WriteResult({
        "writeError" : {
                "code" : 13,
                "errmsg" : "not authorized on admin to execute command { 
                            update: \"system.version\", updates: [ { q: { _id: \"authSchema\" }, 
                            u: { _id: \"authSchema\", currentVersion: 3 }, 
                            multi: false, upsert: true } ], ordered: true }"
        }
})

问题原因

MONGODB-CR认证方式存在安全问题,云数据库MongoDB版不支持该认证方式,只支持默认的SCRAM-SHA-1认证。

解决方案

该问题无解决方案,属于产品设计所限。

更多信息

SCRAM-SHA-1是当前推荐使用的认证方式,以下是SCRAM-SHA-1认证时的流程:

  1. 客户端发起一个SCRAM认证请求。

  2. 服务端发出一个挑战响应。

  3. 客户端响应一个证明数据和合并字符串。

  4. 服务端将存储的密钥结合随机参数,使用同样的算法生成签名并校验客户端证明数据。

  5. 客户端校验服务端签名数据。

SCRAM-SHA-1认证相比MONGODB-CR认证的优势有下列几个方面:

  • 可灵活调整的安全系数。

  • 每个用户有独立的随机系数。

  • 更安全的HASH函数。

  • 支持双向认证。

适用于

  • 云数据库MongoDB