2

今後の大規模なソリューションのプロトタイプに取り組んでおり、Always Encrypted を使用して特定の機密データベース列を暗号化したいと考えています。

私のセットアップは次のとおりです。データベースサーバー:SQL Server 2016がインストールされていますアプリケーションサーバー:データベースサーバーエンジンを指すReporting Server 2016がインストールされています。IIS、.Net 4.6.2 などもすべてセットアップされます。

また、Management Studio から接続に「列暗号化設定 = 有効」を追加しても、DBA が暗号化されたデータを読み取れないように環境がセットアップされます。そのため、CMK と CEK がデータベース サーバー データベースにインストールされている間に、私の証明書はアプリケーション サーバーにインストールされます。

Application Server にインストールされた Web アプリから暗号化されたデータを問題なく表示でき、DBA は暗号化されたデータをデータベースから直接読み取ることができないため、環境が適切に設定されていると想定しています。

説明したように、アプリケーション サーバーに SSRS 2016 をインストールしましたが、データベース サーバー上の暗号化された列を持つデータベースを指しています。もちろん、Report Builder を使用して (テスト目的で) 基本的なダンプ レポートを作成しましたが、暗号化されたデータが表示されないことを除いて、すべて正常に機能します。SSRS テーブルでは空白のままです。暗号化された列は単なる基本的な nvarchar(200) です

データソース接続文字列に、「列暗号化設定 = 有効」を追加しました。それがないと、レポートは予想どおり #Error を表示します。ですから、これも必要だと思います。

また、クエリ デザイナーから暗号化された列を読み取ることができることに気付きました。データソースから 'Column Encryption Setting = Enabled' を削除すると、記憶が正しければクエリ デザイナーに VarBinary が表示されます。もちろん、アプリケーション サーバー上で Report Builder と Query Designer を直接操作しています。

SSRS を Always Encrypted で使用する方法に関するチュートリアルを検索しようとしましたが、何も見つかりませんでした。私が見つけたのは、SSRS が Always Encrypted をサポートしている投稿のコメントだけです。

誰かが私が間違っていることや欠けていることを教えてもらえますか?

前もって感謝します。

4

2 に答える 2

1

免責事項: 私はマイクロソフトのプログラム マネージャーです。

問題のトラブルシューティングを行うには、問題のあるクエリ (レポート ビルダーでデータを返さないクエリ) を、SQL Server Management Studio (レポート ビルダーを実行するマシン) と同じマシンで、同じユーザーとして実行してみてください。 「列の暗号化設定 = 有効」にして、エラー メッセージが表示されるかどうかを確認します。

証明書がレポート ビルダーをホストしているコンピューターに展開されていない場合、またはユーザーに証明書へのアクセス許可がない場合、暗号化された列に対するクエリがレポート ビルダーで結果を返さないことを確認しました。証明書 (列マスター キーとして使用される) を現在のユーザーまたはローカル コンピューターのストアに保存しますか? ローカル コンピューター ストアにある場合は、自分 (レポート ビルダーを実行するユーザー) が証明書にアクセスするためのアクセス許可を持っていることを確認する必要があります (管理コンソールを使用して証明書のアクセス許可を構成できます)。

于 2016-10-25T03:25:29.030 に答える