使用Azure托管身份访问Azure SQL DB

时间:2020-05-25 13:08:25

标签: azure-sql-database azure-managed-identity

是否可以在Linux VM中使用Azure托管身份来访问Azure SQL DB?我只能找到这份文档https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-sql,该文档专门针对Windows VM。是否有针对Linux机器的已记录的循序渐进方法?

2 个答案:

答案 0 :(得分:1)

支持从Linux webapp使用托管身份进行SQL访问。 Use a Windows VM system-assigned managed identity to access Azure SQL tutorial几乎适用于Linux,只需关闭代码示例并使用如下代码即可:

var azureServiceTokenProvider = new AzureServiceTokenProvider();
var accessToken = await azureServiceTokenProvider.GetAccessTokenAsync("https://database.windows.net/");

using
var sqlConnection = new SqlConnection(configuration.GetConnectionString("Default")) {
 AccessToken = accessToken
};
using
var sqlCommand = new SqlCommand("SELECT @@VERSION", sqlConnection);
await sqlConnection.OpenAsync();
var version = (string) await sqlCommand.ExecuteScalarAsync();

可用的完整代码here,只需将连接字符串替换为您的连接字符串即可。

答案 1 :(得分:0)

似乎托管身份不支持Linux VM访问Azure SQL DB。

存在类似的问题here。还有一种使用跨平台.NET核心库的解决方法,您可以参考it