0

アプリケーションは、さまざまな Oracle データベースにアクセスする必要があります。一部のデータベースにはスキーマにテーブルがあり、一部のデータベースにはありません。これを制御することはできません。

データベースに使用中のスキーマがある場合、ユーザーがスキーマを入力しない限り、該当するものは機能しません。テーブルにアクセスするためにスキーマが必要かどうかを SQL クエリを介して判断できるようにして、ユーザーに警告できるようにしたいと考えています。

私は質問を認識しています-Oracleユーザーがアクセスできるスキーマのリストを取得するにはどうすればよいですか-しかし、テーブルにアクセスするためにスキーマを使用する必要があるかどうかではなく、どのスキーマにアクセスできるかしかわかりません。

そのユーザーの権限でこれを実行できるシステム テーブルの 1 つに対する SQL クエリはありますか?

注: アプリケーションにはログイン資格情報しかなく、テーブルの詳細はわかりません。

それが明らかであることを願っています。ありがとう。

4

1 に答える 1

0

質問は紛らわしいです。Oracle では、ほとんどの場合、LOGIN == USER == SCHEMA と考えることができます。ユーザーでデータベースにログインすると、そのユーザーのスキーマ内のすべてのオブジェクトを表示してアクセスできます。
接続しているユーザーがテーブルにアクセスする権限を持っている場合 (別の権限があります...)、他のスキーマ (同じデータベース サーバー上) のオブジェクトに SCHEMA2.TABLE1 からアクセスできます。いくつかのコメントで既に述べたように、シノニムが存在する場合、テーブルにプレフィックスを付ける必要はありません。
適切なデータベース リンクが存在する場合、ユーザーはリモート サーバー上のテーブルにもアクセスできます。

于 2013-02-05T13:31:46.347 に答える