V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
ohyeahhh
V2EX  ›  MongoDB

MongoDB 3.4 远程连接时老是报 Authorization failed,有没有会 Mongo 的大佬进来帮忙解决一下

  •  
  •   ohyeahhh · 2019-03-31 23:49:43 +08:00 · 8415 次点击
    这是一个创建于 2093 天前的主题,其中的信息可能已经有所发展或是发生改变。
    项目最近用到了 mongo 分库分表,之前的 mongo 连接是由 spring 管理的,分表后在代码中重新用了一个连接,发布的时候老是会报 Authorization failed,开始发现是新库没有用户,于是乎新建了一个用户,在 Studio 3T 上是可以连接上的,但是在代码中一直报异常,想问下有没有对 mongo 比较熟悉的大佬帮忙看看
    8 条回复    2019-04-02 09:20:41 +08:00
    JCZ2MkKb5S8ZX9pq
        1
    JCZ2MkKb5S8ZX9pq  
       2019-04-01 01:09:02 +08:00
    我自己用的一个库,一开始 admin 的确也有问题,建个 root 就 ok 了,还没试过太细的管理。
    lincanbin
        2
    lincanbin  
       2019-04-01 01:30:57 +08:00 via Android
    连接字少了一些 options 吧
    yuikns
        3
    yuikns  
       2019-04-01 06:50:42 +08:00
    没用过 spring 连 mongo。

    Authorization failed 常见的问题是数据库的用户对不上。要是你的数据库用户来自 admin, 那么你可以设置一下 authdb. 否则可以先 admin 登录,然后

    use new_db;

    db.createUser({"user":"your_username","pwd":"your_password","roles":["root","dbAdmin","dbOwner"]});


    另外一个需要考虑的是 mechanism。scram-sha-1/mongodb-cr 需要匹配才行。很多 driver 貌似是要手动设置的。
    ohyeahhh
        4
    ohyeahhh  
    OP
       2019-04-01 20:00:51 +08:00
    @yuikns
    大概率确实是数据库的用户对不上,但是我还有一个问题想请教一下,如果我针对不同的库使用相同的用户是否可行呢
    yuikns
        5
    yuikns  
       2019-04-01 22:49:15 +08:00 via iPad
    @ohyeahhh 用户名是数据库里面的。因此两个数据库使用相同用户名并不干扰
    yuikns
        6
    yuikns  
       2019-04-01 22:56:02 +08:00 via iPad
    通常情况下,每个数据库定义一组独立的用户是出于安全考虑。但是你也可以在某个数据库下创建一个跨数据库的用户。这个只要定义好 role 字段即可。

    我查了下 mongodb 中 Spring 相关的问答 https://stackoverflow.com/questions/46934427/connect-to-multiple-mongo-db-hosts-and-authenticate-using-a-different-database-i

    貌似那个字段叫人 source。就是你如果在 admin 中有个可以高权限的用户,那么你可以设置 source 为 admin,user/pass 就是 admin 的那套。但是 /database 用你需要用的那个就行
    ohyeahhh
        7
    ohyeahhh  
    OP
       2019-04-02 00:21:07 +08:00
    @yuikns 对对对,你说的每个点都戳中了要害,今天查看日志的时候也发现了那个 source 好像有问题,在这码字可能一时半会儿说不清,我的 QQ 是 1439581267,如果方便的话麻烦加我一下,我跟您说清楚一点,好好请教一番,谢谢啦;也是刚入 mongo 不久,项目主城刚走,这块儿还不太熟悉
    yuikns
        8
    yuikns  
       2019-04-02 09:20:41 +08:00
    @ohyeahhh 抱歉基本不上 qq。

    连接和用户什么,可以试试多看看官方文档。https://docs.mongodb.com/manual/reference/method/js-user-management/

    右侧的 GUI 工具 robomongo 也是极好的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5880 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:10 · PVG 14:10 · LAX 22:10 · JFK 01:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.