Создание соединения Couchbase Analytics Java SDK + роли безопасности

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

Java SDK предоставляет объект Bucket как средство доступа к couchbase. Однако корзина - это отдельный объект от набора данных аналитики. Например, моя корзина называется 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" / "пароль" (только с 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 пользователю «доступ к приложению» к корзине данных ????


person robjwilkins    schedule 11.02.2020    source источник


Ответы (1)


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

person deniswsrosa    schedule 11.02.2020