如何以编程方式修改SSRS共享数据源的密码?
报错原因
你此前使用的GetItemDataSources、SetItemDataSources方法仅适用于报表、嵌入式数据集这类包含数据源引用的项目,共享数据源本身是独立的数据源定义类项目,不能使用这两个方法操作,需要调用针对共享数据源的专用接口方法。
正确实现代码
直接调用GetDataSourceContents获取共享数据源的定义,修改密码后再用SetDataSourceContents回写即可:
string sharedDsPath = "/MyFolder/MyDataSource"; // 获取共享数据源的完整定义 DataSourceDefinition dsd = rsClient.GetDataSourceContents(sharedDsPath); // 修改密码 dsd.Password = "yourNewPassword"; // 回写修改后的定义 rsClient.SetDataSourceContents(sharedDsPath, dsd);
注意事项
- 执行代码的账号需要对目标共享数据源有编辑内容的权限,否则会触发权限不足报错
- 如果你的共享数据源配置为「提示用户输入凭据」或「不需要凭据」,修改密码操作不会生效,仅当凭据类型为「存储的凭据」时该操作有效
内容的提问来源于stack exchange,提问作者faujong
相关产品推荐
相关产品推荐

