Создать паблик синоним

В этом учебном материале вы узнаете, как создавать и удалять синонимы (create and drop synonyms) в Oracle/PLSQL с синтаксисом и примерами.

Описание

В Oracle/PLSQL Synonym это альтернативное имя для таких объектов, как таблицы, представления, последовательности, хранимые процедуры и другие объекты базы данных.
Как правило, вы используете синонимы, когда предоставляете доступ к объекту из другой схемы, и вы не хотите, чтобы пользователи беспокоились о том, к какой схеме относится объект.

Create (or Replace) Synonym

Вы можете создать синоним, так чтобы пользователи не использовали префикс имени таблицы с именем схемы, при использовании таблицы в запросе.

Синтаксис

Синтаксис для создания синонимов Oracle/PLSQL:

CREATE [OR REPLACE] [PUBLIC] SYNONYM [schema .] synonym_name
FOR [schema .] object_name [@ dblink];

OR REPLACE
Позволяет пересоздать синоним (если он уже существует), без необходимости выдавать команду DROP synonym.
PUBLIC
Это означает, что синоним является публичным и доступен для всех пользователей. Помните, что пользователь сначала должен иметь соответствующие привилегии для объекта использования синонима.
schema
Соответствующая схема. Если эта фраза опущена, Oracle предполагает, что вы имеете в виду вашу собственную схему.
object_name
Имя объекта, для которого вы создаете синоним. Это может быть один из следующих объектов:

  • table
  • view
  • sequence
  • stored procedure
  • function
  • package
  • materialized view
  • java class schema object
  • user-defined object
  • synonym

Пример

Рассмотрим пример того, как создать синоним в Oracle/PLSQL.

Например:

CREATE PUBLIC SYNONYM suppliers

FOR app.suppliers;

Этот первый пример CREATE SYNONYM демонстрирует, как создать синоним с названием suppliers. Теперь, пользователи других схем могут ссылаться на таблицу с suppliers без префикса с именем схемы и именем таблицы.

Например:

Если это синоним уже существует, и вы хотите его пересоздать, то можете использовать OR REPLACE следующим образом:

CREATE OR REPLACE PUBLIC SYNONYM suppliers

FOR app.suppliers;

Drop synonym

После того, как синоним был создан в Oracle, вам в какой-то момент понадобится его удалить.

Синтаксис

Синтаксис drop synonym в Oracle/PLSQL:

DROP [PUBLIC] SYNONYM [schema .] synonym_name [force];

PUBLIC
Позволяет удалить public synonym. Если вы указали PUBLIC, то можете не указывать схему.
force
Это принудит Oracle удалить synonym, даже если он имеет зависимости. Это, вероятно, не очень хорошая идея, чтобы использовать force, поскольку это может привести к недействительности объектов Oracle.

Пример

Рассмотрим пример того, как удалить synonym в Oracle/PLSQL.

Например:

DROP PUBLIC SYNONYM suppliers;

Оператор DROP удалит синоним с названием suppliers, который мы определяли ранее.

Объекты базы данных принадлежат тем пользователям, которые их создали, и доступны лишь в схеме конкретного пользователя, если только пользователь явным образом не предоставил право на доступ к объектам другим пользователям или ролям, назначенным другим пользователям. Но даже предоставив полномочия на использование объекта, пользователь должен отдавать себе отчет в том, что владение схемой ограничивает доступ к объектам данных Oracle. Допустим, что таблица STUDENT существует в схеме пользователя STUD, а пользователь USER1 пытается обратиться к этой таблице:

SELECT * FROM student  WHERE kod_stud = 256;

В этом случае появляется следующее сообщение

SELECT * FROM student* ORA-00942: table or view does not exist (таблица или представление не существует)

Oracle не возвращает данные, связанные с KOD_STUD= 256, а сообщает пользователю о том, что объект не существует. Причина, по которой USER1 не может видеть таблицу в схеме STUD, заключается в том, что пользователь USER1 не обратился к таблице как к находящейся в схеме STUD. Покажем, как оператор select может быть успешно выполнен:

SELECT * FROM stud.student WHERE kod_stud = 256;

Помнить о том, какому пользователю какая таблица принадлежит, чересчур сложно, поэтому в базе данных можно применить синонимы, устраняющие необходимость указания владельца схемы (делающие ее «прозрачной»). Синоним — это альтернативный способ обращения к существующей таблице со стороны пользователей. Синонимы позволяют обращаться к объекту базы данных или по другому имени, или без обязательной ссылки на владельца объекта. Однако синоним не изменяет характеристики описания таблицы. Таким образом, с помощью синонимов пользователи могут обращаться к таблице, не предваряя ее имени именем владельца. Синонимы могут быть общими или частными. К частному (private) синониму может обращаться только тот пользователь, который создал его и владеет им. Если же синоним общий (public), он доступен любому пользователю базы данных.  Частный и общий синонимы создаются с помощью команд  CREATE SYNONYM и  CREATE PUBLIC SYNONYM. Причем на создание общих синонимов нужно иметь специальную привилегию. Общий синоним создается привилегированным пользователем и позволяет другим пользователям базы данных обращаться к конкретной таблице, не предваряя ссылку на нее именем схемы. Пример: Пользователь STUD может создать общий синоним для таблицы STUDENT. — Выполняется пользователем STUD

CREATE PUBLIC SYNONYM student FOR stud.student;

После создания этого синонима пользователь USER1 может обратиться к таблице с его помощью: —Выполняется пользователем USER1

SELECT * FROM student WHERE kod_stud = 256;

Другим типом синонимов являются частные синонимы, создаваемые пользователями для себя и позволяющие только им обращаться к таблице в другой схеме по одному ее имени. Пользователь не может обратиться к таблице с помощью частного синонима другого пользователя; он должен создать свой собственный. Пример: В следующем программном блоке пользователь USER1 получает тот же результат, что и раньше, но с помощью частного синонима. —Выполняется пользователем USER1

CREATE SYNONYM student FOR stud.student;

—Выполняется пользователем USER1

SELECT * FROM student WHERE kod_stud = 256;

Для удаления синонимов используется команда DROP SYNONYM:

DROP SYNONYM student; DROP PUBLIC SYNONYM student;

 

Объекты базы данных принадлежат тем пользователям, которые их создали, и доступны лишь в схеме конкретного пользователя, если только пользователь явным образом не предоставил право на доступ к объектам другим пользователям или ролям, назначенным другим пользователям. Но даже предоставив полномочия на использование объекта, пользователь должен отдавать себе отчет в том, что владение схемой ограничивает доступ к объектам данных Oracle. Допустим, что таблица STUDENT существует в схеме пользователя STUD, а пользователь USER1 пытается обратиться к этой таблице:

SELECT * FROM studentWHERE kod_stud = 256;

В этом случае появляется следующее сообщение

SELECT * FROM student

*

ORA-00942: table or view does not exist

(таблица или представление не существует)

Oracle не возвращает данные, связанные с KOD_STUD= 256, а сообщает пользователю о том, что объект не существует. Причина, по которой USER1 не может видеть таблицу в схеме STUD, заключается в том, что пользователь USER1 не обратился к таблице как к находящейся в схеме STUD. Покажем, как оператор select может быть успешно выполнен:

SELECT * FROM stud.student WHERE kod_stud = 256;

Помнить о том, какому пользователю какая таблица принадлежит, чересчур сложно, поэтому в базе данных можно применить синонимы, устраняющие необходимость указания владельца схемы (делающие ее «прозрачной»). Синоним — это альтернативный способ обращения к существующей таблице со стороны пользователей. Синонимы позволяют обращаться к объекту базы данных или по другому имени, или без обязательной ссылки на владельца объекта. Однако синоним не изменяет характеристики описания таблицы. Таким образом, с помощью синонимов пользователи могут обращаться к таблице, не предваряя ее имени именем владельца.

Синонимы могут быть общими или частными. К частному (private) синониму может обращаться только тот пользователь, который создал его и владеет им. Если же синоним общий (public), он доступен любому пользователю базы данных. Частный и общий синонимы создаются с помощью команд CREATESYNONYM и CREATE PUBLIC SYNONYM. Причем на создание общих синонимов нужно иметь специальную привилегию.

Общий синоним создается привилегированным пользователем и позволяет другим пользователям базы данных обращаться к конкретной таблице, не предваряя ссылку на нее именем схемы.

Пример: Пользователь STUD может создать общий синоним для таблицы STUDENT.

— Выполняется пользователем STUD

CREATE PUBLIC SYNONYM student FOR stud.student;

После создания этого синонима пользователь USER1 может обратиться к таблице с его помощью:

—Выполняется пользователем USER1

SELECT * FROM student WHERE kod_stud = 256;

Другим типом синонимов являются частные синонимы, создаваемые пользователями для себя и позволяющие только им обращаться к таблице в другой схеме по одному ее имени. Пользователь не может обратиться к таблице с помощью частного синонима другого пользователя; он должен создать свой собственный.

Пример: В следующем программном блоке пользователь USER1 получает тот же результат, что и раньше, но с помощью частного синонима.

—Выполняется пользователем USER1

CREATE SYNONYM student FOR stud.student;

Выполняетсяпользователем USER1

SELECT * FROM student WHERE kod_stud = 256;

DROP SYNONYM

Для удаления синонимов используется команда DROP SYNONYM: drop synonym student; drop public synonym student;

Синонимы (synonyms) Oracle Database — это псевдонимы объектов базы данных, которые служат в основном для облегчения пользователям доступа к объектам, принадлежащим другим пользователям, а также в целях безопасности. Синонимы скрывают идентичность лежащих в их основе объектов и могут быть как приватными (private), так и общедоступными (public). Общедоступные синонимы доступны всем пользователям базы данных,а приватные синонимы являются составной частью схемы отдельного пользователя, и другим пользователям базы следует выдавать права доступа для использования приватных синонимов. Синонимы Oracle могут быть созданы для таблиц, представлений, материализованных представлений и хранимого кода — пакетов и процедур.

Синонимы Oracle — очень мощное средство с точки зрения обеспечения пользователям доступа к объектам, которые не принадлежат к их схемам. Все синонимы должны создаваться явно командой CREATE SYNONYM, а лежащие в основе объекты могут находиться в той же базе данных или в других базах, подключенных по связям баз данных.

Сфера применения синонимов Oracle

Есть два основных применения синонимов.

  • Для обеспечения прозрачности объектов. Синонимы могут быть созданы для обеспечения прозрачности исходных объектов для пользователя.
  • Для прозрачности расположения. Синонимы могут быть созданы как псевдонимы таблиц и прочих объектов, относящихся к нелокальной базе данных.

На заметку! Имейте в виду, что даже если вы знаете синоним таблицы схемы, то не обязательно имеете доступ к ней. Для доступа к такой таблице нужно иметь необходимые привилегии.


Когда вы создаете таблицу или процедуру, база данных создает их в вашей схеме, а другие пользователи могут обращаться к ним, используя имя вашей схемы в качестве префикса имени объекта. В листинге ниже  показано несколько примеров, иллюстрирующих это положение.

SQL> SHOW USER
USER is "SYSTEM"
SQL> DESC employees
ERROR:
ORA-04043: object employees does not exist
ORA-04043: объект employees не существует
SQL> DESC hr.employees
Name               Null?      Type
---------------    --------   --------------
EMPLOYEE_ID        NOT NULL   NUMBER(6)
FIRST_NAME                    VARCHAR2(20)
LAST_NAME          NOT NULL   VARCHAR2(25)
EMAIL              NOT NULL   VARCHAR2(25)
PHONE_NUMBER                  VARCHAR2(20)
HIRE_DATE          NOT NULL   DATE
JOB_ID             NOT NULL   VARCHAR2(10)
SALARY                        NUMBER(8,2)
COMMISSION_PCT                NUMBER(2,2)
MANAGER_ID                    NUMBER(6)
DEPARTMENT_ID                 NUMBER(4)
SQL>

Как видите, когда пользователь SYSTEM пытается получить структуру таблицы без префикса — имени схемы, Oracle выдает ошибку, сообщающую об отсутствии таблицы. Чтобы обойти это, владелец схемы должен создать синоним с тем же именем, что и у таблицы. Как только пользователь SYSTEM применит нотацию схема.таблица, он сможет увидеть содержимое таблицы.

Создание общедоступного синонима

Общедоступные (public) синонимы относятся к специальной схеме базы данных Oracle, именуемой PUBLIC. Как упоминалось ранее, общедоступные синонимы видны всем пользователям базы данных. Общедоступные синонимы обычно создаются владельцем приложения для таблиц и прочих объектов, таких как процедуры и пакеты,чтобы пользователи приложения могли видеть эти объекты.

В следующем коде показано, как создается общедоступный синоним для таблицы employees

SQL> CREATE PUBLIC SYNONYM employees FOR hr.employees;
Synonym created.
SQL>

Теперь любой пользователь сможет видеть таблицу, просто набрав ее исходное имя. При желании с помощью оператора CREATE SYNONYM таблице можно дать другое имя. Помните, что администратор базы данных должен явно выдать привилегию CREATE PUBLIC SYNONYM пользователю hr, чтобы тот мог создавать общедоступные синонимы.

Возможность видеть таблицу через общедоступный (или приватный) синоним, еще не означает возможность выполнения над ней операций SELECT, INSERT, UPDATE или DELETE. Для выполнения таких операций пользователю нужны специальные привилегии для доступа к исходному объекту, выданные владельцем приложения непосредственно или через роли. 

Создание приватного синонима

Приватные синонимы, в отличие от общедоступных, видны только в схеме, владеющей таблицей или объектом. Приватные синонимы можно создать, когда нужно обращаться к одной и той же таблице в разных контекстах под разными именами. Они создаются точно так же, как и общедоступные, но без ключевого слова PUBLIC в операторе CREATE.

В следующем примере показано, как создать приватный синоним по имени addresses для таблицы locations. Обратите внимание, что после создания к приватному синониму можно обращаться как к первоначальному имени таблицы. 

SQL> CREATE SYNONYM addresses FOR hr.locations;
Synonym created.
SQL> SELECT * FROM addresses;

Уничтожение синонима

И приватный, и общедоступный синонимы уничтожаются командой DROP SYNONYM,но есть одно отличие. При уничтожении общедоступного синонима после ключевого слова DROP должно находиться ключевое слово PUBLIC.

Ниже показан пример уничтожения приватного синонима:

SQL> DROP SYNONYM addresses;
Synonym dropped.
SQL>

Управление синонимами

Представление DBA_SYNONYMS содержит информацию обо всех синонимах в вашей базе данных. Синонимы основаны на лежащих в основе базовых таблицах, и узнать имена базовых объектов можно, запустив запрос, подобный следующему: 

SQL> SELECT TABLE_NAME, SYNONYM_NAME
FROM dba_synonyms
WHERE OWNER = 'SALAPATI';
TABLE_NAME  SYNONYM_NAME
----------  ------------
DEPT        DEPT
EMP         EMP
SQL>

Используйте представление DBA_SYNONYMS для выяснения имен базовых таблиц,скрывающихся за синонимами.

Переключение к другой схеме

Если вы постоянно используете таблицы, принадлежащие другой схеме, и в этой схеме нет никаких синонимов, придется перед каждым именем таблицы указывать квалификатор схемы. Например, для обращения к таблице emp, принадлежащей пользователю scott, понадобится указывать emp.scott. Чтобы избежать этого, можно применить следующий оператор ALTER SESSION SET SCHEMA

SQL> CONNECT samalapati/sammyy1
SQL> ALTER SESSION SET CURRENT_SCHEMA = scott;
SQL> SELECT * FROM emp;

Использование оператора ALTER SESSION не приводит к автоматической выдаче каких-либо привилегий. Для того чтобы запросить таблицу emp без квалификатора схемы, как показано в предыдущем примере, пользователь должен иметь привилегию SELECT на таблице emp.

Вас заинтересует / Intresting for you:

Значение слова «паблик»

1. интернет. страница в социальной сети «ВКонтакте», открытая не только для её пользователей, но и для всех остальных

Все значения слова «паблик»

Предложения со словом «паблик»

  • Разработка проектов формирования и корректировки политики паблик рилейшнз, анализ её эффективности.

  • Нельзя сказать, что они новы сами по себе, но совокупность этих качеств сетевых пабликов создаёт новые возможности и проблемы.

  • В общем, совпало много факторов, и фестиваль практически не был освещён в городских пабликах.

  • (все предложения)

3 синонимов к слову «ПАБЛИК» -  synonyms.su

  • О нас
  • Словарь антонимов
  • Словарь паронимов
  • Словарь ударений
  • Словарь морфологии
  • Словари
  • Регистрация
  • Вход

Введите слово и нажмите «Найти синонимы».

: — группа — общественный — публичный…

Можно найти больше синонимов, нажимая на слова.

  • один

  • два

  • три

  • четыре

  • пять

5 (1)

Синоним Рейтинг
1 группа[149]10 1
2 общественный[15]00 0
3 публичный[45]00 0

Помогите найти больше синонимов к слову «паблик»

Добавить синоним

Частое повторение одинаковых слов (тавтология) делает речь скучной и однообразной. Спасти положение могут синонимы. Это слова, близкие по смыслу, но разные по звучанию. Используйте их, и ваши тексты станут ярче.

Если вам нужно подобрать синонимы к слову «паблик», вы попали по адресу. Мы постарались собрать все близкие по значению слова и словосочетания на этой странице и сделать доступными для использования. В русском языке в качестве синонимов к слову чаще всего используются: группа, общественный, публичный. Всего в словаре 3 синонимов.

Слово «паблик» имеет как синонимы, так и антонимы. Они диаметрально противоположны по значению, но относятся к той же лексической группе и выполняют похожие функции в предложении.

Если вы часто ищите, чем заменить слово, добавьте synonyms.su в закладки. Это поможет сэкономить время и силы, избежать нелепых ошибок.

Рейтинг слова «паблик» :
00

Страница обновлена: 27.07.2019

Другие слова на букву п

Синонимы к словам и словосочетаниям на букву:

  • Средняя частота слова «паблик» 216. Количество букв: 6.
  • Искалась форма слова «паблик»
  • Поиск «паблик» занял 0.009 сек.
  • Добавьте synonyms.su в закладки ( нажав Ctrl+D ), чтобы найти Синонимы.

Добавление синонимов

captchaобновить

Добавить

Вверх ↑

Понравилась статья? Поделить с друзьями:
  • Создать ощущение синоним
  • Создать оформить синонимы
  • Создать организовать синонимы
  • Создать образ синоним
  • Создать неудобства синоним