Ich bin wirklich verwirrt mit den Begriffen Datenbank, Benutzer und Schema. Kann jemand erklären, wie sie sich voneinander unterscheiden (wenn sie es sind)?
Wenn sie dann gleich sind, was sind die Ähnlichkeiten zwischen ihnen? Wie benutzen wir sie? Und wie schaffen wir sie?
Antworten:
In Oracle sind Benutzer und Schemas im Wesentlichen dasselbe. Sie können davon ausgehen, dass ein Benutzer das Konto ist, mit dem Sie eine Verbindung zu einer Datenbank herstellen. Ein Schema ist die Gruppe von Objekten (Tabellen, Ansichten usw.), die zu diesem Konto gehören.
Siehe diesen Beitrag zum Stapelüberlauf: Unterschied zwischen einem Benutzer und einem Schema in Oracle? Für weitere Details und zusätzliche Links.
Mit der
create user
Anweisung legen Sie Benutzer an . Dadurch wird auch das Schema "erstellt" (anfangs leer) - Sie können kein Schema als solches erstellen, es ist an den Benutzer gebunden. Sobald der Benutzer erstellt wurde, kann ein Administrator dem Benutzer Berechtigungen erteilen, mit denen er Tabellen erstellen,select
Abfragen ausführeninsert
und alles andere ausführen kann.Die Datenbank enthält alle von Ihnen erstellten Benutzer und deren Daten (sowie eine Reihe vordefinierter Systembenutzer, Tabellen, Ansichten usw., die das Ganze zum Funktionieren bringen). Sie sollten sich die Oracle Database Architecture- Dokumentation im Concepts Guide ansehen (eigentlich ist diese ganze Seite einen Besuch wert - es gibt einen Abschnitt über Benutzer und Schemata weiter oben auf dieser Seite), um eine Einführung zu erhalten, was eine Datenbank ist und was eine Datenbank - Instanz ist - zwei wichtige Konzepte.
Sie können mit der
create database
Anweisung eine Datenbank erstellen , nachdem Sie den Oracle-Software-Stack installiert haben. Die Verwendung vondbca
(Assistent zur Datenbankerstellung) ist jedoch einfacher.quelle
Entsprechend der Art und Weise, wie die Terminologie manchmal verwendet wird , sind a
USER
und aSCHEMA
etwas ähnlich. Es gibt aber auch einen großen Unterschied. AUSER
kann alsSCHEMA
"USER
" bezeichnet werden, wenn der " " ein Objekt besitzt, sonst bleibt es nur ein "USER
". Sobald derUSER
mindestens ein Objekt besitzt, kann es aufgrund all Ihrer obigen DefinitionenUSER
als a bezeichnet werdenSCHEMA
.quelle
Um den Unterschied zu verstehen, müssen wir zunächst sagen, dass diese Nomenklatur ein Fehler von Oracle war.
Ich gehe davon aus, dass Sie, wenn Sie ein ERP mit dem Namen TRITON haben, möchten, dass Ihre Datenbank den Namen TRITON trägt, oder wenn meine Firma den Namen JENNY EXPORT trägt, ich möglicherweise den Namen JENNYEXP für meine Datenbank entscheide und keinen Benutzer mit demselben Namen benötige .
In Oracle müssen Sie einen USER erstellen, bevor Sie die Tabellen erstellen, und seltsamerweise heißt diese TABLES-Auflistung SCHEMA.
Dann können Sie die tatsächlichen Benutzer erstellen und die entsprechenden Berechtigungen für die Arbeit mit einer Datenbank wie TRITON gemäß diesem Beispiel erteilen. Wenn Sie eine Verbindung über SQL DEVELOPER herstellen, müssen Sie übrigens EINE VERBINDUNG NAMEN.
Ich weiß, dass ich irgendwie frustriert klinge, aber es ist sinnvoller für mich, die MS SQL SERVER-Namenskonvention zu verwenden, und ich könnte hinzufügen, dass ich früher mit Oracle gearbeitet habe als mit SQL SERVER.
quelle
Datenbank.
Die Datenbank ist eine Sammlung von Daten, in denen tatsächlich Daten gespeichert sind. Es handelt sich um eine physische Speicherkomponente, die mit einem Computer verbunden ist, auf dem DBMS-Software installiert ist, um die Daten in dieser Speicherkomponente zu manipulieren. Der Computer, auf dem die dbms-Software installiert ist, heißt Server oder Datenbankserver. Sowohl Server (Computer) als auch Datenbank (Speicherkomponente) unterscheiden sich jedoch In den meisten Fällen als "Gleich" bezeichnet, je nach Situation.
USER und SCHEMA
Die beiden Wörter "Benutzer" und "Schema" sind austauschbar. Deshalb sind die meisten Leute mit diesen Wörtern verwirrt.
Benutzer
Benutzer ist ein Konto zum Verbinden der Datenbank (Server). Wir können Benutzer mit CREATE USER IDENTIFIED BY erstellen.
Schema
Tatsächlich enthält Oracle Database eine logische und physikalische Struktur zur Verarbeitung der Daten. Das Schema auch logische Struktur zur Verarbeitung der Daten in der Datenbank (Memory Component). Es wird automatisch von Oracle erstellt, wenn der Benutzer es erstellt. Es enthält alle Objekte, die vom diesem Schema zugeordneten Benutzer erstellt wurden. Wenn ich beispielsweise einen Benutzer mit dem Namen
santhosh
erstellt habesanthosh
, erstellt Oracle ein genanntes Schema. Oracle speichert alle vom Benutzer erstellten Objektesanthosh
imsanthosh
Schema.Wir können mithilfe der
CREATE SCHEMA
Anweisung ein Schema erstellen , aber Oracle erstellt automatisch einen Benutzer für dieses Schema.Wir können das Schema mithilfe der
DROP SCHEMA <name> RESTRICT
Anweisung löschen, aber es kann keine im Schema enthaltenen Objekte löschen. Um das Schema zu löschen, muss es leer sein. hier zwingt Sie das einschränkende Wort, dieses Schema ohne Objekte anzugeben.Wenn wir versuchen, einen Benutzer mit Objekten in seinem Schema
CASCADE
zu löschen, müssen wir word angeben, da Oracle das Löschen eines Benutzers mit Objekten nicht zulässt.DROP USER <name> CASCADE
Damit löscht Oracle die Objekte im Schema und löscht den Benutzer dann automatisch. Objekte, die auf diese Schemaobjekte aus anderen Schema-Ansichten und privaten Synonymen verweisen, werden ungültig.
quelle
Ich möchte hinzufügen, dass die obigen Anweisungen für die Implementierung von Oracle gelten, aber andere Datenbanken, einschließlich SQL Server und PostgreSQL, das Schema nur als Namespace verwenden, dh als Methode zum Gruppieren von Objekten. Das Staging-Schema könnte beispielsweise alle in Staging-Daten verwendeten Objekte gruppieren, das Accounting-Schema könnte alle Objekte gruppieren, die sich auf das Accounting beziehen.
quelle
User! = Schema, User und Schema sind nicht identisch, werden jedoch synonym verwendet
quelle
Ich sage Ihnen nach Konzepten, die nicht auf einem von Ihnen verwendeten Datenbankverwaltungssystem basieren.
Konzeptionell: Datenbank: Ist nur ein Stapel von Daten, meist nicht verwaltete verwandte oder nicht verwandte Daten.
Schema: Schema bezieht sich auf die formale Strukturierung der nicht verwalteten verwandten / nicht verwandten Daten, damit sie von einem Verwaltungssystem verwaltet werden können, das die vom Schema bereitgestellte formale Definition versteht. Schema ist grundsätzlich ein Schema zur Übersicht. Zum Beispiel haben Sie XSD, das das Schema zum Erstellen von XML definiert. Sie haben RDBMS, das seine eigenen Schemata definiert, die auf Codd Rules basieren, die im Grunde Schemata zum Erstellen von RDBMS definieren.
Wenn Sie mehr darüber wissen möchten, klicken Sie auf diesen Link .
Der Benutzer verwendet die vom Schema angegebene formale Sprache, um auf die Datenbank zuzugreifen
quelle