无托管标识时,如何用ServicePrincipal通过Microsoft Entra认证Azure SQL并配置连接字符串?
使用Service Principal连接Azure SQL的Microsoft Entra认证连接字符串写法
核心连接字符串参数
要通过Service Principal完成Microsoft Entra(原Azure AD)认证连接Azure SQL,连接字符串需包含以下关键参数:
Server:Azure SQL服务器完整地址(格式:tcp:<服务器名>.database.windows.net,1433)Database:目标数据库名称Authentication:指定认证模式为Active Directory Service PrincipalUser ID:Service Principal的客户端ID(即应用ID)Password:Service Principal的客户端密钥(即应用密码)- 安全连接参数:
Encrypt=True;TrustServerCertificate=False;Connection Timeout=30(推荐保留,保障连接安全性)
完整连接字符串示例
Server=tcp:your-sql-server.database.windows.net,1433;Database=your-db-name;Authentication=Active Directory Service Principal;User ID=your-sp-client-id;Password=your-sp-client-secret;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
注意事项
- 提前将该Service Principal添加为Azure SQL数据库用户,并分配对应权限(如
db_datareader、db_datawriter或自定义角色) - 禁止硬编码客户端密钥,建议通过环境变量、Azure Key Vault等安全方式加载密钥
- 若Service Principal使用证书认证而非客户端密钥,需将
Password参数替换为Certificate Thumbprint=<证书指纹>,同时确保程序可访问对应证书文件
内容的提问来源于stack exchange,提问作者R. Maier
相关产品推荐
相关产品推荐

