Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СУБД Oracle / Лекции / Лек_ORAC / Lij / Распределение и тиражирование данных.doc
Скачиваний:
56
Добавлен:
16.04.2013
Размер:
165.89 Кб
Скачать

Связи баз данных фиксированного пользователя, соединенного пользователя и текущего пользователя

При создании связи баз данных можно указывать информацию о соединении, используемую сервером локальной базы данных для установления сеанса связи с удаленной базой данных. Тип выбранной связи влияет на обеспечение безопасности информации. Сначала посмотрим, что такое связь баз данных фиксированного пользователя (fixed user database link).Это связь, в описание которой включены имя и пароль конкретного пользователя. Например, с помощью следующего оператораCREATEDATABASELINKсоздается связь баз данных фиксированного пользователя с удаленной базой данныхEAST.COMPWORLD:

CREATE DATABASE LINK east.compworld

CONNECT sales IDENTIFIED BY person;

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

Напротив, в описание связей баз данных соединенного пользователя (connected user database links)и связей баз данных текущего пользователя(current user database links)не включается имя и пароль пользователя. Вместо этого для установления сеанса и обращения к удаленному серверу сервер локальной базы данных использует сведения о соединенном пользователе или о текущем пользователе. Для того чтобы отличать связи соединенного и текущего пользователей, сначала нужно понять различие между терминами “соединенный пользователь” и “текущий пользователь”.

  • Соединенный пользователь (connected user) —это пользователь, который соединен с локальной базой данных и выполняет приложение. Например, если я запускаю приложение в своей локальной базе данных, то соединяюсь с ней какSBOBROWS. В этом контексте соединенный пользователь -SBOBROWS.

  • Текущий пользователь (current user) —это пользовательский контекст, в котором выполняется некоторая операция. Например, если я соединяюсь с базой данных какSBOBROWSи запускаю приложение, которое вызывает методTOTAL_ORDERобъектного типаSALES.ORDER_TYPE, то текущим пользователем, вызываю­щим метод, являетсяSALES, а неSBOBROWS.

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

Связи текущего пользователя позволяют в точности следовать контекстам безопасности при выполнении операций локально или на удаленном сервере. Однако при применении глобальной аутентифи­кации пользователей базы данных можно устанавливать только связи текущего пользователя. Об аутентификации глобальных пользователей и ролей в системе распределенной базы данных Oracleбудет рассказано ниже в разделе “Глобальные пользователи и роли”.

Общие, частные и глобальные связи баз данных

В Oracleможно создавать связи баз данных — общие, частные и глобальные - в пределах трех различных доменов системы распределен­ной базы данных.

  • Частная связь баз данных (private database link) —это связь, которая создается в конкретной схеме базы данных. Применять частную связь баз данных для доступа к информации и объектам удаленной базы данных может только владелец частной связи и подпрограммыPL/SQLсхемы (модули, процедуры, функции, триггеры и методы объектных типов). Таким образом, частные связи баз данных безопаснее, чем общие и глобальные связи.

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

  • Глобальная связь баз данных (global database link) —это связь, управляемая сервером именOracle. При создании этого сервера для сетиNet8 автоматически строятся глобальные связи для каждой базы данныхOracle, имеющейся в сети, и сервер именOracleуправляет этими связями. Применять глобальную связь баз данных для доступа к информации и объектам удаленной базы данных могут все пользователи и программы в любой базе данных. Когда в большой распределенной системе для работы с глобальными связями всех баз данных используется сервер именOracle, управление такими связями осуществляется централизовано и достаточно просто.