Синоним (Synonym)– это альтернативное имя (псевдоним) для объекта схемы. Если для какого либо объекта базы данных Oracle существует синоним, то к объекту из SQL запроса можно обращаться либо по его настоящему имени, либо по синониму. Так же они обеспечивают некоторый уровень безопасности, поскольку скрывают имя объекта и его владельца, а так же делают прозрачным местоположение удаленных объектов распределенных баз данных.
Синонимы позволяют переименовывать и перемещать базовые объекты. При том переопределяется только синоним, а приложение не требует никаких модификаций.
Различают два типа синонимов:
· Частный (PRIVATE)-синонимы содержаться в схеме конкретного пользователя и доступны только самому пользователю, и тем, кому он предоставил соответствующие права доступа.
· Общий (PUBLIC)-этими синонимами владеет специальная группа пользователей – PUBLIC, в результате чего эти синонимы доступны всем пользователям базы данных.
CREATE SYNONYM [имя_синонима] FOR [имя_объекта]
CREATE PUBLIC SYNONYM [имя_синонима] FOR [имя_объекта]
DBA_SYNONYMS
GRANT CREATE SYNONYM TO RL_KVCORE; --от SYSTEM
CREATE SYNONYM T1_SYN FOR KVCORE.T1;
REVOKE CREATE SYNONYM FROM KVCORE; --от SYSTEM
SELECT * FROM T1_SYN;
GRANT CREATE PUBLIC SYNONYM TO RL_KVCORE; --от SYSTEM
GRANT DROP PUBLIC SYNONYM TO RL_KVCORE; --от SYSTEM
REVOKE CREATE PUBLIC SYNONYM FROM KVCORE; --от SYSTEM
DROP PUBLIC SYNONYM KV_SYN;
CREATE PUBLIC SYNONYM KV_SYN FOR KVCORE.T1;
SELECT * FROM KV_SYN;
SELECT OWNER, SYNONYM_NAME FROM DBA_SYNONYMS WHERE OWNER LIKE '%KV%';