Блоки данных SQL Подключение к серверу с использованием встроенной аутентификации - PullRequest
0 голосов
/ 28 апреля 2020

Я пытаюсь подключить мой кластер Databricks к существующей SQL базе данных сервера, используя 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 Ответ

0 голосов
/ 28 апреля 2020

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

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

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

...