web-dev-qa-db-fra.com

Différence entre la base de données, l'utilisateur et le schéma

Je suis vraiment confus avec les termes base de données, utilisateur et schéma. Quelqu'un peut-il expliquer en quoi ils sont différents les uns des autres (s'ils le sont)?

S'ils sont identiques, quelles sont les similitudes entre eux? Comment les utilisons-nous? Et comment les créons-nous?

88
Ravi

Dans Oracle, les utilisateurs et les schémas sont essentiellement la même chose. Vous pouvez considérer qu'un utilisateur est le compte que vous utilisez pour vous connecter à une base de données, et un schéma est l'ensemble d'objets (tables, vues, etc.) qui appartiennent à ce compte.

Voir cet article sur Stack Overflow: différence entre un utilisateur et un schéma dans Oracle? pour plus de détails et des liens supplémentaires.

Vous créez des utilisateurs avec create user instruction. Cela "crée" également le schéma (initialement vide) - vous ne pouvez pas créer un schéma en tant que tel, il est lié à l'utilisateur. Une fois l'utilisateur créé, un administrateur peut accorder des privilèges à l'utilisateur, ce qui lui permettra de créer des tables, d'exécuter des requêtes select, insert et tout le reste.

La base de données est la chose qui contient tous les utilisateurs que vous avez créés, et leurs données (et un tas d'utilisateurs système prédéfinis, de tables, de vues, etc. qui font fonctionner le tout). Vous devriez consulter la documentation Oracle Database Architecture du Guide des concepts (en fait, toute cette page mérite d'être lue - il y a une section sur les utilisateurs et les schémas plus haut dans cette page) pour obtenir une introduction à ce une base de données est, et ce qu'est une instance de base de données - deux concepts importants.

Vous pouvez créer une base de données avec create database , une fois que vous avez installé la pile logicielle Oracle. Mais utiliser dbca (assistant de création de base de données) est plus facile à démarrer.

86
Mat

Pour commencer à comprendre la différence, je pense que nous devons commencer à dire que cette nomenclature était une erreur d'Oracle.

Je suppose que si vous avez un ERP appelé TRITON, vous voulez que votre base de données soit nommée TRITON, ou si mon entreprise s'appelle JENNY EXPORT, je pourrais décider que ma base de données s'appelle JENNYEXP ou quelque chose comme ça, pas besoin d'un utilisateur du même nom.

Dans Oracle, vous devez créer un UTILISATEUR avant de créer les tables et assez bizarre cette collection de TABLES s'appelle SCHEMA.

Ensuite, vous pouvez créer les utilisateurs réels et accorder les autorisations appropriées pour travailler avec une base de données telle que TRITON selon cet exemple, en passant, si vous vous connectez via SQL DEVELOPER, vous devez NOMMER UNE CONNEXION.

Je sais que j'ai l'air un peu frustré mais cela a plus de sens pour moi la convention de nommage MS SQL SERVER et je pourrais ajouter que j'ai travaillé avec Oracle plus tôt que SQL SERVER.

4
Glauco Guerrero

Selon la façon dont la terminologie est parfois utilisée , un USER et un SCHEMA sont quelque peu similaires. Mais il y a aussi une différence majeure. Un USER peut être appelé un SCHEMA si le "USER" possède un objet, sinon il ne restera qu'un "USER". Une fois que le USER possède au moins un objet, en vertu de toutes vos définitions ci-dessus ... le USER peut maintenant être appelé un SCHEMA.

3
JOHNNIE

Base de données.

La base de données est une collection de données, où en réalité les données sont stockées. C'est un composant de mémoire physique connecté à un ordinateur installé avec un logiciel SGBD pour manipuler les données dans ce composant de mémoire, l'ordinateur installé avec le logiciel dbms est appelé serveur ou serveur de base de données. Le serveur (ordinateur) et la base de données (composant de mémoire) sont différents mais La plupart du temps référé comme Même en fonction de la situation.

UTILISATEUR et SCHÉMA

Les deux mots, utilisateur et schéma, sont interchangeables, c'est pourquoi la plupart des gens se confondent avec ces mots.

Utilisateur

L'utilisateur est un compte pour se connecter à la base de données (serveur). nous pouvons créer un utilisateur en utilisant CREATE USER IDENTIFIED BY.

Schéma

En fait, Oracle Database contient une structure logique et physique pour traiter les données. Le schéma également la structure logique pour traiter les données dans la base de données (composant mémoire). Il est créé automatiquement par Oracle lors de la création de l'utilisateur. Il contient tous les objets créés par l'utilisateur associé à ce schéma. Par exemple, si j'ai créé un utilisateur avec le nom santhosh puis Oracle crée un schéma appelé santhosh, Oracle stocke tous les objets créés par l'utilisateur santhosh dans le schéma santhosh.

Nous pouvons créer un schéma en utilisant le CREATE SCHEMA, mais Oracle crée automatiquement un utilisateur pour ce schéma.

Nous pouvons supprimer le schéma en utilisant le DROP SCHEMA <name> RESTRICT, mais il ne peut pas supprimer les objets contenus dans le schéma, donc pour supprimer le schéma, il doit être vide. ici, la restriction Word vous oblige à spécifier ce schéma sans objets.

Si nous essayons de supprimer un utilisateur contenant des objets dans son schéma, nous devons spécifier CASCADE Word car Oracle ne vous permet pas de supprimer un utilisateur contenant des objets.

DROP USER <name> CASCADE

oracle supprime donc les objets du schéma et supprime automatiquement l'utilisateur.

3
SanthoshReddy