Соединение Databricks SQL Server с использованием встроенной аутентификации

Я пытаюсь подключить свой кластер Databricks к существующей базе данных SQL Server с помощью python. Я хочу использовать интегрированный метод аутентификации. Получение ошибки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) 

1 ответ

Вы не можете использовать integratedSecurity=true с базой данных Azure PaaS. IntegratedSecurity это локальная конструкция.

Вам нужно использовать authentication=ActiveDirectoryIntegrated или authentication=ActiveDirectoryPasswordсм. здесь документы JDBC:https://docs.microsoft.com/en-us/sql/connect/jdbc/connecting-using-azure-active-directory-authentication?view=sql-server-ver15

Вам также потребуется, чтобы ваша учетная запись была пользователем с соответствующими разрешениями для этой базы данных, которая синхронизируется с Azure AD. Если вы используете многофакторную аутентификацию, она не поддерживается для JDBC, и вашему администратору потребуется предоставить вам учетную запись без поддержки MFA. Вы узнаете, так ли это, потому что получитеWSTrust ошибка при попытке подключения.

Другие вопросы по тегам