我们可以在使用scala的databricks中使用spn连接sqlserver数据库吗?

qxgroojn  于 2021-05-19  发布在  Spark
关注(0)|答案(1)|浏览(445)

我的用例是使用databricks笔记本中的spn凭据连接到sql服务器。因为我没有用户名和密码,也不能生成访问令牌,所以我只能借助spn来完成。直到现在我什么也没找到。如果有人以前做过或有想法,请帮助如何做。提前感谢:)

xxe27gdn

xxe27gdn1#

是的,这是可能的,在sqlspark连接器的存储库和文档中都有描述。先决条件是安装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()

相关问题