
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
ログオントリガーは
ユーザーがデータベースに接続するとき
起動するトリガーです。
簡単な例を挙げます。
------------------------------------------------------------
SQL> conn / as sysdba
接続されました。
SQL> create or replace trigger logon_scotch_trigger
2 after logon
3 on scotch.schema
4 declare
5 v_program v$session.program%type;
6 begin
7 select program into v_program
8 from v$session
9 where audsid = sys_context('userenv','sessionid');
10 if v_program = 'sqlplus.exe' then
11 raise_application_error(-20000,'SQL*Plusで接続しちゃ駄目!');
12 end if;
13 end;
14 /
トリガーが作成されました。
SQL> conn scotch/whisky
ERROR:
ORA-00604: 再帰SQLレベル1でエラーが発生しました。
ORA-20000: SQL*Plusで接続しちゃ駄目!
ORA-06512: 行8
警告: Oracleにはもう接続されていません。
------------------------------------------------------------
↓OTN掲示板の関連スレッド
http://otn.oracle.co.jp/forum/message.jspa?threa …
http://otn.oracle.co.jp/forum/message.jspa?threa …
http://otn.oracle.co.jp/forum/message.jspa?threa …
http://otn.oracle.co.jp/forum/message.jspa?threa …
検索すれば他にもたくさん出てくると思います。
興味があれば研究してみてください。
# 私自身はなかなかこの手の要件がなくて
# 実戦では使ったことがないのですが……
No.5
- 回答日時:
オンコードというのは?
もしかすると、今は、クライアントがわにOracleクライアントを入れてもらってそこで手で設定している内容をツール内に埋め込んでしまうという意味ですか?
まあ、そうすれば、いちいち、クライアント側にSID等を公開する必要はありませんが、結局セキュリティーリスクの度合いはたいして変わっていませんよ。
やった方がいいのは確かですが。
実際問題としては、不特定多数がアクセスできる状態ではない場合は、そういったコードを書き換えたり、新たな投資をするよりも、監視を行い、不正があった場合にきちんとそれを確認し、それに対して処罰ができるという方向に進んだ方がいいと思いますよ。
どちらにしろ監視やロギングは必要です。もしそれだけで対処が可能であればそれで済ましてしまえば?とおもいますよ。
一応、そのツールを使用している人たちには不正アクセスはしないようにいっておけば、いざ、何かあった場合には不正アクセス防止法で守られていますので。ある程度良識があれば、会社でそうそう怪しいことはしないと思いますよ。
wildcat-ypさん 回答をありがとうございます。
又、回答が遅くなり申し訳ありません
>結局セキュリティーリスクの度合いはたいして変わっていませんよ。
それは承知しております。今回の対応は素人の出来心を抑えるのが狙いです。
>不正があった場合にきちんとそれを確認し、それに対して処罰ができるという方向に
もちろんその対応はしなければと思っています。
>もしそれだけで対処が可能であればそれで済ましてしまえば?とおもいますよ。
それで済まない情報がDBにあるということで御理解ください
また、運用もすぐに停止出来ないということを御理解ください。
以前の回答でパケットキャプチャすればSIDとユーザID、パスワードがわかると書かれいて
いましたが、実際にやってみたのですがユーザID、パスワードは暗号化されているようです。
”tnsname.ora”をダミーにしてしまうと、さすがにオラクルツールは接続できませんでしたが
パケットキャプチャーではしっかり見えていました。
今後の展開として新しいシステムを構築したいのですが、リッチクライアントでセキュリティ重視の
システム形態はどんなものか模索中です
No.4
- 回答日時:
ログオントリガーでアクセスするアプリケーションを限定する
というのはいかがでしょう。
素人がオラクルのツールを使って”ひねりもなしに”DBにアクセスできてしまう
のは防げるかもしれません。
dda167さん 回答をありがとうございます。
又、回答が遅くなり申し訳ありません
>ログオントリガーでアクセスするアプリケーションを限定する
出来れば詳しいことを教えて頂けないでしょうか
No.3
- 回答日時:
>今のままでセキュリティホールを解消できないとは思っています。
接続元が無制限であることが問題なのであれば、データベースサーバのOS側の機能で、
接続元IPアドレスを制限すれば良いかと思いますけど?
(データベースのプラットフォームが書かれていないので、具体的な操作は書けませんが。)
k_o_r_o_c_h_a_nさん 回答をありがとうございます。
> 接続元が無制限であることが問題なのであれば
社外にもクライアントPCが有りますが、VPN接続になっていますので
一応は限定されていると認識しています。
No.2
- 回答日時:
さすがにそこまでど素人がすぐにアクセスできるような状態ではないと思いますよ。
一応、SIDとユーザID、パスワードを公開しなければ良いので。まあ、少し知っている人であればパケットキャプチャすれば簡単にわかることは知っているとは思いますが。
なので、不正アクセスの禁止と、監査機能によるアクセスログ等を取り、不正があった場合にすぐに検知できるようにしておくことが有効になります。
これって社内ツールですよね?それであれば、きちんとルール化しておけばそれほど重大なことにはならないと思いますよ。
これが社外ツールであれば、ただちに運用を停止する必要がありますが・・・
wildcat-ypさん 回答をありがとうございます。
> これが社外ツールであれば、ただちに運用を停止する必要がありますが・・・
運用上の都合により社外(取引先)にもクライアントPCがあります。
ですので、最悪SID,ユーザID、パスワードが漏れてしまっても、どこかでもう一段階の
ブロックができないのかともがいております。
先ほど見つけたのですが、ODP.NET限定ですが”tnsname.ora”の記述内容をオンコードに
出来るみたいなので”tnsname.ora”をダミーにしてしまうのが一つの手かなと思うのですが
どうでしょうか?
No.1
- 回答日時:
そのクライアントツールが直接DBにアクセスするのですか?
それはそもそものアプリケーションの設計がおかしいのでは?
普通、DBサーバは許可するアプリサーバ以外からのアクセスは禁止するものです。
もしくは、Oracle自体の認証でそれぞれのアクセスできる範囲を限定する物です。
たとえば、PC側のプロセスを限定し、sqlplus.exeからのアクセスを拒否する設定が可能だったとしても、実行ファイル名を変えられてしまえば一緒です。ODBC経由でアクセスしていればそれすら必要ないかも。
なので、そのシステムは潜在的にセキュリティーホールを抱えた仕様ということです。少し知識があれば簡単にDBアクセスが可能ですので、必要があれば、不正アクセス禁止の注意書きと、アクセス履歴等の監査を使って、不正アクセスの検知を強化するしかありません。
もし、そのクライアントツールが直接DBアクセスするものではなく、きちんとしたアプリサーバ経由でのアクセスしかしないのであれば、単にDB側は、リスナーでアクセス制限すれば良いだけです。
wildcat-ypさん 回答をありがとうございます。
> なので、そのシステムは潜在的にセキュリティーホールを抱えた仕様ということです。
> 少し知識があれば簡単にDBアクセスが可能ですので
仰る通りだと思いましす。
私もこのシステムにかかわったのが3ケ月前で、その時には5年も前からこのシステム
(実は某社のパッケージソフト)が業者の言いなりに導入されていて運用されていました。
私もオラクルにというかDBの経験は浅いですが、パッケージのインストールの仕方とか、
オラクルクライアントの設定ファイルとかみてオラクルのツール(フリーソフト)でDBに
アクセス出来てしまったのでビックリしています。
パッケージソフトでの運用はすぐにはやめれませんので、今のままでセキュリティホールを
解消できないとは思っています。
ですが、素人がオラクルのツールを使って”ひねりもなしに”DBにアクセスできてしまう
現状を少しでもなんとかできないかと思い投稿したしだいです。
何かいい方法はないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クエリをキャンセルしたいので...
-
データベースに接続したままの...
-
ODBC経由の処理が遅い
-
ODBCの通信内容の暗号化
-
listener.logが肥大化
-
OracleからSQLServer参照時の不...
-
型 varchar から型 numeric へ...
-
JavaとOracle Javaって何が違う...
-
DB2のログインについて
-
バッファプールって?
-
AndroidからのAccessデータベー...
-
DB2 UDBって?
-
Accessのレポートで「縦書き」...
-
ACCESSで条件付き書式の設定方法
-
SQL Server にファイルを登録、...
-
ODBCを使わないでExcelへ連携
-
データを一元化するとして
-
「オフセット値」とは?
-
ハイフン無しの電話番号データ...
-
Word、一太郎、PDFのデータベー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベースに接続したままの...
-
listener.logが肥大化
-
クエリをキャンセルしたいので...
-
ODBC経由の処理が遅い
-
Access→Oracleデータ参照にはAD...
-
CSEでDB接続しようとすると...
-
VPNでデータベースに接続した時...
-
VPNでの接続速度が異なります。
-
インターネット経由でデータを...
-
「MaiSQL」 って何?
-
WEBサーバーとVPN
-
Oracle8i(8.1.7)forLinuxのDB ...
-
SQLServerの接続設定(ODBC)
-
Access Oracle環境の切替方法
-
Oracleで今接続しているセッシ...
-
MySQL データ ソース (ODBC)接...
-
CGIからのSQLSERVER接続について
-
FTPについて
-
Access2000からネットワーク経...
-
VB+Oracleで「特定できないエラ...
おすすめ情報