sql-server - 使用 Azure Active Directory 连接到 MSSQL 服务器的 JDBC
问题描述
我知道您可以使用带有 SQL 身份验证或 Windows 身份验证的 jdbc 连接连接到服务器,但我可以使用 azure 活动目录来执行此操作吗?
带有 Windows 身份验证的 jdbc 代码
val jdbcHostname = "hostname"
val jdbcPort = 1433
val jdbcDatabase = "database_name"
val jdbcUrl ="jdbc:sqlserver://${jdbcHostname}:${jdbcPort};database=${jdbcDatabase};integratedSecurity=true"
val username="windows_username"
val password="windows_password"
val driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
#read as spark df
val jdbcDF = spark.read
.format("jdbc")
.option("url", jdbcUrl)
.option("dbtable", table)
.option("user", username)
.option("password", password)
.option("driver", driver)
.load()
解决方案
在 Microsoft JDBC Driver for SQL Server 中支持 Azure Active Directory 身份验证的连接属性。
可以通过多种方式指定连接字符串属性:
当您使用 DriverManager 类进行连接时,作为连接 URL 中的 name=value 属性。有关连接字符串语法,请参阅构建连接 URL。
作为DriverManager 类中 Connect 方法的 Properties 参数中的 name=value 属性
这是 Microsoft 文档:使用 Azure Active Directory 身份验证进行连接 | 文档 和下表列出了 JDBC 驱动程序的所有当前可用的连接字符串属性 | 在这里。
推荐阅读
- nginx - NGINX 在收到 404 错误时向备用后端服务器发送请求
- c++ - 是什么导致 boost c++ 库出现以下链接错误?
- c# - 如何从 C# 代码中注销 Blazor 服务器
- javascript - 滑块不会在移动设备上滚动
- arrays - Powershell 连接数组值
- r - 如何从 fit_resamples 对象中获取列的系数?
- typescript - msgraph - endsWith 过滤方法不起作用查询我的 OneDrive
- google-sheets-formula - 如何使用arrayformula在列的所有单元格中重复相同的值
- google-cloud-platform - gcloud 崩溃(IndexError):列表索引超出范围
- scala - 迭代行并将一个行列值与Scala中的下一行列值进行比较