Соединение 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
ошибка при попытке подключения.