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

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

Java SDK предоставляет объект Bucket как средство доступа к базе данных couch. Однако ведро - это отдельная сущность из набора данных аналитики. Например, моя корзина называется 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 ответ


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


Есть идеи?

10000