我使用ScopedDbConnection,它在每个db操作中生成。如果我这样做:
mongo::ScopedDbConnection conn(host);
conn->auth(BSON("user"<<"user1"<<"pwd"<<"password1"));
...
conn.done();
这意味着每个db操作都会涉及auth进程,这是不必要的。在java驱动程序中,有一个DB类,它有一个authenticate函数,在“db.authenticate(...)”之后,所有后续操作都可以在每个数据库连接上执行而不是auth,就像上面的代码一样。
有没有办法在C ++驱动程序中只使用一次身份验证?
答案 0 :(得分:0)
考虑以下解决方案:
conn_ = new DBClientReplicaSet(...);
conn_->connect();
conn_->auth(BSON("user" << "xxx" << "password" << "xxx"));
然后您可以使用 conn _ 进行任何数据库操作。