用途:把应用安全接入 Azure SQL Database 容器(私有预览引擎,非 mcr.microsoft.com/mssql/server 镜像),避免应用以 sa 连接。sa 仅用于初始化配置。
主要能力:创建最小权限用户(本地为 master 上的服务器登录 + appdb 中映射的数据库用户,授予 db_datareader、db_datawriter,必要时 EXECUTE,不授予 db_owner);按环境选择认证方式,仅改连接字符串;加密连接;把连接字符串与 SA 密码放入密钥存储或 git 忽略的环境变量。
使用方式:镜像为 sqldbpreview-dpgaeqhmgphzd4bk.azurecr.io/azure-sql/db-dev:latest,需 ACCEPT_EULA=Y 与复杂 MSSQL_SA_PASSWORD,端口 1433。引擎不自动建库,先在 master 连接执行 CREATE DATABASE appdb,不要用 USE 切换库。本地示例:CREATE LOGIN applogin WITH PASSWORD = '...';在 appdb 连接执行 CREATE USER appuser FOR LOGIN applogin; ALTER ROLE db_datareader ADD MEMBER appuser; ALTER ROLE db_datawriter ADD MEMBER appuser;。应用读取单一环境变量 SQL_CONNECTION_STRING。.NET 可用 dotnet user-secrets init 与 dotnet user-secrets set "SQL_CONNECTION_STRING" "..."。
适用场景:本地容器开发与云端 Azure SQL Database 部署,云端优先托管标识或指定 Entra 方法,而非 Active Directory Default。
限制:容器上 CREATE USER ... WITH PASSWORD 失败(Msg 33233),ALTER DATABASE ... SET CONTAINMENT = PARTIAL 失败(Msg 12824),sp_configure 不存在(Msg 2812);未配置 Entra 时 CREATE USER ... FROM EXTERNAL PROVIDER 被拒(Msg 33134),需先启用 Entra。TrustServerCertificate=true 仅用于本地,云端不得设置。云端 Key Vault 与托管标识部分未实测,来自 Microsoft Learn。