删除SSAS服务器管理员用户时出现系统错误,寻求帮助
解决SSAS删除管理员用户时“账户名与安全ID之间无映射”的错误
这个问题我之前处理过好几次,核心原因基本都是SSAS元数据里存储的账户信息和活动目录(AD)中的实际信息不匹配导致的,给你几个逐步排查和解决的方案:
先确认目标账户的AD状态
首先检查AD里这个账户是不是已经被删除、重命名,或者转移到了其他组织单元(OU)?SSAS是依赖账户的安全标识符(SID)来识别身份的,如果AD里的账户信息发生了变更,SSAS这边就会找不到对应的映射关系。你可以在AD中查询该账户的SID,或者如果是本地账户的话,用命令whoami /user来获取SID,对比SSAS中存储的SID是否一致。尝试通过SID选择并删除账户
如果在SSMS的常规用户选择界面找不到目标账户,可以试试通过SID直接定位:- 打开SSMS连接到你的SSAS服务器,右键点击服务器→属性→安全性
- 在管理员列表里选中要删除的账户(如果能看到的话),或者点击添加,在弹出的窗口里选择高级→立即查找旁边的对象类型,确保勾选所有类型后点击查找
- 如果还是找不到,点击通过SID选择,输入目标账户的SID,找到后再执行删除操作
清理SSAS的元数据缓存
SSAS有时候会缓存旧的账户信息,导致无法同步最新的AD数据:- 最简单的方法是重启SSAS服务,重启前记得确认没有正在运行的作业或查询,避免影响业务
- 也可以用XMLA脚本来针对性清理缓存,比如清理指定数据库的缓存:
如果是服务器级别的缓存,把<ClearCache xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>你的数据库ID</DatabaseID> </Object> </ClearCache><Object>节点替换成<ServerID>你的服务器ID</ServerID>即可
检查SSAS服务账户的AD权限
SSAS的服务账户需要有足够的权限来读取AD中的用户信息,如果权限不足,也会导致无法解析SID和账户名的映射。确保服务账户属于AD的“读取者”角色,或者拥有查询AD用户信息的权限。极端情况:用PowerShell强制删除
如果上面的方法都无效,可以尝试用PowerShell脚本强制移除:# 连接到SSAS服务器 $server = New-Object Microsoft.AnalysisServices.Server $server.Connect("你的SSAS服务器名称") # 获取管理员角色 $adminRole = $server.Roles | Where-Object {$_.Name -eq "Administrators"} # 定位要删除的账户(可以根据名称或SID筛选) $memberToRemove = $adminRole.Members | Where-Object {$_.Name -like "*问题账户名*"} # 删除账户并更新角色 $adminRole.Members.Remove($memberToRemove) $adminRole.Update() # 断开连接 $server.Disconnect()注意:执行前请确保你有足够的权限,并且备份好SSAS的元数据,避免意外问题。
内容的提问来源于stack exchange,提问作者Iam_NC
相关产品推荐
相关产品推荐

