В чем разница между пользователем и схемой в Oracle?
Разница между пользователем и схемой в Oracle?
Ответ 1
Из Спросить Tom
Вы должны рассмотреть схему как учетную запись пользователя и совокупность всех объектов в ней как схема для всех целей и целей.
SCOTT - это схема, которая включает таблицы EMP, DEPT и BONUS с различными грантами и другие вещи.
SYS - это схема, которая включает в себя множество таблиц, представлений, грантов и т.д. и т.д. и т.д.
SYSTEM - это схема.....
Технически. Схема - это набор метаданных (словарь данных), используемых базой данных, обычно генерируется с использованием DDL. Схема определяет атрибуты базы данных, такие как таблицы, столбцы и свойства. Схема базы данных - это описание данных в базы данных.
Ответ 2
Я считаю, что проблема заключается в том, что Oracle использует термин "схема" несколько иначе, чем обычно.
- Схема Oracle (как объясняется в ответе Небаканезера): в основном набор всех таблиц и других объектов, принадлежащих учетной записи пользователя, что примерно эквивалентно учетной записи пользователя
- Схема в целом: набор всех таблиц, sprocs и т.д., которые составляют базу данных для данной системы/приложения (как в разделе "Разработчики должны обсудить с администраторами баз данных информацию о схеме для нашего нового приложения".)
Схема в смысле 2. похожа, но не такая же, как схема в смысле 1. Например. для приложения, которое использует несколько учетных записей БД, схема в смысле 2 может состоять из нескольких схем Oracle: -).
Схема Plus может также означать совокупность других, довольно несвязанных вещей в других контекстах (например, в математике).
Oracle должен просто использовать термин, например "userarea" или "accountobjects", вместо перегрузки в "схеме"...
Ответ 3
Из WikiAnswers:
- Схема - это набор объектов базы данных, включая логические структуры, такие как таблицы, представления, последовательности, хранимые процедуры, синонимы, индексы, кластеры и ссылки на базы данных.
- Пользователь владеет схемой.
- Пользователь и схема имеют одно и то же имя.
- Команда CREATE USER создает пользователя. Он также автоматически создает схему для этого пользователя.
- Команда CREATE SCHEMA не создает "схему", как она подразумевает, она просто позволяет вам создавать несколько таблиц и представлений и выполнять несколько грантов в вашей собственной схеме в одной транзакции.
- Для всех целей и целей вы можете рассматривать пользователя как схему и схему для пользователя.
Кроме того, пользователь может получить доступ к объектам в схемах, отличных от их собственных, если у них есть разрешение на это.
Ответ 4
Подумайте о пользователе, который вы обычно делаете (имя пользователя/пароль с доступом для входа в систему и доступа к некоторым объектам в системе), а схема - как версия базы данных домашней директории пользователя. Пользователь "foo" обычно создает вещи по схеме "foo" , например, если пользователь "foo" создает или ссылается на таблицу "bar", тогда Oracle будет предполагать, что пользователь означает "foo.bar".
Ответ 5
Этот ответ не определяет разницу между владельцем и схемой, но я думаю, что он добавляет к обсуждению.
В моем маленьком мире мышления:
Я боролся с идеей создания N числа пользователей, где я хочу, чтобы каждый из этих пользователей "потреблял" (ака, использует) одну схему.
Тим на oracle-base.com показывает, как это сделать (у N числа пользователей и каждого из этих пользователей будет "перенаправлено" на одну схему.
У него есть второй подход "синоним" (не указан здесь). Я просто цитирую версию CURRENT_SCHEMA (один из его подходов) здесь:
CURRENT_SCHEMA
ПодходЭтот метод автоматически использует атрибут
CURRENT_SCHEMA
session пользователей приложения к правильной схеме.Сначала мы создаем владельца схемы и пользователя приложения.
CONN sys/password AS SYSDBA -- Remove existing users and roles with the same names. DROP USER schema_owner CASCADE; DROP USER app_user CASCADE; DROP ROLE schema_rw_role; DROP ROLE schema_ro_role; -- Schema owner. CREATE USER schema_owner IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users; GRANT CONNECT, CREATE TABLE TO schema_owner; -- Application user. CREATE USER app_user IDENTIFIED BY password DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; GRANT CONNECT TO app_user;
Обратите внимание, что пользователь приложения может подключаться, но не имеет квоты табличного пространства или привилегии для создания объектов.
Затем мы создаем несколько ролей, чтобы разрешить доступ для чтения и записи только для чтения.
CREATE ROLE schema_rw_role; CREATE ROLE schema_ro_role;
Мы хотим предоставить нашему приложению пользовательский доступ для чтения и записи к схеме объектов, поэтому мы предоставляем соответствующую роль.
GRANT schema_rw_role TO app_user;
Нам нужно убедиться, что пользователь приложения имеет свою схему по умолчанию указывая на владельца схемы, поэтому мы создаем триггер AFTER LOGON сделайте это для нас.
CREATE OR REPLACE TRIGGER app_user.after_logon_trg AFTER LOGON ON app_user.SCHEMA BEGIN DBMS_APPLICATION_INFO.set_module(USER, 'Initialized'); EXECUTE IMMEDIATE 'ALTER SESSION SET current_schema=SCHEMA_OWNER'; END; /
Теперь мы готовы создать объект у владельца схемы.
CONN schema_owner/password CREATE TABLE test_tab ( id NUMBER, description VARCHAR2(50), CONSTRAINT test_tab_pk PRIMARY KEY (id) ); GRANT SELECT ON test_tab TO schema_ro_role; GRANT SELECT, INSERT, UPDATE, DELETE ON test_tab TO schema_rw_role;
Обратите внимание, как привилегии предоставляются соответствующим ролям. Без это, объекты не будут видны пользователю приложения. Мы сейчас имеют работоспособного владельца схемы и пользователя приложения.
SQL> CONN app_user/password Connected. SQL> DESC test_tab Name Null? Type ----------------------------------------------------- -------- ------------------------------------ ID NOT NULL NUMBER DESCRIPTION VARCHAR2(50) SQL>
Этот метод идеален, когда пользователь приложения просто альтернативная точка входа в основную схему, не требующая объектов свой.
Ответ 6
Это очень просто.
If USER has OBJECTS
then call it SCHEMA
else
call it USER
end if;
Пользователю может быть предоставлен доступ к объектам схемы, принадлежащим различным пользователям.
Ответ 7
Схема - это инкапсуляция DB.objects о идее/домене intrest и принадлежит пользователю ONE. Затем он будет использоваться другими пользователями/приложениями с подавленными ролями. Поэтому пользователям не нужно иметь схему, но схема должна иметь владельца.
Ответ 8
- USER и SCHEMA
Оба слова user и schema взаимозаменяемы, поэтому большинство людей путают эти слова ниже, я объяснял разницу между ними.
- Пользовательский пользователь - это учетная запись для подключения базы данных (Сервер). мы можем создать пользователя, используя пароль CREATE USER user_name IDENTIFIED BY.
- Схема
Фактически база данных Oracle содержит логическую и физическую структуру для обработки данных. Схема также логическая структура для обработки данных в базе данных (компонент памяти). Он создан автоматически с помощью oracle, когда пользователь создал. Он содержит все объекты, созданные пользователем, связанным с этой схемой. Например, если я создал пользователя с именем santhosh, тогда оракулы создадут схему под названием santhosh, oracle хранит все объекты, созданные пользователем santhosh в santhosh схема.
Мы можем создать схему с помощью инструкции CREATE SCHEMA, но Oracle автоматически создает пользователя для этой схемы.
Мы можем отбросить схему, используя оператор DROP SCHEMA schama_name RESTRICT, но он не может удалить scehema, содержащий объекты, поэтому, чтобы отбросить схему, она должна быть пуста. В этом случае ограничивающее слово просто указывает эту схему с отсутствующими объектами.
Если мы попытаемся удалить пользователя, содержащего объекты в его схеме, мы должны указать слово CASCADE, потому что oracle не позволяет удалять объекты, содержащие пользователя. DROP USER имя_пользователя CASCADE поэтому оракул удаляет объекты в схеме, а затем автоматически удаляет пользователя, объекты, ссылающиеся на эти объекты схемы из других схем, таких как представления и частные синонимы, относятся к недопустимому состоянию.
Надеюсь, теперь у вас есть разница между ними, если у вас есть какие-либо сомнения по этой теме, пожалуйста, не стесняйтесь спрашивать.
Спасибо.
Ответ 9
Пользователи схемы и базы данных одинаковы, но если у схемы есть принадлежащие объектам базы данных, и они могут делать что-либо их объект, но пользователь просто обращается к объектам, они не могут выполнять какие-либо операции DDL, пока пользователь схемы не предоставит вам правильные привилегии.
Ответ 10
Основываясь на моем небольшом знании Oracle... ПОЛЬЗОВАТЕЛЬ и SCHEMA несколько похожи. Но есть и большая разница. ПОЛЬЗОВАТЕЛЬ можно назвать SCHEMA, если "USER" владеет каким-либо объектом, иначе... он останется только "ПОЛЬЗОВАТЕЛЕМ". Когда USER владеет хотя бы одним объектом, то в силу всех ваших определений выше... USER теперь можно назвать SCHEMA.
Ответ 11
Пользователь: доступ к ресурсу базы данных. Как ключ, чтобы войти в дом.
Схема: сбор информации о объектах базы данных. Как указатель в вашей книге, в котором содержится краткая информация о главе.
Ответ 12
Учетная запись пользователя похожа на родственников, у которых есть ключ к вашему дому, но не имеет ничего, например, у учетной записи пользователя нет объекта базы данных... нет словаря данных...
В то время как схема представляет собой инкапсуляцию объектов базы данных. Это как владелец дома, которому принадлежит все в вашем доме, и учетная запись пользователя сможет получить доступ к товарам в доме только тогда, когда владелец, то есть схема, предоставляет ему необходимые гранты.
Ответ 13
Схема - это контейнер объектов. Он принадлежит пользователю.
Ответ 14
Ну, я где-то читал, что если у вашего пользователя базы данных есть привилегии DDL, тогда это схема, иначе это пользователь.