You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure App Service的连接字符串中隐藏用户名和密码?

隐藏Azure App Service连接字符串中明文密码的方法

下面是两种实用的Azure原生方案,无需明文存储密码:

方案一:用Azure Key Vault存储密码

  • 新建一个Azure Key Vault实例,在Vault内添加「机密」,将数据库密码myPassword作为机密值保存,给机密设置一个易识别名称(比如DB-Password)。
  • 给你的App Service配置Key Vault访问权限:在Key Vault的「访问策略」中,添加App Service对应的服务主体,授予其「机密权限」中的「获取(Get)」权限。
  • 修改App Service配置里的连接字符串,把明文密码替换为Key Vault机密的引用格式,示例如下:
    Server=tcp:myserver.database.windows.net,1433;Database=myDataBase;User ID=mylogin@myserver;Password=@Microsoft.KeyVault(VaultName=你的密钥库名称;SecretName=DB-Password);Trusted_Connection=False;Encrypt=True;
    
    保存配置后,App Service会自动从Key Vault拉取真实密码,配置面板中只会显示引用字符串,不会暴露明文密码。

方案二:用托管标识直接认证(适用于Azure SQL Database)

如果你的数据库是Azure SQL Database,可以彻底移除连接字符串中的密码:

  • 在App Service的「标识」面板中,开启「系统分配托管标识」开关,保存后会生成专属服务主体。
  • 登录SQL数据库,执行以下SQL命令为该托管标识添加数据库用户并配置权限:
    CREATE USER [你的App Service名称] FROM EXTERNAL PROVIDER;
    ALTER ROLE db_datareader ADD MEMBER [你的App Service名称];
    ALTER ROLE db_datawriter ADD MEMBER [你的App Service名称];
    
    可根据实际业务需求调整角色权限(比如只读/读写等)。
  • 修改连接字符串,删除User ID和Password字段,添加托管标识认证参数:
    Server=tcp:myserver.database.windows.net,1433;Database=myDataBase;Trusted_Connection=False;Encrypt=True;Authentication=Active Directory Managed Identity;
    
    后续App Service会通过托管标识自动完成数据库认证,全程无需密码。

内容的提问来源于stack exchange,提问作者Jennifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 00:55:13