Если вы хотите использовать Azure Managed Identity для подключения Azure SQL базы данных в проекте Net Core MVC, мы можем использовать пакет Microsoft.Data.SqlClient с SqlConnection.AccessToken.
Подробные инструкции приведены ниже.
Создать MSI
Настроить SQL База данных
а. Используйте Azure Sql администратора AD для подключения Azure SQL vai SSMS
b. Добавьте MSI в нужную базу данных
USE [<db name>]
GO
create user [<your msi name>] from external provider
ALTER ROLE db_owner ADD MEMBER [<function app name>]
Код
/*
Install SDK Microsoft.Azure.Services.AppAuthentication and Microsoft.Data.SqlClient
*/
public async Task<IActionResult> Index()
{
List<StarWar> starWars = new List<StarWar>();
var connectionString = "Server=tcp:<server-name>.database.windows.net,1433;Database=<database-name>;";
using (var conn = new SqlConnection(connectionString))
{
conn.AccessToken = await (new Microsoft.Azure.Services.AppAuthentication.AzureServiceTokenProvider()).GetAccessTokenAsync("https://database.windows.net/");
await conn.OpenAsync();
var sql = "SELECT * FROM [dbo].[StarWars]";
using (SqlCommand command = new SqlCommand(sql, conn))
{
using (SqlDataReader reader = await command.ExecuteReaderAsync())
{
while (await reader.ReadAsync())
{
StarWar starWar = new StarWar();
starWar.episode = Convert.ToInt32(reader["episode"]);
starWar.score = Convert.ToInt32(reader["score"]);
starWar.name = Convert.ToString(reader["name"]);
starWars.Add(starWar);
}
}
}
}
return View(starWars);
}
![enter image description here](https://i.stack.imgur.com/oqNBW.png)