使用用户管理标识从 Azure Databricks 连接到 Azure SQL

Jok*_*kin 9 azure azure-sql-database azure-managed-identity azure-databricks

我正在尝试从 Azure Databricks 工作区读取 Azure SQL 实例上的数据,避免使用用户名/密码个人凭据进行自动、定期数据获取和分析。我认为使用托管标识可以完成这项工作,但它看起来不如 Azure Functions 或 Web 服务顺利。Databricks 支持此功能吗?

我需要 Databricks 实例中不存在的环境变量,例如 IDENTITY_ENDPOINT 和 IDENTITY_HEADER,遵循文档https://learn.microsoft.com/en-us/azure/app-service/overview-management-identity

任何见解将不胜感激!

小智 0

这些环境变量是为了增加安全性和灵活性。使用托管身份时,您必须向不同的提供商请求访问令牌,但如果您想简化事情,您可以像下面的示例一样对其进行硬编码。

IP 地址不应更改,如果您要访问 SQL 数据库之外的其他服务,只需替换末尾的“https://database.windows.net/”即可。这就是 IDENTITY_ENDPOINT 环境变量的含义。

获得访问令牌后,您就可以访问 SQL Server。

$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://database.windows.net/' -Method GET -Headers @{Metadata="true"}
$content = $response.Content | ConvertFrom-Json
$content.access_token
Run Code Online (Sandbox Code Playgroud)