私が構築しているアプリケーションのセキュリティに関して問題があります...これは、ユーザーにいくつかの追加機能を提供する Crystal レポート ビューアーのラッパーです。
Crystal Reports を作成/変更できる内部ユーザーが多数います。いくつかのテストを行ったところ、さまざまなデータ ソースへの接続を非常に密接に扱うアプリケーションの場合、安全に接続することについて少しも気にしていないようです。誰もが信頼している既存のクリスタル レポートを悪意のある有害なものに変更することを妨げるものは何もありません。必要なのは、次の sql を含むコマンド テーブルを追加することだけです。
DELETE FROM tbl_Employees; SELECT FROM tbl_Employees;
実際、Crystal レポートでは、ユーザーが実行する権限を持っていることは何でも実行できます...選択で終わる限り。これが私の質問につながります: アプリケーションが SQL サーバーへの接続を選択のみに制限することを確実にする方法はありますか? ユーザー資格情報を一時的に変更することはできず、単一の読み取り専用アカウントを使用することもできません。これは、ユーザーを通常のアクセス許可 (つまり、ユーザーがクエリできるデータベース) に制限する必要があるためです。
私が読んだもので、そのような方法で接続を制限できると信じさせられたものは何もないので、私はあまり希望を持っていません.
一方で、レポートを作成しているほとんどの人は、その気があれば、私たちのデータを破壊するためにもっと直接的なアプローチをとることができます...私のアプリケーションは、できる限り安全です。実行可能な答えを見つけることができないようです。