Couchbase Analytics Java Создание соединения SDK + роли безопасности - PullRequest
4 голосов
/ 11 февраля 2020

Я использую Couchbase Java SDK для запроса службы аналитики couchbase. Процесс описан в этом руководстве: https://docs.couchbase.com/java-sdk/2.7/analytics-using-sdk.html

В Java SDK предоставляется объект Bucket в качестве средства доступа к базе данных. Однако ведро - это отдельная сущность из набора данных аналитики. Например, моя корзина называется data, и у меня есть набор данных аналитики, который я хочу запросить, называется requests.

Я не могу найти способ подключения только к данным requests набор. SDK будет подключаться только к корзине data. Оттуда я могу запросить набор данных requests, написав какой-нибудь N1QL. Этот обходной путь означает, что учетные данные пользователя, которые я использую для выполнения аналитических запросов, также должны иметь доступ к моему основному рабочему сегменту data, который я бы предпочел предотвратить.

Есть ли способ просто подключиться к набору данных аналитики с помощью SDK?

Код, который я сейчас создаю, выглядит так:

public class CouchbaseConfig {

  @Bean
  public Bucket bucket(CouchbaseProperties properties) {
    return cluster().openBucket("data"); // Changing this to the data-set name returns error
  }

  private Cluster cluster() {
    Cluster cluster = CouchbaseCluster.create("localhost");
    cluster.authenticate("Administrator", "password");
    return cluster;
  }

}

Использование данных requests заданное имя в имени сегмента приводит к этой ошибке:

Failed to instantiate [com.couchbase.client.java.Bucket]: Factory method 'bucket' threw exception; nested exception is com.couchbase.client.java.error.BucketDoesNotExistException: Bucket "requests" does not exist.

Использование имени сегмента data, но аутентификация имени пользователя / пароля "analytics-reader" / "password" (только с Analytics Reader) ролями приводит к этой ошибке:

Could not load bucket configuration: FAILURE({"message":"Forbidden. User needs one of the following permissions","permissions":["cluster.bucket[data].settings!read"]})

Единственное, что я нашел, - это предоставил пользователю analytics-reader «Доступ к приложению» к «корзине» данных

1 Ответ

4 голосов
/ 11 февраля 2020

Подключение напрямую к аналитике возможно с SDK3 и Couchbase 6.5. Во всех предыдущих версиях (включая SDK 2.7) единственный способ запрашивать аналитику - это сначала подключиться к корзине.

...