#sql-server #apache-spark #databricks #azure-databricks #sqlconnection
#sql-server #apache-spark #databricks #azure-databricks #sqlconnection
Вопрос:
Мой вариант использования — подключиться к SQL server, используя учетные данные SPN в записной книжке Databricks. Поскольку у меня нет имени пользователя, пароля и я не могу сгенерировать токен доступа, поэтому я должен сделать это только с помощью SPN. До сих пор я ничего не мог найти. Пожалуйста, помогите, как это сделать, если кто-нибудь делал это раньше или имеет представление об этом. Заранее спасибо 🙂
Комментарии:
1. learn.microsoft.com/en-us/azure/azure-sql/database /… — вы имеете в виду токен доступа?
2. Что вы подразумеваете под SPN? Вы имеете в виду имя участника службы? Я считаю, что это маловероятно для Kerberos / on-prem.
Ответ №1:
Да, это возможно сделать, и это описано в репозитории sql-spark-connector connector и в документации. Обязательным условием является установка библиотеки azure-activedirectory-library-for-java. После установки обеих зависимостей должен работать следующий код:
context = adal.AuthenticationContext(authority)
token = context.acquire_token_with_client_credentials(
resource_app_id_url, service_principal_id, service_principal_secret)
access_token = token["accessToken"]
jdbc_db = spark.read
.format("com.microsoft.sqlserver.jdbc.spark")
.option("url", url)
.option("dbtable", table_name)
.option("accessToken", access_token)
.option("encrypt", "true")
.option("hostNameInCertificate", "*.database.windows.net")
.load()
Комментарии:
1. Как можно получить значение
resource_app_id_url
в приведенном выше фрагменте кода?2. это идентификатор приложения для участника-службы
3. Это код python. Существует ли версия Scala?
4. Версия Scala почти идентична, некоторые различия в именах функций