用途:按可复现的步骤在 Azure 中创建 Azure SQL Database,并返回真正可用的连接字符串。资料基于 Azure CLI 2.90.0 验证。
主要能力与用法:一次完整配置需要四条命令,而非一条。1)创建资源组:az group create -n <rg> -l <region>;2)创建逻辑服务器:az sql server create -g <rg> -n <server> -l <region> --admin-user <admin> --admin-password <password>;3)创建数据库:az sql db create -g <rg> -s <server> -n <database> --edition GeneralPurpose --compute-model Serverless --family Gen5 --capacity 2;4)单独创建防火墙规则:az sql server firewall-rule create -g <rg> -s <server> -n allow-my-ip --start-ip-address <your.ip> --end-ip-address <your.ip>。az sql db create 没有防火墙参数,缺少第 4 步会导致数据库存在、计费但所有连接登录超时。允许 Azure 内部服务访问时使用 0.0.0.0 到 0.0.0.0,这不是互联网通配符。
免费套餐:使用 --use-free-limit,--free-limit-exhaustion-behavior 只接受 AutoPause 和 BillOverUsage,CLI 帮助中提到的 BillForUsage 不存在。AutoPause 会暂停到下个自然月且不计费,BillOverUsage 保持在线并计费且不可改回。每个订阅最多 10 个免费数据库,每个每月 100,000 vCore 秒、32 GB 数据和 32 GB 备份存储,额度按数据库计且不结转,免费数据库不能通过还原创建。免费容量被拒时返回无配额信息的 HTTP 500,删除的槽位最多一小时才恢复。
Microsoft Entra 仅管理员认证:在服务器上设置,需同时使用 --enable-ad-only-auth、--external-admin-principal-type、--external-admin-name 和 --external-admin-sid(主体对象 id)。启用后不使用 --admin-user 和 --admin-password。其他主体需通过 T-SQL 创建,如 CREATE LOGIN [<name>] FROM EXTERNAL PROVIDER 或 CREATE USER [<name>] FROM EXTERNAL PROVIDER。
连接字符串:用 az sql db show-connection-string -c ado.net -s <server> -n <database> 生成,Initial Catalog 应指向用户数据库而非 master,Encrypt=true 保持默认。生产环境建议使用托管标识,Authentication="Active Directory Managed Identity",不要返回带真实密码的模板。
验证:用 az sql db show 检查 slo、status 和 useFreeLimit;用 az sql server firewall-rule list 确认规则存在;用 sqlcmd 连接并查询 SERVERPROPERTY('EngineEdition'),期望返回 5。登录超时通常表示缺少防火墙规则,Msg 40613 表示无服务器数据库正在恢复,可重试。
限制:资料未提供价格、性能保证或除上述命令外的其他平台支持信息。