6

私が構築しているアプリケーションのセキュリティに関して問題があります...これは、ユーザーにいくつかの追加機能を提供する Crystal レポート ビューアーのラッパーです。

Crystal Reports を作成/変更できる内部ユーザーが多数います。いくつかのテストを行ったところ、さまざまなデータ ソースへの接続を非常に密接に扱うアプリケーションの場合、安全に接続することについて少しも気にしていないようです。誰もが信頼している既存のクリスタル レポートを悪意のある有害なものに変更することを妨げるものは何もありません。必要なのは、次の sql を含むコマンド テーブルを追加することだけです。

DELETE FROM tbl_Employees; SELECT FROM tbl_Employees;

実際、Crystal レポートでは、ユーザーが実行する権限を持っていることは何でも実行できます...選択で終わる限り。これが私の質問につながります: アプリケーションが SQL サーバーへの接続を選択のみに制限することを確実にする方法はありますか? ユーザー資格情報を一時的に変更することはできず、単一の読み取り専用アカウントを使用することもできません。これは、ユーザーを通常のアクセス許可 (つまり、ユーザーがクエリできるデータベース) に制限する必要があるためです。

私が読んだもので、そのような方法で接続を制限できると信じさせられたものは何もないので、私はあまり希望を持っていません.

一方で、レポートを作成しているほとんどの人は、その気があれば、私たちのデータを破壊するためにもっと直接的なアプローチをとることができます...私のアプリケーションは、できる限り安全です。実行可能な答えを見つけることができないようです。

4

2 に答える 2

1

レポート目的には、読み取り専用アカウントを使用する必要があります。例外はありません。 テーブルとビューに対する SELECT 権限と、EXEC 権限機能へのアクセス権をアカウントに付与します (シノニムによって公開されます)。可能であれば、手順を避けてください。通常は不要であり、データベースを変更する手順へのアクセスをユーザーに誤って許可する可能性があります (私のクライアントが遭遇した経験)。

** 編集 **

機密データの表現方法にも依存すると思います。

レポートの実行時に、行レベルのフィルターをレコード選択式に追加します。

機密データが少数のテーブルに含まれている場合は、役割ベースのセキュリティ (ユーザーをグループに追加し、役割をグループに割り当てる) を使用できます。

BusinessObjects Enterprise を使用している場合は、ユニバースを使用してデータ セキュリティを制御できます。BusinessView もオプションです。これらは、動的/カスケード パラメーターをサポートする元の (BusinessObjects および SAP より前の) セマンティック レイヤーですが、廃止される予定です。

于 2012-11-02T16:18:00.433 に答える
0

わかりました、まだグローバルコメントを投稿できないので、これを答えにしていますが、これは何らかの形であなたを助けることができるアイデアです (願っています)。

私は、Oracle DB のように SQL Server の経験が豊富ではありません。Oracle DB では、ユーザーごとに独自のスペースがあります。各ユーザーは、その領域 (スキーマ) 内にある DB オブジェクト (テーブルなど) のみを読み取り、変更できます。例外はありません。次に、各ユーザーに自分のスキーマ外の特定のオブジェクトへのアクセスを許可できます。これは、修飾されたアクセス (「読み取り専用」、「更新のみ」など) です。これらの権限の維持を容易にするために、ロールを作成できます。これは基本的に、特定のユーザーに割り当てることができる権限の名前付きグループです。

わかりました、これはあなたにとって目新しいものではないと確信していますが、私のポイントは、あなたが探しているものを達成するために、Oracle環境で各ユーザーにDBユーザーを使用して情報へのアクセスを制御できるということです(テーブル)その(非常に安全な)コントロールを介して。

SQL Server では、小さな違いは別として、同じ種類の戦略を実行できると確信しています。これがそれを解決するためのいくつかのアイデアにつながることを願っています...

于 2012-11-17T02:17:09.330 に答える