首页 文章

在风帆中使用不同于管理员的mongo数据库

提问于
浏览
1

我正在努力将sails连接到mongodb数据库,该数据库使用名为“dbadmin”的数据库进行身份验证 . 我在哪里DBA决定将所有用户集中在用户数据库中 .

我可以连接到这个“dbadmin”数据库但是然后sails抱怨它无法在那里创建集合 .

如何使用身份验证数据库,然后使用不同的数据库进行收集?

2 回答

  • 0

    您可以在连接配置文件中定义两个数据库连接,然后可以直接在数据模型中传递连接,请参阅示例:

    在配置文件中// server / config / connections.js

    dbadmin: {
        adapter: 'sails-mongo',
        host: 'dbadmin-host',
        port: 27017,
        user: 'username', 
        password: 'password', 
        database: 'dbadmin'
      }
    
     dbuser: {
        adapter: 'sails-mongo',
        host: 'dbuser-host',
        port: 27017,
        user: 'username', 
        password: 'password', 
        database: 'dbuser'
      }
    

    现在你可以在你的模型中使用:// server / api / models / AdminUser.js

    module.exports = {  
      connection:'dbadmin',
      attributes: {
    
        name : { type: 'string' },
    
        pass : { type: 'string' }
      }
    };
    

    // server / api / models / Users.js

    module.exports = {  
      connection:'dbuser',
      attributes: {
    
        name : { type: 'string' },
    
        pass : { type: 'string' }
      }
    };
    

    注意:您不能在这两个模型之间进行任何收集 .

  • 0

    事实证明,使用URL进行连接有更多可能性 . 所以我所要做的就是追加到最后 authSource=dbadmin

    module.exports = {
    
        models: {
            connection: 'mongoRM'
        },
    
        connections: {
            mongoRM: {
                adapter: 'sails-mongo',
                url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin'
            }
        }
    }
    

相关问题