2012-05-04 13 views
3

私は、Oracleデータベースの管理を改善し、セキュリティを強化しようとしています。Oracle:「他のユーザー」の表示を制限する

現在、権限のないユーザーは、データベース・ナビゲーション・ツリーで「その他のユーザー」アイコンを展開することによって、SQL Developerの他のすべてのユーザーのリストを表示できます。

特権が付与されているかどうかにかかわらず、(すべてのユーザーではなく)一部のオブジェクトに対して特権を付与された(他の)ユーザーのみが表示されるように、

ありがとうございました。

答えて

3

あなたはおそらく(少なくとも合理的に)できません。 SQL Developerのようなツールは、ユーザーのリストを取得するためにALL_USERSを照会することになり、ログインできるすべてのユーザーにデータベース内のすべてのユーザーが表示されます。 AがBについて何も見ることができない場合に存在するか?

私は強く推奨しますが、同じ構造を持つ非特権ユーザーのスキーマにALL_USERSビューを作成する(または別のスキーマのビューに専用の同義語を作成する)ことにより、この問題を回避することができますALL_USERSと表示されますが、データは少なくなります。ほとんどのツールはALL_USERSではなく、データ辞書テーブルSYS.ALL_USERSの名前を修飾しないため、このトリックは一般的に機能します。しかし、かなりのリスクがあります。必然的に、データ・ディクショナリが「正常」であると予想するインストール・スクリプトがあると予期せぬ欠点があり、最終的に誰かがデータ・ディクショナリ表名などを完全に修飾するツールを使用します。

+0

ありがとうございます。私たちの目標は、「1人のユーザーが侵害された場合、少なくとも他のユーザーのユーザー名を譲り渡さないため、誰かが自分の道を試して働くことを可能にする」ことでした。 – learningOracle

+1

はい、ユーザー名を公開するのはセキュリティ上のリスクです。リスクはさらに深刻で、ユーザーの人口とシステム内のデータの機密性を考慮する必要があります。それはOKかもしれません。 –

1

おそらくSQL Developer私は覚えていないビュー)all_users

revoke select on ALL_USERS from PUBLIC; 

そしてまた、あなたが選択できるようにしたいユーザーにこれを付与します。だから、(SYSDBAとして)この助成金を取り消す必要があります。

編集:

私は@Justin Caveの答えに同意します。これは、リスクを有し、また、彼は良い質問もたらします:それはAが がBについて何かを見ることができない場合は、ユーザーBが存在することを知っているため、セキュリティ上のリスク本当に

ですが?あなたの質問によると

+0

ありがとうSergio – learningOracle

0

: 。それは本当に、Aは、AがBについて何かを見ることができない場合は、ユーザーBが存在することを知っているため、セキュリティ上のリスクですか?

I(非特権)ユーザーAがBのexistanceを知っていればはい、それは接続するために(ブルートフォース)を試してみて、可能性があると考えて: オプションは:Aが成功し、そしてBは、特権ユーザー オプションBである:Aに障害が発生しましたBは強力なパスワードを持っており、AからBとして接続するいくつかのインテントの後でユーザーBがロックされ、サービス拒否の問題になる可能性がある、ユーザーBにいくつかのプロファイル恒久性があるためです。

関連する問題