0

SSRS レポートを含む顧客のコンピューターに VB.Net アプリケーションを展開しました。

アプリケーションは問題なくアプリ内の SQL Server データベースに接続します。レポート (rdl) ファイルとデータ ソース (rdl) ファイルをレポート サーバーに配置できるように、SQL Server Data Tools をインストールしました。これらは問題なくデプロイされます。

SQL Server Data Tools では、レポートを問題なく「プレビュー」することもできます。

Internet Explorer (管理者として実行) からレポートを表示しようとすると、問題が発生します。

次のエラーが表示されます。

Cannot create a connection to data source 'DataSourceReports' 
(this is the name we used for the TargetDataSourceFolder) 
error:40 - Could not open a connection to SQL Server

デプロイしたアプリがレポートを実行するときにも同じエラーが発生します。

SQL Server 側で正しく設定されていないものをお知らせください。

4

1 に答える 1

2

おそらく、ダブル ホップ認証の問題が発生している可能性があります。あなたの説明からは明らかではありませんが、SQL Server データベースはレポート サーバーとは別のサーバーにあるのでしょうか。その場合、資格情報でレポート サーバーに接続できますが、レポート サーバーで NTLM を使用している場合、Windows 統合セキュリティはそれらの資格情報を SQL Server データベースに渡しません。レポート サーバーは、ネットワーク上で Kerberos を使用して、SQL Server データベースへのチケット発行による認証を試みますが、ネットワーク上でこれを正しく構成する必要があります。Kerberos を使用する場合は、 http ://technet.microsoft.com/en-us/library/ff679930(v=sql.100).aspx の記事を参照してください。

もう 1 つの (より簡単な) 解決策は、レポート サーバーでデータ ソースを開き、保存されている資格情報を使用するように認証を変更することです。使用する資格情報に、SQL Server データベースに対する読み取り権限があることを確認してください。このアプローチの欠点は、ユーザー情報を取得するようにレポートを設計し、ユーザーごとにデータを制限するようにデータセットにクエリまたはフィルターを設定しない限り、ユーザーごとのレポートで行レベル セキュリティを使用できないことです。それが問題にならない場合、保存された資格情報は簡単に設定および維持できます。キャッシング、スナップショット、またはサブスクリプションを使用する場合は、とにかくこれを行う必要があります。保存された資格情報の詳細については、http://msdn.microsoft.com/en-us/library/ms159736.aspxを参照してください。

于 2012-06-10T14:44:32.570 に答える