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

79

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ée-t-on?

Ravi
la source
J'espère que cela vous donnera l'idée de base: answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

Réponses:

78

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 qu'un schéma correspond à l'ensemble des objets (tables, vues, etc.) appartenant à ce compte.

Voir ce post 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 l' create userinstruction. Cela "crée" également le schéma (initialement vide) - vous ne pouvez pas créer de schéma en tant que tel, il est lié à l'utilisateur. Une fois l'utilisateur créé, un administrateur peut lui octroyer des privilèges, ce qui lui permet de créer des tables, d'exécuter des selectrequêtes insertet tout le reste.

La base de données contient tous les utilisateurs que vous avez créés, ainsi que leurs données (et un ensemble d’utilisateurs système prédéfinis, de tables, de vues, etc. qui font fonctionner l’ensemble). Vous devriez consulter la documentation relative à l’ architecture de la base de données Oracle dans le Guide des concepts (en fait, cette page vaut la peine d’être lue - il existe une section sur les utilisateurs et les schémas plus haut dans cette page) pour obtenir une introduction à ce qu’est une base de données et ce qu’elle est. instance de base de données est - deux concepts importants.

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

Tapis
la source
2

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

JOHNNIE
la source
Je pense que ce que vous dites ici, c'est que le terme «SCHEMA» a plusieurs facettes. C'est un espace de noms pour les objets de base de données d'une part. En outre, dans Oracle (et d'autres?) Mais pas PostgreSQL, il s'agit d'un espace de nom d'objet de base de données contenant exactement les objets créés par l'utilisateur partageant le nom du schéma. D'un autre point de vue, il s'agit des relations et de la structure des objets d'une base de données, ignorant souvent à la fois la propriété et l'espace de noms.
Andrew Wolfe
2

Pour commencer à comprendre la différence, je pense que nous devons commencer par 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 s'appelle 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 du genre, aucun utilisateur du même nom n'est nécessaire. .

Dans Oracle, vous devez créer un utilisateur avant de créer les tables et assez bizarre cette collection de tables est appelée SCHEMA.

Ensuite, vous pouvez créer les utilisateurs réels et accorder les autorisations appropriées pour utiliser une base de données telle que TRITON, comme dans cet exemple. En passant, si vous vous connectez via SQL DEVELOPER, vous devez nommer une connexion.

Je sais que je suis un peu frustré, mais la convention de dénomination MS SQL SERVER est plus logique et je pourrais ajouter que j’ai travaillé avec Oracle plus tôt que SQL SERVER.

Glauco Guerrero
la source
1

Base de données.

La base de données est une collection de données, où réellement les données stockées. C’est un composant physique de mémoire connecté à un ordinateur Installé avec le logiciel SGBD pour manipuler les données de ce composant, l’ordinateur installé avec le logiciel dbms s’appelle serveur ou serveur de base de données. Le serveur (ordinateur) et la base de données (composant mémoire) La plupart du temps, référé comme identique en fonction de la situation.

UTILISATEUR et SCHEMA

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

Utilisateur

L'utilisateur est un compte pour 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. La structure logique également de schéma pour traiter les données dans la base de données (composant de 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 je crée un utilisateur avec un nom, santhoshpuis Oracle crée un schéma appelé santhosh, Oracle stocke tous les objets créés par l'utilisateur santhoshdans le santhoshschéma.

Nous pouvons créer un schéma à l'aide de l' CREATE SCHEMAinstruction, mais Oracle crée automatiquement un utilisateur pour ce schéma.

Nous pouvons supprimer le schéma à l'aide de l' DROP SCHEMA <name> RESTRICTinstruction, mais elle ne peut pas supprimer les objets contenus dans le schéma. Par conséquent, pour supprimer le schéma, il doit être vide. Ici, le mot restreint 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 CASCADEmot car Oracle ne vous permet pas de supprimer un utilisateur contenant des objets.

DROP USER <name> CASCADE

de sorte que Oracle supprime les objets du schéma, puis supprime automatiquement l'utilisateur. Les objets référencés à ces objets de schéma à partir d'un autre schéma, comme les vues et les synonymes privés, passent à l'état non valide.

SanthoshReddy
la source
-2

J'ajouterais que les instructions ci-dessus s'appliquent à la mise en œuvre d'Oracle, mais que d'autres bases de données, notamment SQL Server et PostgreSQL, utilisent le schéma comme un simple espace de noms, c'est-à-dire un moyen de regrouper des objets. Par exemple, le schéma de stockage intermédiaire peut regrouper tous les objets utilisés dans les données de stockage intermédiaire, le schéma de comptabilité peut regrouper tous les objets liés à la comptabilité.

utilisateur3869678
la source
Vous ne savez pas exactement à quoi vous faites référence lorsque vous dites "instructions ci-dessus", mais le schéma dans SQL et Oracle est un groupe d'autorisations. En d'autres termes, il ne s'agit pas simplement d'un moyen de regrouper des objets similaires, mais d'un moyen de regrouper des objets qui facilitera la gestion des autorisations car vous pourrez accorder des autorisations à un schéma et ainsi éviter de devoir accorder des autorisations à chaque objet du schéma.
Thronk
-4

User! = Schema, User et Schema ne sont pas identiques mais ils sont utilisés de manière interchangeable

utilisateur24990
la source
2
S'il vous plaît ajouter des détails concernant la façon dont ils sont différents.
Erik
-4

Je vous dis selon des concepts qui ne sont basés sur aucun type de système de gestion de base de données que vous utilisez.

Conceptuellement: Base de données: Il s’agit simplement d’une pile de données, principalement des données associées non gérées ou non gérées .

Schéma: Schéma fait référence à la structuration formelle des données liées / non liées non gérées de sorte qu'elles puissent être gérées par un système de gestion qui comprend la définition formelle fournie par le schéma. Schema est fondamentalement un schéma pour fournir une vue d'ensemble. Par exemple, vous avez XSD qui définit le schéma pour créer du XML. Vous avez un SGBDR qui définit ses propres schémas basés sur des règles de codd qui définissent en principe des schémas permettant de créer un SGBDR.

Maintenant, si vous voulez en savoir plus sur, référez-vous à ce lien .

L'utilisateur utilise le langage formel spécifié par le schéma pour accéder à la base de données.

Ajay Bhojak
la source