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

如何将Azure AD用户同步至虚拟机SQL Server或SQL Database用户表

Azure AD用户同步到SQL Server/ Azure SQL Database实现方案

场景1:同步到Azure SQL Database

  • 若仅需实现AAD账号登录Azure SQL的权限,无需自定义用户表,直接使用原生Azure AD集成创建关联账号即可,在SQL中执行语句:
    CREATE USER [user@contoso.com] FROM EXTERNAL PROVIDER;
    可按需给该用户分配对应库表的读写权限。
  • 若需要将AAD用户字段同步到业务自定义用户表,使用Azure Function定时同步即可:
    • 给Azure Function分配Microsoft Graph的User.Read.All应用权限,采用应用程序权限类型完成授权
    • 编写定时触发的函数代码,调用Graph API拉取全量/增量AAD用户数据,可使用delta查询实现增量同步,降低接口调用开销
    • 通过SQL绑定或SqlClient组件连接Azure SQL Database,对自定义用户表执行增删改操作,同步需要的用户字段(显示名、邮箱、部门等)

场景2:同步到虚拟机部署的SQL Server实例

  • 若使用SQL Server 2022及以上版本,且虚拟机已接入Azure AD,可直接复用原生集成逻辑,先创建关联的服务器级登录名,再创建库级用户:
    CREATE LOGIN [user@contoso.com] FROM EXTERNAL PROVIDER;
    CREATE USER [user@contoso.com] FOR LOGIN [user@contoso.com];
    
  • 若使用低版本SQL Server或需要同步到自定义业务用户表,二选一即可:
    • 本地定时任务方案:在同虚拟网络的服务器/当前SQL虚拟机上配置Windows计划任务/Linux cronjob,运行同步脚本,脚本调用Graph API拉取AAD用户后,通过ODBC/ADO.NET驱动连接SQL实例完成数据写入
    • 云端托管方案:使用Azure Automation Runbook配置定时同步任务,通过混合工作器接入虚拟机所在网络,执行同步逻辑无需在本地部署任务
  • 注意如果SQL实例未开放公网访问,需确保同步运行环境和虚拟机网络已打通(同VPC、VPN、VPC对等均可)

通用注意事项

  • 同步时必须使用AAD用户objectId作为两个系统用户关联的唯一主键,避免用户修改邮箱、显示名后出现同步冲突
  • 所有敏感凭证(AAD应用密钥、SQL连接字符串)必须存储在密钥管理服务中,同步逻辑运行时动态读取,禁止硬编码到代码或配置文件
  • 建议新增同步日志表,记录每次同步的时间、变更用户数、异常信息,方便后续排查同步故障

内容的提问来源于stack exchange,提问作者Mohamed Traoré

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:36:01