Возможно, Expression-Based Connection Strings поможет здесь?
Документов есть довольно ясный пример, то есть строка соединения, аналогичная:
="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks
Это позволит вам по-прежнему передавать параметр для определения источника данных, но она также позволяет хранить учетные данные отдельно, таким образом, вы не обязательно должны передавать какие-либо сведения о безопасности при вызове отчета.
Добавлено после комментария:
Ниже приведен пример отчета с Expression на основе строки подключения.
![enter image description here](https://i.stack.imgur.com/IOAW3.jpg)
Вы можете увидеть строки подключения использует параметр, чтобы определить, где именно это соединение; это может быть обновлено по мере необходимости.
Учетные данные хранятся в источнике данных; вы можете сохранить учетные данные (см. скриншот выше) или вы можете выбрать любой другой вариант, который подходит, например. Интегрированная безопасность Windows.
Возможно, это может вас не устраивать, но это встроенная функциональность SSRS для такого типа настраиваемого требования к источнику данных.
Второе редактирование:
В приведенном выше примере, Parameters!ServerName.Value
действительно параметр отчета, вы бы просто создать его, как и любой другой. В зависимости от того, как запускаются ваши отчеты, вы можете сделать его скрытым параметром и обработать фактическое значение, отправленное в коде; это просто вопрос реализации и действительно до вас.
Для строк соединения на основе выражения источник данных должен быть сохранен в отчете, а его строка соединения определена во время выполнения.
Таким образом, вы можете создавать все, что вам нужно, на основе одного или нескольких параметров - это просто строковое значение, которое вы создаете, чтобы вы могли сделать все, что захотите, в соответствии с вашими потребностями; вы можете указать его на любую комбинацию серверов/баз данных. Просьба уточнить, не отвечает ли это на ваш вопрос.
Но где я ставлю учетные данные? – PookPook
Они хранятся на уровне источника данных; см. приведенное выше изменение. –
Хорошо, хорошо. Но «Parameters! ServerName.Value» должны быть объявлены в отчете? И как мне установить источник данных для отчета, так что давайте получить источник данных, который находится в serverreport? Связь между ними, я не могу понять. – PookPook