在 sails 中使用与 admin 不同的 mongo 数据库
Using different mongo database than admin in sails
我正在努力连接到 mongodb 数据库,该数据库使用名为 "dbadmin" 的数据库进行身份验证。我所在的 DBA 决定将所有用户集中在一个用户数据库中。
我可以连接到这个 "dbadmin" 数据库,但是 sails 抱怨它无法在那里创建集合。
如何使用身份验证数据库,然后使用不同的数据库进行收集?
您可以在连接配置文件中定义两个数据库连接,然后您可以直接在数据模型中传递连接
看例子:
在你的配置文件中
// 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' }
}
};
注意:您不能在这两个模型之间进行任何收集。
原来使用URL连接的可能性更大。所以我所要做的就是在末尾追加 authSource=dbadmin
module.exports = {
models: {
connection: 'mongoRM'
},
connections: {
mongoRM: {
adapter: 'sails-mongo',
url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin'
}
}
}
我正在努力连接到 mongodb 数据库,该数据库使用名为 "dbadmin" 的数据库进行身份验证。我所在的 DBA 决定将所有用户集中在一个用户数据库中。
我可以连接到这个 "dbadmin" 数据库,但是 sails 抱怨它无法在那里创建集合。
如何使用身份验证数据库,然后使用不同的数据库进行收集?
您可以在连接配置文件中定义两个数据库连接,然后您可以直接在数据模型中传递连接 看例子:
在你的配置文件中 // 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' }
}
};
注意:您不能在这两个模型之间进行任何收集。
原来使用URL连接的可能性更大。所以我所要做的就是在末尾追加 authSource=dbadmin
module.exports = {
models: {
connection: 'mongoRM'
},
connections: {
mongoRM: {
adapter: 'sails-mongo',
url: 'mongodb://user:password@db_url:port/database?authSource=dbadmin'
}
}
}