同一集群内,不同DB是否能使用不同认证方式?


  • Lv 1

    同一集群内,因为程序需要使用旧有的认证方式MONGODB-CR,但是其他DB用的是预设的SCRAM-SHA-1的认证方式
    是否可以并存2个不同的认证方式呢?

    ![0_1490670812335_upload-a8fb3340-4b3d-4354-b52c-1cbdaa71d289](上傳中 0%)

  • Lv 1

    不考慮統一?   未來也比較好維護


  • V

    @PTL 修改system.version 的 authSchema版本為3, default 是 5

    > use admin 
    switched to db admin
    >  var schema = db.system.version.findOne({"_id" : "authSchema"})
    > schema.currentVersion= 3
    3
    > db.system.version.save(schema)
    然後再創建用戶, 該用戶就會是用 MONGODB-CR認證方式, 所以登入驗證是看創建用戶時是用哪個版本的. 
    {
        "_id" : "admin.peter",
        "user" : "peter",
        "db" : "admin",
        "credentials" : {
            "MONGODB-CR" : "4bbb5dc38596aed15e8eb8ead050f4ff"
        }


  • 大中华区MongoDB顾问

    可以做得到,但是不建议这样做。如果你已经有了SCRAM-SHA-1的用户,说明你的system.version中已经是authSchema=5,所以将来的所有新用户都将是SCRAM-SHA-1,包括MONGODB-CR的那些用户,一旦有任何更新,也会更新为SCRAM-SHA-1。

    如果Java驱动版本足够新,它应该能够自己选择账户的类型是MONGODB-CR还是SCRAM-SHA-1,切忌自己在连接字符串或者代码中指定,因为将来一量发生账户更新,你的指定可能就是错的。

    其实在升级到3.0的过程中,理论上如果你们有按照文档所示走完所有更新流程,账户中应该已经没有MONGODB-CR了,并且MONGODB-CR因为安全性不如SCRAM-SHA-1,已经不推荐使用。所以为什么不早点更新所有的账户呢?


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待