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

无法找到租户中Active Directory对象及KeyVault已存在问题求助

我之前帮朋友踩过Always Encrypted配置的坑,刚好遇到过类似的问题,给你梳理下针对性的解决思路:

问题1:提示“Cannot find the Active Directory object '' in tenant”

这个错误大概率是脚本里的AAD对象参数为空,或者身份验证/权限出了问题,按下面的步骤排查:

  • 先检查你执行的Always Encrypted相关脚本,是不是有占位符没替换全?比如指定AAD主体(服务主体、用户)的参数(比如-AzureADClientId)是不是留空了?空字符串的对象肯定找不到,把占位符换成实际的客户端ID或用户UPN再试。
  • 验证当前PowerShell会话的身份能不能正常读取AAD对象:运行Get-AzureADUser -Filter "UserPrincipalName eq '你的登录账号'"或者Get-AzureADServicePrincipal -Filter "AppId eq '你的服务主体ID'",如果能正常返回对象,说明身份和权限没问题;如果报错,先重新用Connect-AzureAD和Connect-AzureRmAccount登录,确保登录的是正确的租户。
  • 如果用的是服务主体执行脚本,要确认这个服务主体已经在你的Azure租户里注册,并且给它分配了Key Vault的相关权限(比如密钥的创建、读取权限),不然也可能出现找不到对象的间接错误。
问题2:执行New-AzureRmKeyVault提示“The specified vault already exists”

这个问题很明确,Key Vault的名称是全局唯一的,跨租户跨区域都不能重复,解决方法:

  • 先确认这个Vault的状态:运行Get-AzureRmKeyVault -VaultName "你的Vault名称",看看它是不是在你的订阅里,或者是不是其他订阅/租户里的同名Vault。
  • 如果是你自己之前创建的,直接复用就行!把脚本里创建Vault的代码换成获取现有Vault的命令:$keyVault = Get-AzureRmKeyVault -VaultName "你的Vault名称",后续的密钥创建步骤直接用这个$keyVault对象就行。
  • 如果这个Vault不是你的,那就换个唯一的名称,比如在原名称后面加上区域后缀(比如my-db-vault-eastus)或者项目标识,再执行创建命令。

额外小提示

配置Always Encrypted的时候,还要注意:

  • SQL Server所在的环境(本地/云)要能访问到Key Vault,比如本地SQL Server需要在Key Vault的防火墙规则里添加本地IP段;
  • 确保列主密钥和列密钥的关联逻辑正确,不要混淆了Key Vault里的密钥和SQL里的密钥对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:38:30