Couchbase错误:查询受保护的存储桶Nodejs时身份验证失败

时间:2016-09-22 10:45:11

标签: node.js couchbase

下面是我在nodejs

中查询couchbase中的通过保护存储桶的示例代码
var couchbase = require("couchbase");
var cluster = new couchbase.Cluster("couchbase://127.0.0.1");
var N1qlQuery = couchbase.N1qlQuery;
var bucket = cluster.openBucket('bucketname', 'Admin123');
var  q = N1qlQuery.fromString('SELECT * FROM `bucketname`');
var  req = bucket.query(q);
req.on('row',  function (row) {    
    console.log('Got a row');
});
req.on('error',  function (err) {    
    console.error('Got error %j',  err);
    process.exit(0);
});
req.on('end',  function (meta) {    
    console.log('All rows received. Metadata is %j:',  meta);
    process.exit(0);
});

获得:
     CouchbaseError:身份验证失败。您可能提供了无效的用户名/密码组合

2 个答案:

答案 0 :(得分:0)

如果使用Cloudbase 5.0,则会集成用户和应用程序的基于角色的访问控制(RBAC)。

您应该与管理员用户或您创建的用户进行身份验证。

然后,不要忘记对cluster.authenticate的调用,如下所述:https://developer.couchbase.com/documentation/server/5.0/sdk/nodejs/start-using-sdk.html

var cluster = new couchbase.Cluster("couchbase://127.0.0.1");
cluster.authenticate(‘USERNAME’, ‘PASSWORD’);
var N1qlQuery = couchbase.N1qlQuery;
var bucket = cluster.openBucket('bucketname');

答案 1 :(得分:-1)

Admin123看起来像root密码。您必须提供特定存储桶的密码。在管理界面中为bucketname存储桶创建密码并传递此密码。

如果你没有设置它,它可能是空白的,所以

var bucket = cluster.openBucket('bucketname','');

可能适合你。