別のスキーマのすべてのテーブルを表示するには、次のシステム権限の1つ以上が必要です。
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
または大きなハンマー、DBAの役割。
これらのいずれかを使用して、次を選択できます:
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
これらのシステム権限がないと、直接またはロールを介して、ある程度のアクセス権が付与されているテーブルしか表示できません。
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
最後に、テーブルに対する権限を取り消すことはできないため、いつでもデータディクショナリに自分のテーブルを照会できます(10g以降):
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'