我们如何使用Azure数据块中的Active Directory身份验证连接Azure SQL数据库

时间:2019-07-29 20:01:01

标签: active-directory connection azure-sql-database azure-databricks

如何在此处显示的代码中将AAD会话值代替密码和用户名:

    import com.microsoft.azure.sqldb.spark.config.Config
    import com.microsoft.azure.sqldb.spark.connect._

    val config = Config(Map(
      "url"            -> "kkk-server.database.windows.net:1433",
      "databaseName"   -> "MyDatabase",
      "dbTable"        -> "dbo.Clients",
      "user"           -> "AD-account",
      "password"       -> "xxxxxxxx",
      "connectTimeout" -> "5", //seconds
      "queryTimeout"   -> "5"  //seconds
    ))

    val collection = spark.read.sqlDB(config)
    collection.show()

2 个答案:

答案 0 :(得分:0)

目前无法使用Azure Active Directory(AAD)身份验证连接到Azure Databricks上的Azure SQL数据库。您应该使用SQL身份验证。

如果您在Azure Databricks上尝试AAD身份验证,则可能会出现错误“此驱动程序未配置为进行集成身份验证”或类似的错误消息。

尽管可以在Azure Data Lake中使用AAD。

答案 1 :(得分:0)

您可以在Azure Databricks中使用Spark connector for SQL Server and Azure SQL Database

用于SQL Server和Azure SQL数据库的Spark连接器还支持Azure Active Directory(AAD)身份验证。它允许您使用AAD帐户从Azure Databricks安全地连接到Azure SQL数据库。它提供类似于内置JDBC连接器的接口。

这里是例子:

import com.microsoft.azure.sqldb.spark.config.Config
import com.microsoft.azure.sqldb.spark.connect._

val config = Config(Map(
  "url"            -> "mysqlserver.database.windows.net",
  "databaseName"   -> "MyDatabase",
  "user"           -> "username ",
  "password"       -> "*********",
  "authentication" -> "ActiveDirectoryPassword",
  "encrypt"        -> "true"
))

val collection = sqlContext.read.SqlDB(config)
collection.show()

有关更多详细信息,请参见:Connect Spark to Azure SQL Database using AAD authentication

希望这会有所帮助。