Unterschied zwischen einem Benutzer und einem Schema in Oracle?


Answers

Ich glaube, das Problem ist, dass Oracle den Begriff " Schema" etwas anders verwendet, als er es normalerweise meint.

  1. Oracle-Schema (wie in Nebakanezers Antwort erklärt): im Grunde die Menge aller Tabellen und anderer Objekte, die einem Benutzerkonto gehören, also in etwa einem Benutzerkonto entspricht
  2. Schema allgemein: Die Menge aller Tabellen, Sprocs usw., aus denen die Datenbank für ein bestimmtes System / eine bestimmte Anwendung besteht (wie in "Entwickler sollten mit den DBAs über das Schema für unsere neue Anwendung sprechen.")

Schema in Sinn 2. ist ähnlich, aber nicht dasselbe wie Schema in Sinn 1. ZB für eine Anwendung, die mehrere DB-Konten verwendet, könnte ein Schema in Sinn 2 aus mehreren Oracle-Schemata bestehen :-).

Plus- Schema kann auch eine Menge anderer, ziemlich nicht zusammenhängender Dinge in anderen Kontexten bedeuten (zB in Mathematik).

Oracle hätte einfach einen Begriff wie "userarea" oder "accountobjects" verwenden sollen, anstatt "schema" zu überladen ...

Question

Was ist der Unterschied zwischen einem Benutzer und einem Schema in Oracle?




Denken Sie an einen Benutzer, wie Sie es normalerweise tun (Benutzername / Passwort mit Zugriff zum Anmelden und Zugriff auf einige Objekte im System) und ein Schema als Datenbankversion des Basisverzeichnisses eines Benutzers. Der Benutzer "foo" erstellt im Allgemeinen Dinge unter dem Schema "foo", zum Beispiel, wenn der Benutzer "foo" eine Tabelle "bar" erstellt oder darauf verweist, nimmt Oracle an, dass der Benutzer "foo.bar" bedeutet.




Aufgrund meiner geringen Kenntnisse von Oracle ... sind ein USER und ein SCHEMA ähnlich. Aber es gibt auch einen großen Unterschied. Ein USER kann als SCHEMA bezeichnet werden, wenn der "USER" ein Objekt besitzt, ansonsten ... es bleibt nur ein "USER". Wenn der BENUTZER mindestens ein Objekt besitzt, dann kann der BENUTZER dank aller oben genannten Definitionen nun als SCHEMA bezeichnet werden.




--USER und SCHEMA

Die beiden Wörter Benutzer und Schema sind austauschbar, weshalb die meisten Leute Verwirrung über diese Wörter bekommen. Ich erklärte den Unterschied zwischen ihnen

--User User ist ein Konto zum Verbinden der Datenbank (Server). Wir können Benutzer mit CREATE USER Benutzernamen IDENTIFIED BY-Kennwort erstellen.

--Schema

Tatsächlich enthält die Oracle-Datenbank logische und physikalische Strukturen, um die Daten zu verarbeiten. Das Schema auch Logische Struktur, um die Daten in der Datenbank (Speicherkomponente) zu verarbeiten. Es wird automatisch von Oracle erstellt, wenn der Benutzer created.It enthält alle Objekte, die von dem diesem Schema zugeordneten Benutzer erstellt wurden. Wenn ich beispielsweise einen Benutzer mit dem Namen santhosh erstellt habe, erstellt Oracle ein Schema namens santhosh, oracle speichert alle vom Benutzer santhosh erstellten Objekte in santhosh Schema.

Wir können ein Schema mit der CREATE SCHEMA-Anweisung erstellen, aber Oracle erstellt automatisch einen Benutzer für dieses Schema.

Wir können das Schema löschen, indem wir DROP SCHEMA schama_name RESTRICT-Anweisung verwenden, aber scehema contains objects nicht löschen kann. Um das Schema zu löschen, muss es leer sein. Das restrict-Wort legt das Schema mit out-Objekten fest.

Wenn wir versuchen, einen Benutzer mit Objekten in seinem Schema zu löschen, müssen wir ein CASCADE-Wort angeben, da Oracle nicht erlaubt, Benutzer enthaltende Objekte zu löschen. DROP USER Benutzername CASCADE so oracle löscht die Objekte im Schema und löscht den Benutzer automatisch. Objekte, die auf dieses Schema verwiesen werden, werden von anderen Schemas wie Ansichten und privaten Synonymen in den ungültigen Zustand versetzt.

Ich hoffe, jetzt hast du den Unterschied zwischen ihnen, wenn du irgendwelche Zweifel an diesem Thema hast, kannst du gerne fragen.

Vielen Dank.




Es ist sehr einfach.

If USER has OBJECTS
then call it SCHEMA
else
     call it USER
end if;

Ein Benutzer kann Zugriff auf Schemaobjekte erhalten, die verschiedenen Benutzern gehören.




Schema ist ein Container von Objekten. Es gehört einem Benutzer.




Ein Benutzerkonto ist wie ein Verwandter, der einen Schlüssel zu Ihrem Haus besitzt, aber nichts besitzt, dh ein Benutzerkonto besitzt kein Datenbankobjekt ... kein Datenwörterbuch ...

Während ein Schema eine Kapselung von Datenbankobjekten ist. Es ist wie der Besitzer des Hauses, der alles in Ihrem Haus besitzt, und ein Benutzerkonto wird in der Lage sein, auf die Waren im Haus nur dann zuzugreifen, wenn der Eigentümer, dh das Schema, ihm benötigte Zuschüsse gibt.