Pour voir toutes les tables d'un autre schéma, vous devez disposer d'un ou plusieurs des privilèges système suivants :
SELECT ANY DICTIONARY
(SELECT | INSERT | UPDATE | DELETE) ANY TABLE
ou le gros marteau, le rôle DBA.
Avec n'importe lequel d'entre eux, vous pouvez sélectionner :
SELECT DISTINCT OWNER, OBJECT_NAME
FROM DBA_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
Sans ces privilèges système, vous ne pouvez voir que les tables auxquelles vous avez obtenu un certain niveau d'accès, que ce soit directement ou via un rôle.
SELECT DISTINCT OWNER, OBJECT_NAME
FROM ALL_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
AND OWNER = '[some other schema]'
Enfin, vous pouvez toujours interroger le dictionnaire de données pour vos propres tables, car vos droits sur vos tables ne peuvent pas être révoqués (à partir de 10g) :
SELECT DISTINCT OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'