SSAS维度处理失败求助:Ruban Cube数据源模拟模式不兼容
解决OLAP多维数据集处理失败的问题
先把完整错误信息列出来:
内部错误:操作未成功终止。数据源'Ruban Cube'包含不支持处理操作的ImpersonationMode。高级关系引擎错误:无法连接到DataSourceID为'Ruban Cube'、名称为'Ruban Cube'的数据源。OLAP存储引擎错误:处理ID为'Student'、名称为'Student'的维度时出错。OLAP存储引擎错误:处理'MultidimensionalProject2'数据库中'Student'维度的'Dept ID'属性时出错。服务器:由于事务中的另一操作失败,当前操作已取消。
核心问题定位
这个错误链的起点是数据源Ruban Cube的模拟身份验证模式(ImpersonationMode)不支持多维数据集处理操作,后续的维度连接、属性处理失败都是这个根源导致的连锁反应。
具体解决步骤
调整数据源的ImpersonationMode设置
打开你的MultidimensionalProject2Analysis Services项目,找到Ruban Cube数据源:- 右键点击数据源 → 选择「属性」
- 在属性面板里找到
ImpersonationMode选项 - 切换到支持处理的模式:
- 优先选
ImpersonateServiceAccount:用Analysis Services服务账户的身份连接数据源,适配大多数场景 - 也可以选
ImpersonateSpecificUser:指定一个拥有数据源访问权和多维数据集处理权限的Windows账户,记得填写正确的用户名和密码
划重点:Default或Anonymous模式基本不支持处理操作,一定要换掉。
- 优先选
确认账户权限
不管选哪种模拟模式,对应的账户必须具备:- 数据源(比如底层SQL Server数据库)的读取权限,能访问
Student维度对应的基础表 - Analysis Services数据库
MultidimensionalProject2的处理权限(可以在SSMS里给账户分配「Process Database」或「Process Dimension」的角色权限)
- 数据源(比如底层SQL Server数据库)的读取权限,能访问
重新处理维度与数据集
修正设置后,先单独处理Student维度:- 在Visual Studio或SSMS里找到
Student维度 - 右键 → 选择「处理」,然后选「Process Full」模式
- 维度处理成功后,再处理整个
Ruban Cube多维数据集
- 在Visual Studio或SSMS里找到
排查
Dept ID属性的额外问题
如果改完模拟模式还是报Dept ID的错误,要检查:- 底层数据源中
Dept ID列的数据类型是否和维度定义的一致 - 该列有没有空值、无效数据(比如字符型列里混了数字以外的内容)
- 维度里
Dept ID属性的键列配置是否正确
- 底层数据源中
内容的提问来源于stack exchange,提问作者ruban krish
相关产品推荐
相关产品推荐

