2010-10-03 14 views

Répondre

9

Dans Oracle, il y a trois formes de la plupart des tableaux de données de dictionnaire qui décrivent différents types d'objets

  • ALL_*
  • USER_*
  • DBA_*

Le DBA_ * tables ont des informations sur tous les objets spécifiés dans la base de données. Ainsi, DBA_TABLES aura des informations sur chaque table de la base de données, que vous ayez ou non accès à l'objet sous-jacent.

Les tables ALL_ * contiennent des informations sur tous les objets spécifiés dans la base de données auxquels vous avez accès. Donc, ALL_TABLES aura des informations sur toutes les tables de la base de données auxquelles vous avez accès. Enfin, les tables USER_ * contiennent des informations sur tous les objets spécifiés dans la base de données que vous possédez. Ainsi, USER_TABLES aura des informations sur toutes les tables que vous possédez (c'est-à-dire toutes les tables de votre schéma).

Par défaut, les utilisateurs normaux n'ont pas accès aux tables DBA_ *, uniquement aux tables USER_ * et ALL_ *. Si vous souhaitez interroger les tables DBA_ *, vous devez utiliser le privilège SELECT ANY DICTIONARY ou le rôle SELECT_CATALOG_ROLE. En plus de l'affichage du dictionnaire de données DBA/ALL/USER_ *, Oracle fournit également des vues V $ pour les informations de performances dynamiques (par exemple, V $ SESSION inclut des informations sur toutes les sessions de la base de données). Pour chaque vue V $, il existe également une vue GV $ qui affiche les informations de toutes les instances si vous utilisez un cluster RAC.

+1

Excellente réponse. – Sana