Создание ссылок DB в Oracle AWS RDS: комплексное руководство

Создание ссылок DB в Oracle AWS RDS: комплексное руководство

2 июля 2025 г.

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

Введение

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

Сценарий

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

Ниже приведены шаги по настройке ссылки базы данных в Oracle AWS RDS.

  1. Собрать информацию об соединении:Вам понадобится следующая информация для удаленной базы данных:

    • Имя хоста или IP -адрес экземпляра RDS.
    • Номер порта (обычно 1521).
    • Название службы или SID базы данных.
    • Имя пользователя и пароль для пользователя базы данных с соответствующими привилегиями.
  2. Создайте ссылку на базу данных:Подключитесь к вашей базе данных Oracle (например, с использованием разработчика SQL или SQL*Plus) и используйтеCREATE DATABASE LINKзаявление. Вот основной пример:

    CREATE DATABASE LINK rds_link
    CONNECT TO remote_user IDENTIFIED BY "password"
    USING '(DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST = rds_endpoint)(PORT = 1521))
          (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )';
    
    

    Заменятьrds_linkВremote_userВpasswordВrds_endpoint, иorclс вашими фактическими ценностями.

  3. Проверьте ссылку на базу данных:Проверьте соединение, запрашивая таблицу в удаленной базе данных:

    SELECT * FROM products@rds_link;
    

    Если запрос успешно выполняется, работа в базе данных работает!

Oracle Database Link between databases

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

CREATE PUBLIC SYNONYM products_public FOR products@rds_link;

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

SELECT * FROM products_public;

Если вы хотите предоставить доступ к ссылке базы данных только для конкретных пользователей, вы можете предоставить имCREATE SESSIONПривилегия в удаленной базе данных, а затем создайте частный синоним для каждого пользователя.

  1. Предоставить привилегию сессии:Подключиться к удаленной базе данных в качестве администратора и предоставьтеCREATE SESSIONПривилегия желаемому пользователю:

    GRANT CREATE SESSION TO user1;
    
  2. Создайте частный синоним:Подключиться к схеме пользователя (например, какuser1) и создать частный синоним:

    CREATE SYNONYM products_private FOR products@rds_link;
    

    Теперь толькоuser1может получить доступ к таблице удаленных продуктов, используя:

    SELECT * FROM products_private;
    

Для обеспечения безопасного и контролируемого доступа к ссылке базы данных необходимы следующие гранты и привилегии:

В удаленной базе данных:

Привилегия

Описание

CREATE SESSION

Позволяет пользователю ссылку на базу данных подключаться к удаленной базе данных. Это минимальное требование.

SELECTНа определенных таблицах/просмотров

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

EXECUTEна конкретных процедурах/функциях

Предоставляет пользователь ссылки на базу данных привилегию выполнять функции или процедуры в удаленной базе данных. РЕЗИЦИИ «Процедура_name» с фактическими именами процедур.

В локальной базе данных:

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

Использование и примеры

Давайте проиллюстрируем с практическим примером. ПредположимCustomersВ удаленной базе данных.

Запрос данных:

SELECT * FROM Customers@rds_link WHERE customer_id = 123;

Согласно таблицам:

SELECT o.order_id, c.customer_name
FROM Orders o
JOIN Customers@rds_link c ON o.customer_id = c.customer_id;

Вставка данных:

INSERT INTO Customers@rds_link (customer_id, customer_name) VALUES (456, 'New Customer');

Заключение

Создание и управление ссылками базы данных в Oracle AWS RDS - это простой процесс, который может значительно улучшить доступность и интеграцию данных. Понимая различные варианты доступа (публичные по сравнению с частными) и необходимые гранты и привилегии, вы можете обеспечить безопасный и эффективный доступ к данным в вашей средах Oracle. Этот подход позволяет избежать облегчения передачи данных и поддерживает согласованность данных, позволяя в реальном времени доступ к удаленным данным.


Оригинал
PREVIOUS ARTICLE