今後の大規模なソリューションのプロトタイプに取り組んでおり、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 をサポートしている投稿のコメントだけです。
誰かが私が間違っていることや欠けていることを教えてもらえますか?
前もって感謝します。