求基于Microsoft.Data.SqlClient与托管身份的SQL连接官方文档
使用托管身份通过Microsoft.Data.SqlClient连接Azure SQL数据库
- 安装必要的NuGet包:确保项目中安装了
Microsoft.Data.SqlClient包(推荐版本2.1.0及以上,该版本开始支持Azure AD托管身份认证) - 配置SQL数据库权限:
- 在Azure门户中,将你的App Service托管身份(系统分配或用户分配)添加为目标SQL数据库的对应角色(如
db_datareader、db_datawriter) - 或通过SQL语句手动配置:
CREATE USER [你的托管身份显示名称] FROM EXTERNAL PROVIDER; -- 按需添加角色权限 ALTER ROLE db_datareader ADD MEMBER [你的托管身份显示名称]; ALTER ROLE db_datawriter ADD MEMBER [你的托管身份显示名称];
- 在Azure门户中,将你的App Service托管身份(系统分配或用户分配)添加为目标SQL数据库的对应角色(如
- 代码连接示例:
using Microsoft.Data.SqlClient; using System; // 系统分配托管身份连接字符串 var connectionString = "Server=tcp:你的SQL服务器名.database.windows.net,1433;Database=你的数据库名;Authentication=Active Directory Managed Identity;"; // 如果是用户分配托管身份,需添加User ID参数 // var connectionString = "Server=tcp:你的SQL服务器名.database.windows.net,1433;Database=你的数据库名;Authentication=Active Directory Managed Identity;User ID=用户分配托管身份的客户端ID;"; using (var connection = new SqlConnection(connectionString)) { try { connection.Open(); Console.WriteLine("数据库连接成功"); // 在这里执行查询、插入等数据库操作 } catch (Exception ex) { Console.WriteLine($"连接失败:{ex.Message}"); } } - 核心要点:连接字符串通过
Authentication=Active Directory Managed Identity指定使用托管身份认证,无需硬编码用户名和密码;用户分配托管身份需额外指定User ID参数为身份的客户端ID。
内容的提问来源于stack exchange,提问作者srishti purohit
相关产品推荐
相关产品推荐

