迁移SSAS表格模型后处理遇OLE DB/ODBC隐私级别错误求助
解决SSAS表格模型迁移后隐私级别报错问题
下面是针对你遇到的迁移后隐私级别报错的具体排查和解决步骤:
直接检查新环境数据源的隐私级别
不要只依赖model.bim的JSON配置,打开SQL Server Management Studio(SSMS)连接到新环境的SSAS实例:- 展开目标表格模型的「数据源」节点
- 分别右键MDS和Oracle数据源→「属性」
- 在「隐私级别」下拉框确认是否为「Organizational」,如果不是手动设置后保存。迁移过程中有时会丢失数据源的属性配置,这是常见问题。
验证模型全局隐私设置
在SSMS中右键表格模型数据库→「属性」,找到「隐私级别」选项,确保全局设置允许数据源级别的隐私配置生效。部分企业环境会强制全局隐私级别,导致数据源的单独设置被覆盖。核对合并查询的隐私继承配置
打开model.bim的JSON文件,找到合并查询对应的数据源定义,确保两个数据源的PrivacySetting字段都明确设为Organizational,且合并步骤中没有改写这个配置。示例如下:"DataSources": [ { "Name": "MDS_Master_Data", "ConnectionDetails": { "ConnectionString": "your_mds_conn_string" }, "PrivacySetting": "Organizational" }, { "Name": "Oracle_Transaction_Data", "ConnectionDetails": { "ConnectionString": "your_oracle_conn_string" }, "PrivacySetting": "Organizational" } ]检查SSAS服务账户权限
新环境的SSAS服务账户可能没有足够权限读取数据源元数据:- 确保服务账户对MDS数据库有读取权限
- 确认Oracle连接使用的凭据(比如Windows身份验证或数据库账号)在新环境中有效,且有对应表的读取权限
清除缓存后重新处理
迁移后模型可能残留旧缓存,导致隐私校验异常:- 在SSMS中右键表格模型→「处理」→选择「清除缓存」
- 执行「完整处理」,强制模型重新加载数据源配置和数据
用XMLA脚本强制设置隐私级别
如果上述方法都无效,直接通过XMLA脚本修改数据源属性:
针对MDS数据源的XMLA脚本:<Alter AllowCreate="true" ObjectExpansion="ExpandFull" xmlns="http://schemas.microsoft.com/analysisservices/2003/engine"> <ObjectDefinition> <DataSource xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="RelationalDataSource"> <ID>MDS_Master_Data</ID> <Name>MDS_Master_Data</Name> <ConnectionString>Data Source=your_mds_server;Initial Catalog=your_mds_db;</ConnectionString> <ImpersonationInfo> <ImpersonationMode>ImpersonateServiceAccount</ImpersonationMode> </ImpersonationInfo> <ManagedProvider>System.Data.SqlClient</ManagedProvider> <PrivacySetting>Organizational</PrivacySetting> </DataSource> </ObjectDefinition> </Alter>针对Oracle数据源,替换
ConnectionString、ManagedProvider(比如Oracle.ManagedDataAccess.Client)和数据源ID/Name后执行脚本。
内容的提问来源于stack exchange,提问作者Melanie Coria
相关产品推荐
相关产品推荐

