首页 > 解决方案 > 我们可以使用scala在databricks中使用SPN连接sql server数据库吗?

问题描述

我的用例是使用 Databricks 笔记本中的 SPN 凭据连接到 SQL 服务器。由于我没有用户名密码并且无法生成访问令牌,所以我只能在 SPN 的帮助下完成。直到现在我都找不到任何东西。如果有人以前做过或对此有想法,请帮助如何做。提前致谢 :)

标签: sql-serverapache-sparkdatabricksazure-databrickssqlconnection

解决方案


是的,可以这样做,并且在sql-spark-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()

推荐阅读