Répondre 1:

Un «utilisateur» est un identifiant de connexion, avec un nom (et un mot de passe).

Un «schéma» est un préfixe de nom d'objet, donc agit comme un «groupement» pour les tables, les index, les vues, les procédures, les fonctions,…

Donc, en principe, les deux n'ont rien à voir l'un avec l'autre. Mais …

Un utilisateur (ou en fait: une session) peut accéder aux tables résidant dans plusieurs schémas, ou peut même avoir créé des objets dans plusieurs schémas, mais il ne peut avoir qu'un seul schéma comme «schéma par défaut», c'est-à-dire: le préfixe de table ajouté par le Serveur Oracle lorsqu'un nom de table est spécifié sans préfixe.

Par ailleurs, le schéma par défaut d'un utilisateur (session) est son nom d'utilisateur.

Exemple: supposons que mon nom d'utilisateur est peter.

SELECT * FROM my_table

sera traduit par Oracle en

SELECT * FROM peter.my_table

Mais je peux facilement accéder aux tables dans d'autres schémas en ajoutant explicitement le préfixe, par exemple

SELECT * FROM joan.her_table

(à condition d'avoir l'autorité SELECT sur cette table).

En plus de tout cela, certains objets (en fait: des vues) sont dans le schéma «public», comme s'ils n'avaient pas de schéma du tout. Pour ces objets, aucun préfixe n'est autorisé et tous les utilisateurs voient ces vues comme si elles se trouvaient dans «leur» schéma actuel.

Par exemple:

SELECT * FROM all_tables

affiche le même résultat à n'importe qui, quel que soit son schéma par défaut.


Répondre 2:

En tant qu'utilisateur de haut niveau, il est possible de se déplacer entre les schémas; mais ce n'est pas une bonne façon de faire les choses. Il est préférable de se connecter au schéma avec lequel vous souhaitez travailler. Il vaut mieux être l'un des utilisateurs de ce schéma. En tant qu'administrateur. essayez de limiter votre activité. Planifiez vos actions. Entrer et sortir. Vous pouvez faire beaucoup de dégâts.