问题描述
我的用例是使用Databricks笔记本中的SPN凭据连接到sql Server。由于我没有用户名密码并且无法生成访问令牌,因此我只能在SPN的帮助下进行操作。直到现在我什么都找不到。 如果有人以前做过或对此有任何想法,请帮助如何做。在此先感谢:)
解决方法
是的,可以这样做,repository of sql-spark-connector connector和documentation中对此进行了描述。前提条件是必须安装azure-activedirectory-library-for-java library。在安装完两个依赖项之后,以下代码应该可以工作:
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()