Mongoose中的Mongoose身份validation数据库2.6
除了系统pipe理员 ,我还有数据库A , B , C
我想添加一个已经读写访问A , B , C的用户 。
// attempt 1 use admin db.createUser({ user: "Bob", pwd: "1234", roles: [ { role: "readWriteAnyDatabase", db: "admin" } ] })
。
// attempt 2 use admin db.createUser({ user: "Bob", pwd: "1234", roles: [ { role: "readWrite", db: "A" }, { role: "readWrite", db: "B" }, { role: "readWrite", db: "C" } ] })
对于这些尝试,用户存储在数据库pipe理员 。 那么我怎样才能使用pipe理员进行身份validation,但在A , B , C之一执行操作?
var uri = 'mongodb://localhost/A'; var opts = { user: 'Bob', pass: '1234', auth: { authDb: 'admin' } }; mongoose.connect(uri, opts); // auth fails
我唯一的解决scheme,分别添加一个用户在每个A , B , C ? 防爆。
use A db.createUser({...}) use B db.createUser({...}) use C db.createUser({...})
似乎愚蠢。
最简单的方法是在uri中指定authSource
const uri = 'mongodb://monguser:mongpass@192.168.2.2:27017/ps?authSource=admin';
看来你必须为每个数据库使用一个Mongoose连接。 在单个node.js项目中查看Mongoose和多个数据库 。