2017-02-17 3 views
2

Хотя гаечный ключ выглядит захватывающим, документация для драйвера Simba JDBC (включенная в ссылки для загрузки здесь: https://cloud.google.com/spanner/docs/partners/drivers) относительно редка, особенно по сравнению с документацией для драйвера Simba JDBC BigQuery (https://cloud.google.com/bigquery/partners/simba-drivers/).Сканер Google: строки подключения JDBC?

В частности, документация упоминает только строку соединения: один

jdbc:cloudspanner://localhost;Project=simba-cloudspanner- jdbc;Instance=test-instance;Database=example-db 

... нет никакой информации о том, как определить, например, учетная запись службы и ее P12 учетные данные или путь к JSON файл, который используют многие службы Google Cloud.

Может ли кто-нибудь использовать строки соединения JDBC или другие данные настройки, которые они успешно использовали для подключения к службе? Я попытался, например, установить переменную среды GOOGLE_APPLICATION_CREDENTIALS и предоставить строку JDBC в том же стиле, что и выше, но безрезультатно.

В идеале я хотел бы использовать комбинацию идентификатора экземпляра, имени проекта, имени базы данных, электронной почты учетной записи службы и файла p12, но я открыт для других параметров проверки подлинности.

EDIT: При попытке стратегии GOOGLE_APPLICATION_CREDENTIALS, я создал этот файл журнала, в случае, если это может быть какой-либо помощи https://gist.github.com/aryeh-looker/e6b1b1617d301f0a247463216c96535d

ответ

2

Дважды проверил свою работу, и это выглядит как я утра фактически в состоянии подключиться с строкой соединения, как указано выше, и путем установки переменной среды GOOGLE_APPLICATION_CREDENTIALS. Было бы идеально, если бы некоторые другие варианты и документация по-прежнему были немного пятнистыми (без упоминания переменной окружения), поэтому более подробная информация может быть идеальной.

Это полуреализованное решение. Это связано с тем, что вы не можете иметь несколько соединений с разными учетными записями служб в одном и том же процессе.


EDIT 2: Это не работает. Я получаю ошибки в том, что экземпляр не указывается при указании на файл JSON.

EDIT: выглядит с последней версией драйвера Spanner, есть способ сделать это.

Последняя версия драйвера (1.0.4.1005), по-видимому, поддерживает дополнительный параметр JDBC PvtKeyPath, который берет путь к вашему закрытому ключу, а не к установке переменной GOOGLE_APPLICATION_CREDENTIALS. Стоит посмотреть.

Из включенных в PDF документации:

PvtKeyPath

Таким образом, вы будете иметь URL вроде: jdbc:cloudspanner://;Project=...;PvtKeyPath=/path/to/credentials.json

0

Как драйвер JDBC, поставляемого Google строго ограничено (не поддерживает DML и DDL statemetns), Я написал свой собственный драйвер JDBC. Драйвер предназначен для работы с приложениями с поддержкой JPA/Hibernate. Драйвер можно найти здесь: https://github.com/olavloite/spanner-jdbc

Этот драйвер поддерживает такие же URL-адреса, как и драйвер, поставляемый Google, включая свойство PvtKeyPath. Это все еще BETA, но я уже использую его для одного из моих собственных приложений.

Смежные вопросы