Я пытался решить эту проблему с доступом к моей облачной базе данных из сервисов IBM-bluemix. Я установил свой URL-адрес в студии Android следующим образом:
URL url = new URL("https://XXXX-XXXX-XXXX-XXXX-XXXX-bluemix.cloudant.com");
А затем попытаться получить к нему доступ:
CloudantClient client = ClientBuilder.url(url)
.username("myusername")
.password("mypassword")
.build();
Однако, когда я пытаюсь получить доступ/изменить что-либо в своей базе данных, бывший:
client.createDB("test_DB");
Я получаю сообщение об ошибке:
Error: unauthorized. Reason: one of _admin, server_admin is required for this request.
Что мне не хватает? Я видел много разных подходов к запросам из cloudant, но это самый близкий из тех, что я нашел.
Я только что совершенно неправильно понял, как работает запрос из существующей базы данных?
Я имею в виду, что что бы я ни делал, даже пытаясь перечислить все существующие базы данных, я все равно получаю ту же ошибку. Я установил все разрешения на панели инструментов Cloudant, но безрезультатно
Хм. Не использовал Cloudant, поэтому не знаю, что вам здесь сказать.
Похоже, у вашего имени пользователя нет необходимых прав для создания БД в Cloudant. Является ли этот пользователь пользователем только для чтения? В этом случае вам может потребоваться обновить разрешения в веб-консоли IBM bluemix.
Я прошел всех пользователей, даже добавил новые разрешения и включил все разрешения на несанкционированные подключения. Ничего не работает.




Попробуйте свои учетные данные, используя curl в командной строке (см. https://cloud.ibm.com/docs/services/Cloudant/tutorials?topic=cloudant-databases#databases)
Убедитесь, что ваша учетная запись принимает устаревшие учетные данные («имя пользователя и пароль») или токены IAM.
Если вы используете устаревший ключ API Cloudant, вы не сможете выполнять действия на уровне администратора учетной записи, такие как перечисление или создание баз данных, поскольку устаревшие ключи API связаны с конкретными базами данных, а не с учетной записью. Если это тот тип учетных данных, который вы используете, вы можете инициализировать клиент так, как вы это сделали, и получить существующую базу данных через:
Database db = client.database("test_DB", false);
Если у вас есть существующая база данных, вы наверняка не будете использовать метод
createDB().