【问题标题】:mongoose unable to connect authorized db猫鼬无法连接授权数据库
【发布时间】:2017-01-18 10:51:04
【问题描述】:

我在 ubuntu 16.04 上安装了 mongodb 3.4.1 并将它们托管在数字海洋上。

我的本​​地 mongo 客户端是 mongochef 4.5.2

起初,我没有为我的应用设置授权,它被黑了,并被要求用比特币作为赎金。 所以我尝试设置授权。但是,遇到了一个连线问题,一旦在 /etc/mongo.conf 中设置了authorization: enable。无法通过mongoose远程和本地连接数据库,报错auth failed。但它可以与终端和mongoChef连接。

这是我与猫鼬的联系

global.db=mongoose.connect('mongodb://admin:admin123@ip:27017/nodedb');

我也试过了

var options = {
 user : "admin",
 pass : “admin123",
 auth : {authMechanism: 'MONGODB-CR'}
} global.db = mongoose.connect('mongodb://@ip:27017/test',options);

并且还在本地用localhost和127.0.0.1更改了ip,同样失败。

以防 localhost 和 127.0.0.1 无法识别。还要在 /etc/hosts 中设置配置:

127.0.0.1 本地主机 127.0.0.1 计算名

更新~:

我的管理数据库中有两个用户。一种是root用户。另一个是管理员,密码为 admin123,它验证了 DB nodedb

真的被这个问题累死了,有没有人遇到过这个问题???

【问题讨论】:

    标签: node.js mongodb express


    【解决方案1】:

    您尚未指定 authSource(对其进行身份验证的数据库)。因此,如果authSourceadmin,则应在连接选项中指定。

    options = {
        "auth": {
            "authSource": "admin"
        },
        "user": "apiuser",
        "pass": "admin123"
    };
    
    // If host=localhost, port=27017 and database name=nodedb
    mongoose.connect('mongodb://localhost:27017/nodedb', options);
    

    【讨论】:

    • 谢谢桑塔努。我尝试了您的解决方案,但问题相同。请参阅上面与用户相关的其他更新。
    【解决方案2】:

    身份验证在数据库级别完成。在您的连接字符串中,db 是 nodedb,但您的密码存储在 admin 数据库中。您可以通过将用户添加到此数据库或使用 --authenticationDatabase admin 为身份验证定义 db 来连接到 nodedb。你可以在这里阅读更多。 更多信息请查看手册http://docs.mongodb.org/manual/reference/privilege-documents/

    【讨论】:

    • 感谢新手。我已经在nodedb中添加了一个用户admin:admin123。尽管此用户已通过 nodedb 的身份验证。但它实际上存储在管理数据库中。 MongoDB中的所有用户都需要存储在admin中吗??
    【解决方案3】:

    从终端(mongosh)访问您的 nodedb,然后显示用户。然后检查您的用户角色。如果 nodedb 数据库不存在,则将 readWrite 角色添加到用户。

        use nodedb
        show users
        db.grantRolesToUser('admin',[{role:'readWrite', db:'nodedb'}])
    

    【讨论】:

      猜你喜欢
      • 2012-02-02
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 2021-05-15
      • 2018-03-14
      • 2022-01-15
      • 1970-01-01
      相关资源
      最近更新 更多