4

独自のアプリケーションを介してのみユーザーにDBアクセス(Oracle)を許可したいと考えています。これを「ourTool.exe」と呼び、ユーザーのコンピューターにローカルにインストールします。現在、ユーザーは「ourTool」を起動するたびにユーザー名/パスワードを入力する必要があります。提供されたパスワードパスワードは復号化され、username/decrypted-passwordを使用して最終的にOracleDBにログインします。このアプローチにより、ユーザーはサードパーティのツール(SQLplus、Excel、Accessなど)を使用してDBに直接アクセスできなくなり、DB内のすべてが「ourTool」を使用して入力/編集されたことが保証されます。

現在、クライアントの1人が、ユーザーに「シングルサインオン」(SmartCards / Oracle PKIを使用)を許可したいと考えています。これにより、ユーザーは「ourTool」を起動するたびにパスワードを入力しなくてもDBに接続できるようになります。ただし、SQLplus、Excel、Accessなどの潜在的に危険なツールについても同じことが言えます。

これを防ぐ方法はありますか?このシナリオでは、DB内のすべてのレコードが「ourTool」を使用してのみ作成/編集/削除されるようにするにはどうすればよいですか?

4

3 に答える 3

2

これはアプリケーションであり、ソースを制御できるため、パスワードで保護されたデータベース ロールまたは ourTool.exe から有効化されたセキュア アプリケーション ロールのいずれかを使用できます。( http://www.oracle.com/technology/obe/obe10gdb/security/approles/approles.htmを参照)。

たとえば、パスワードで保護されたデータベース ロールの場合、最初の接続は CREATE SESSION 権限のみで行われ、ourTool.exe は自分だけが知っているパスワードで SET ROLE を発行します。他のアプリケーションには、ロールを設定するための情報がありません。明らかに、この構成では権限はロールにのみ付与され、ユーザーに直接付与されるわけではありません。

于 2009-06-17T14:36:23.643 に答える
2

デフォルトでOCIは、呼び出し元のアプリケーションEXE名を送信し、クエリを実行してアクセスできますv$session

SELECT  program
FROM    V$SESSION

AFTER LOGONトリガーで実行できます。

ただし、これは簡単に上書きできるため、依存するべきではありません。

于 2009-06-17T14:20:30.853 に答える
1

sqlplus.exe の名前を myTool.exe に変更し、myTool.exe と接続した後

SELECT  program
FROM    V$SESSION
where username = 'SYSTEM';

戻り値: myTool.exe

したがって、Quassnoi が言ったように、注意してください。状況によっては使用できますが、確実に防弾とは言えません。

于 2009-06-18T15:06:33.210 に答える