Источник данных через параметр + безопасность

Мой вопрос касается больше безопасности его реализации, чем просто технических вопросов.

Я разработал все отчеты и на сервере отчетов. Они используются приложением, использующим элемент управления ReportViewer в ASP.NET.

Учитывая, что эти отчеты могут иметь разные источники данных, я создал параметр для источника данных в отчете и отправил приложение connectionString в качестве параметра для отчета.

Пока все хорошо, однако, здесь возникает мой вопрос. Так как я трачу ConnectionString, у которого есть параметр user и password, у меня не будет здесь недостатка безопасности?

Я хотел бы получить мнение от вас, и если у кого-то есть лучший способ реализовать, скажите мне.

1 ответ

Решение

Может быть, здесь помогут строки подключения на основе выражений?

Документы имеют довольно четкий пример, то есть строку подключения, похожую на:

="data source=" & Parameters!ServerName.Value & ";initial catalog=AdventureWorks

Это позволяет вам передавать параметр для определения источника данных, но также позволяет хранить учетные данные отдельно, так что вам не обязательно передавать какие-либо сведения о безопасности при вызове отчета.

Добавлено после комментария:

Вот пример отчета со строкой соединения на основе выражений.

Вы можете видеть, что строка подключения использует параметр, чтобы точно определить, где он подключается; это может быть обновлено по мере необходимости.

Учетные данные хранятся в источнике данных; вы можете сохранить учетные данные (см. скриншот выше) или выбрать любой другой вариант, например, Windows Integrated Security.

Таким образом, он может не подойти вам идеально, но это встроенная функциональность SSRS для такого типа настраиваемого источника данных.

Второе редактирование:

В приведенном выше примере Parameters!ServerName.Value это действительно параметр отчета, вы просто создадите его как любой другой. В зависимости от того, как ваши отчеты запускаются, вы можете сделать его скрытым параметром и обработать фактическое значение, отправленное в коде; это просто вопрос реализации и действительно зависит от вас.

Для строк подключения на основе выражений источник данных должен храниться в отчете, а его строка подключения определяется во время выполнения.

Таким образом, вы можете построить все, что вам нужно, на основе одного или нескольких параметров - это просто строковое значение, которое вы создаете, чтобы вы могли сделать его любым, что вам нужно; Вы можете указать на любую требуемую комбинацию сервер / база данных. Пожалуйста, уточните, если это не отвечает на ваш вопрос.

Другие вопросы по тегам