Różnica między bazą danych a użytkownikiem a schematem

78

Jestem naprawdę mylony z bazą danych warunków, użytkownikiem i schematem. Czy ktoś może wyjaśnić, czym się różnią (jeśli są)?

Jeśli są takie same, jakie są między nimi podobieństwa? Jak z nich korzystamy? Jak je tworzymy?

Ravi
źródło
Nadzieję, że to da podstawowe pojęcia: answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

Odpowiedzi:

77

W Oracle użytkownicy i schematy są zasadniczo takie same. Możesz uznać, że użytkownik jest kontem używanym do łączenia się z bazą danych, a schemat to zbiór obiektów (tabele, widoki itp.), Które należą do tego konta.

Zobacz ten post na temat przepełnienia stosu: różnica między użytkownikiem a schematem w Oracle? po więcej szczegółów i dodatkowe linki.

Tworzysz użytkowników za pomocą create userwyciągu. Spowoduje to również „utworzenie” schematu (początkowo pusty) - nie można utworzyć schematu jako takiego, jest on powiązany z użytkownikiem. Po utworzeniu użytkownika administrator może przyznać mu uprawnienia, które umożliwią mu tworzenie tabel, wykonywanie selectzapytań inserti wszystko inne.

Baza danych zawiera wszystkie utworzone przez Ciebie użytkowników i ich dane (oraz grupę predefiniowanych użytkowników systemu, tabel, widoków itp., Dzięki którym wszystko działa). Powinieneś spojrzeć na dokumentację architektury bazy danych Oracle w Przewodniku pojęć (właściwie cała strona jest warta przeczytania - na tej stronie znajduje się sekcja o użytkownikach i schematach), aby uzyskać wprowadzenie do tego, czym jest baza danych i jakie instancja bazy danych to - dwie ważne koncepcje.

Po utworzeniu create databasestosu oprogramowania Oracle można utworzyć bazę danych z instrukcją. Jednak korzystanie z dbca(asystenta tworzenia bazy danych) jest łatwiejsze.

Mata
źródło
2

Zgodnie ze sposobem, w jaki terminologia jest czasami używana , a USERi a SCHEMAsą nieco podobne. Ale jest też duża różnica. USERMożna nazwać SCHEMA, jeśli „ USER” posiada żadnych przedmiotów, w przeciwnym razie będzie to tylko pozostać „ USER”. Kiedyś USERposiada przynajmniej jeden obiekt, to na podstawie wszystkich powyższych definicji ... USERmożna go teraz nazwać SCHEMA.

JOHNNIE
źródło
Wydaje mi się, że chodzi tu o to, że termin „SCHEMA” ma wiele aspektów. Jest to przestrzeń nazw dla obiektów bazy danych z jednej strony. Ponadto w Oracle (i innych?), Ale nie w PostgreSQL, jest to przestrzeń nazw obiektów bazy danych zawierająca dokładnie obiekty utworzone przez użytkownika współdzielącego nazwę schematu. Z innej perspektywy są to relacje i struktura obiektów w bazie danych, często ignorując zarówno własność, jak i przestrzeń nazw.
Andrew Wolfe,
2

Aby zacząć rozumieć różnicę, myślę, że musimy zacząć mówić, że ta nomenklatura była błędem Oracle.

Zakładam, że jeśli masz ERP o nazwie TRITON, chcesz, aby twoja baza danych nazywała się TRITON, lub jeśli moja firma nazywa się JENNY EXPORT, mogę zdecydować, że moja baza danych nazywa się JENNYEXP lub coś w tym rodzaju, nie ma potrzeby, aby użytkownik o tej samej nazwie .

W Oracle musisz utworzyć USER przed utworzeniem tabel, a co dziwne, ta kolekcja TABLES nazywa się SCHEMA.

Następnie możesz utworzyć rzeczywistych użytkowników i przyznać odpowiednie uprawnienia do pracy z taką bazą danych, jak TRITON, jak w tym przykładzie, nawiasem mówiąc, jeśli łączysz się przez SQL DEVELOPERA, musisz NAZWAĆ POŁĄCZENIE.

Wiem, że jestem trochę sfrustrowany, ale dla mnie bardziej sensowna jest konwencja nazewnictwa MS SQL SERVER i mogę dodać, że pracowałem z Oracle wcześniej niż SQL SERVER.

Glauco Guerrero
źródło
1

Baza danych.

Baza danych to zbiór danych, w którym faktycznie przechowywane są dane. Jest to fizyczny komponent pamięci podłączony do komputera zainstalowanego z oprogramowaniem DBMS w celu manipulowania danymi w tym komponencie pamięci, komputer zainstalowany z oprogramowaniem dbms nazywa się Serwer lub Serwer bazy danych. Zarówno Serwer (Komputer), jak i Baza danych (komponent pamięci) są różne, ale Najczęściej określane jako „Same” w zależności od sytuacji.

UŻYTKOWNIK i SCHEMA

Oba słowa, użytkownik i schemat, są wymienne, dlatego większość ludzi myli się na tych słowach.

Użytkownik

Użytkownik jest kontem do połączenia bazy danych (serwer). możemy utworzyć użytkownika za pomocą opcji UTWÓRZ IDENTYFIKOWANEGO UŻYTKOWNIKA.

Schemat

W rzeczywistości baza danych Oracle zawiera logiczną i fizyczną strukturę do przetwarzania danych. Schemat również struktura logiczna do przetwarzania danych w bazie danych (komponent pamięci). Jest tworzony automatycznie przez Oracle po utworzeniu przez użytkownika. Zawiera wszystkie obiekty utworzone przez użytkownika powiązanego z tym schematem. Na przykład, jeśli utworzyłem użytkownika o nazwie, santhoshwówczas Oracle tworzy schemat o nazwie santhosh, Oracle przechowuje wszystkie obiekty utworzone przez użytkownika santhoshw santhoshschemacie.

Możemy stworzyć schemat za pomocą CREATE SCHEMAinstrukcji, ale Oracle automatycznie tworzy użytkownika dla tego schematu.

Możemy upuścić schemat za pomocą DROP SCHEMA <name> RESTRICTinstrukcji, ale nie można usunąć obiektów zawartych w schemacie, więc aby upuścić schemat, musi być pusty. w tym przypadku słowo ograniczające wymusza określenie tego schematu bez obiektów.

Jeśli spróbujemy usunąć użytkownika zawierającego obiekty w jego schemacie, musimy podać CASCADEsłowo, ponieważ Oracle nie pozwala na usunięcie użytkownika zawierającego obiekty.

DROP USER <name> CASCADE

więc Oracle usuwa obiekty ze schematu, a następnie automatycznie upuszcza użytkownika, Obiekty odwoływały się do tych obiektów schematu z innych schematów, takich jak widoki i prywatne synonimy, przechodzą w stan nieprawidłowy.

SanthoshReddy
źródło
-2

Dodam, że powyższe instrukcje dotyczą implementacji Oracle, ale inne bazy danych, w tym SQL Server i PostgreSQL, używają schematu jako przestrzeni nazw, tj. Sposobu grupowania obiektów. Na przykład schemat pomostowy może grupować wszystkie obiekty używane w danych pomostowych, schemat rachunkowości może grupować wszystkie obiekty związane z rachunkowością.

użytkownik3869678
źródło
Nie jestem pewien, do czego się odwołujesz, gdy mówisz „instrukcje powyżej”, ale schemat w SQL i Oracle to grupowanie uprawnień. Innymi słowy, nie jest to tylko sposób grupowania podobnych obiektów, ale sposób grupowania obiektów, który ułatwi zarządzanie uprawnieniami, ponieważ można udzielać uprawnień do schematu, a tym samym unikać konieczności udzielania uprawnień do każdego obiektu w schemacie.
Thronk
-4

Użytkownik! = Schemat, Użytkownik i Schemat nie są takie same, ale są używane zamiennie

użytkownik24990
źródło
2
Dodaj szczegóły dotyczące ich różnic.
Erik,
-4

Mówię ci zgodnie z koncepcjami nieopartymi na żadnym systemie zarządzania bazami danych, którego używasz.

Koncepcyjnie: Baza danych: jest tylko stosem danych, w większości niezarządzanymi powiązanymi lub niepowiązanymi danymi.

Schemat: Schemat odnosi się do formalnej struktury niezarządzanych powiązanych / niepowiązanych danych, aby można nimi zarządzać za pomocą jakiegoś systemu zarządzania, który rozumie formalną definicję podaną przez schemat. Schemat jest w zasadzie schematem zapewniającym przegląd. Na przykład masz XSD, który definiuje schemat tworzenia XML. Masz RDBMS, który definiuje własne schematy oparte na Regułach Codda, które w zasadzie definiują schematy tworzenia RDBMS.

Jeśli chcesz dowiedzieć się więcej, zapoznaj się z tym linkiem .

Użytkownik korzysta z języka formalnego określonego w schemacie, aby uzyskać dostęp do bazy danych

Ajay Bhojak
źródło