Oracle抽出レプリケーションでは、複写元システムでOracleユーザの権限をもったユーザIDを準備する必要があります。また複写先システムではSymfoware/RDBに格納可能な権限をもつユーザIDを準備する必要があります。
レプリケーション運用を実施するために準備するユーザIDを以下に示します。
レプリケーション管理者用のユーザID
レプリケーション対象表をアクセスするユーザID
レプリケーション業務を実行するユーザID
データベース格納コマンドを実行するユーザID
レプリケーション運用では、不正なデータ改ざんを防止するためにセキュリティを考慮した設計が必要です。ここでは、Oracle抽出レプリケーションを運用するために必要なユーザIDおよび権限について説明します。
Linkexpress Replication optionの運用では、環境定義・レプリケーションの運用などを行うためにレプリケーション管理者用のユーザIDを準備する必要があります。
また、複写元のレプリケーション対象表ごとに、表のアクセス権限をもつユーザIDを抽出定義に指定する必要があります。抽出定義に指定したユーザIDで複写元のレプリケーション対象表に対して、全件抽出/トリガ定義が行われます。
さらにレプリケーション業務を実行するユーザIDとデータベース格納コマンド(lxstrdbコマンド)を実行するユーザIDが必要です。レプリケーション業務を実行するユーザIDは、Linkexpressの業務定義で指定します。レプリケーション業務を実行するユーザIDには、抽出処理のイベントなどの各イベント内で実行されるコマンドの実行権限や、複写元・複写先システムのログイン権限および作業ファイルのアクセス権限が必要です。
データベース格納コマンドを実行するユーザIDは、データベース格納コマンド(lxstrdbコマンド)のオプションで指定します。また複写先データベースのアクセス権が必要です。
以下に必要なユーザと権限を説明します。
ユーザ種別 | 必要な権限 | 設定単位 |
---|---|---|
コマンド実行権限、トランザクションログデータベースへの権限 | 起動コマンドで指定 | |
対象表に対するSELECT権限、対象表のトリガ定義権限 | 抽出定義 | |
抽出・格納・確定コマンドの実行権限、ログイン権限 | 業務定義 | |
複写先データベースおよびシステムテーブルのアクセス権限 | データベース格納コマンド |
Linkexpress Replication optionの権限チェックは、データベースとオペレーティングシステムの権限チェックに依存します。
例えば、コマンドの実行権限はオペレーティングシステムの権限に依存します。また、Oracleに対する権限(レプリケーション対象表、トランザクションログデータベース)は、Oracleユーザでかつ、それぞれのアクセス権限が必要です。
ただし、LinkexpressのDB連携系のコマンドはLinkexpressのインストール時に指定したグループに属しているユーザIDで実行する必要があります。
以降では、ユーザIDのセットアップ方法と必要な権限について説明します。
レプリケーション管理者用のユーザIDは、一括差分複写で使用するトランザクションログデータベースを作成する場合に使用されます。
レプリケーション管理者用IDはレプリケーション起動コマンド(lxrpostrコマンド)で指定します。以下の方法で設定してください。
レプリケーション管理者用のユーザIDは、 Linkexpress Replication optionが提供するトランザクションログデータベース作成用のシェルスクリプトを利用して作成します。シェルスクリプトについては、“付録F トランザクションログデータベースの作成”を参照してください。
レプリケーション管理者用のユーザIDおよびパスワードを、レプリケーション起動コマンド(lxrpostrコマンド)の-uオプションに指定して、レプリケーションを起動します。レプリケーション起動時にユーザIDを省略するとREPUSER/REPUSERが指定されたものとみなされます。
レプリケーション対象表をアクセスするユーザIDは、全複写機能を使用する場合に、レプリケーション対象テーブルを検索するために使用されます。また、一括差分複写を運用するためのトリガ定義にも使用されます。以下の方法で設定してください。
レプリケーション対象表の所有者、または、レプリケーション対象表に対して権限があるOracleユーザを準備します。
レプリケーション対象表をアクセスするユーザIDに必要な権限は以下です。
レプリケーション対象表に対するスキーマ・オブジェクト権限またはシステム権限が必要です。スキーマ・オブジェクト権限の場合にはSELECT権限が必要です。また、システム権限の場合にはANALYZE ANY、CREATE SESSION、SELECT ANY TABLEが必要です。
Oracle9iの場合は、これらに加えて以下が必要です。
SELECT ANY DICTIONARY
トリガを作成する権限が必要です。設定したIDが対象表のスキーマ所有者の場合はTRIGGER権限、その他の場合はANY TRIGGER権限が必要です。TRIGGER権限とはCREATE、ALTER、DROP権限です。
レプリケーション業務を実行するユーザIDは、オペレーティングシステムのログインユーザを準備します。ユーザIDは、レプリケーション業務ごとに複写元システム用と複写先システム用のユーザIDが必要です。Linkexpressの業務定義またはイベントに指定します。なお、レプリケーション業務を実行するユーザIDには以下の権限が必要です。
Linkexpressのインストール時指定したグループに属しているユーザID
複写元または複写先システムへのログイン権限
複写元または複写先データベースのアクセス権限
複写先データベースであるSymfoware/RDBの権限があるユーザIDをデータベース格納コマンドのオプションに指定してください。なお、レプリケーション業務を実行するユーザIDにデータベースのアクセス権がある場合には、コマンド実行時のユーザID指定は不要です。必要な権限については“Linkexpress 運用ガイド”を参照してください。