2009-05-25 11 views
0

私はOracle 7.3(古いもの、はい)の上に座っているアプリケーションを持っています。最近、すべてのテーブルでSELECTできるアカウントを作成しようとしましたが、更新や削除はありません。しかし、私は新しいアカウントを作成するたびに、すでにすべてのアプリケーションテーブルにアクセスできます。私はそれを取り除き、CREATE SESSIONだけにしました。これは役に立たなかった - ユーザーはまだテーブルを更新することができた!ORACLE 7.3ユーザー管理

したがって、テーブルとまったく同じ名前のパブリックシノニムがたくさんあることがわかりました(つまり、テーブルmyTable123、パブリックシノニムmyTable123)。私はそのうちの1つを削除し、ユーザーはその特定のテーブルでSELECTできませんでした。その後、新しいテーブルを作成しましたが、明らかに新しいユーザーはそれを見ることができませんでした。私は、ユーザーがそれにアクセスできるように、そのテーブルのパブリックシノニムを追加しました。新しいユーザーはそれを見ることができませんでした..それはGRANTが与えられなかったので意味があります。他に何かがある必要があります....

私はオラクルの専門家ではありません。私はこの問題の一番下に到達しようとしていますが、これまでのところ運がありません。 提案があればお手伝いください。 乾杯! Damo

答えて

5

tuinstoelによれば、パブリック同義語は無視できますが、これはアクセス許可には影響しません。

それはあなたの元の表が作成された時に作成者が任意の新しいユーザーは自動的に権限を付与されますを意味します[権限]が「すべて」のように幅広い可能性があり

grant [permissions] on [table] to public 

を、やっている可能性がありますそれらのテーブル。

select * from ALL_TAB_PRIVS where table_name = '[one of your problem tables]' 

リターンは何もしていますか?

BTW - Oracle 7.3.3を使用していない - 私は許可モデルであまり変更されていないと仮定しています。

+0

ホボ、 あなたの答えをありがとう!私はあなたがそれを釘付けにしたと思う。私は今週休暇中ですが、仕事に戻ったらすぐに確認します。 ありがとう! Damo –

1

Oracle 7.3は単なる古いものではなく、非常に古くからあります。それは12〜13歳です。

パブリックsynを作成または削除しても、テーブルへのアクセス権は変更されません。パブリック・シノニムを作成する唯一の理由は、スキーマ名を接頭辞として使用せずにテーブルにアクセスできるようにすることだけです。

私はあなたの古いユーザーが '任意のテーブルを更新する'と '任意のテーブルを選択する'または 'dba'のような特権を持っていると思います。

+0

14歳だと思います。ドキュメントは著作権で保護されています。 – RussellH

関連する問題