0

我正在尝试使用 python 将我的 Databricks 集群连接到现有的 SQL Server 数据库。我想利用集成的身份验证方法。得到错误com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.

jdbcHostname = "sampledb-dev.database.windows.net"
jdbcPort= 1433
jdbcDatabase = "sampledb-dev"
jdbcUrl = "jdbc:sqlserver://{0}:{1}; database={2}".format(jdbcHostname, jdbcPort, jdbcDatabase)

connectionProperties={
  "integratedSecurity" : "true",
  "driver" : "com.microsoft.sqlserver.jdbc.SQLServerDriver"
}

print(jdbcUrl)
query ="(SELECT * FROM TABLE1.Domain)"

domains = spark.read.jdbc(url = jdbcUrl, table = query, properties = connectionProperties)
display(domains) 
4

1 回答 1

0

不能integratedSecurity=true与 Azure PaaS 数据库一起使用。IntegratedSecurity是一个内部构造。

您需要使用authentication=ActiveDirectoryIntegratedor authentication=ActiveDirectoryPassword,请在此处查看 JDBC 文档: https ://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-using-azure-active-directory-authentication?view=sql-server-版本 15

您还需要您的帐户是对已同步到 Azure AD 的数据库具有适当权限的用户。如果您使用多因素身份验证,则 JDBC 不支持,您的管理员需要为您提供未启用 MFA 的帐户。您会知道是否是这种情况,因为您WSTrust在尝试连接时会收到错误消息。

于 2020-04-27T22:19:45.937 回答