OracleをWorkatoに接続する
このガイドでは、OracleデータベースをWorkatoに接続する方法について説明します。 次の手順を完了します:
前提条件
開始する前に、次のものがあることを確認してください:
- 必要な権限を持つOracleデータベースユーザー。
- データベースホストとポート。
- DBAから提供されたService name、SID、またはTNS定義。
- データベースがプライベートネットワーク内で実行されている場合は、有効なオンプレミスエージェント。
ステップ1: Oracleデータベースユーザーを設定する
最低限、データベースユーザーアカウントには、コネクション設定で指定されたデータベースに対するSELECT権限が必要です。 権限を設定するには、次の例を参照してください。
権限の設定方法を確認するには、ここをクリックしてください
Oracleインスタンス内の名前付きスキーマ(
HR_PROD)に、新しいデータベースユーザーWORKATOを使用して接続する場合、次のサンプルクエリを使用できます。まず、Workatoでの連携ユースケース専用の新しいユーザーを作成します。
CREATE USER WORKATO IDENTIFIED BY password次に、このユーザーに
CONNECTを付与します。GRANT CONNECT TO WORKATO;これにより、ユーザーはOracleインスタンスへのログインアクセス権を持つことができます。 ただし、このユーザーはどのテーブルにもアクセスできません。
次のステップでは、
HR_PRODスキーマのSUPPLIERテーブルへのアクセス権を付与します。 この例では、SELECT権限とINSERT権限のみを付与します。GRANT SELECT,INSERT ON HR_PROD.SUPPLIER TO WORKATO;最後に、このユーザーに必要な権限があることを確認します。 すべての権限付与を確認するクエリを実行します。
SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE = 'WORKATO'; SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE = 'WORKATO';これにより、WorkatoでOracleコネクションを作成するための次の最小権限が返されます。
+---------+--------------+--------------+--------------+ | GRANTEE | GRANTED_ROLE | ADMIN_OPTION | DEFAULT_ROLE | +---------+--------------+--------------+--------------+ | WORKATO | CONNECT | NO | YES | +---------+--------------+--------------+--------------+> +---------+---------+------------+---------+-----------+-----------+-----------+ | GRANTEE | OWNER | TABLE_NAME | GRANTOR | PRIVILEGE | GRANTABLE | HIERARCHY | +---------+---------+------------+---------+-----------+-----------+-----------+ | WORKATO | HR_PROD | SUPPLIER | ROOT | SELECT | NO | NO | | WORKATO | HR_PROD | SUPPLIER | ROOT | INSERT | NO | NO | +---------+---------+------------+---------+-----------+-----------+-----------+ 3 rows in set (0.61 sec)
ステップ2: OracleをWorkatoに接続する
Workatoは次のOracleコネクションタイプをサポートしています:
- クラウドコネクション:Oracleデータベースがパブリックインターネット経由でアクセス可能な場合は、このオプションを使用します。
- オンプレミスエージェントコネクション:Oracleデータベースがプライベートネットワークで実行されており、接続を確立するためにオンプレミスエージェント(OPA)が必要な場合は、このオプションを使用します。
クラウドコネクション
Cloudコネクションを使用してOracleに接続するには、次の手順を実行します:
作成 > コネクションをクリックします。
新規コネクションページでOracle を検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Connection typeフィールドでCloudを選択します。
Database hostフィールドにデータベースホストアドレスを入力します。
サーバーが実行されているDatabase portの番号(通常は1521)を入力します。
Step 1で作成したデータベースユーザーのUser nameを入力します。
データベースユーザーのPasswordを入力します。
任意です。 Schemaフィールドにデータベーススキーマを入力します。
任意です。 Advanced settingsを展開して、追加のコネクションオプションを設定します。
接続をクリックします。
オンプレミスエージェントコネクション
Oracleデータベースがインターネットから直接アクセスできないプライベートネットワークに配置されている場合は、オンプレミスエージェントコネクションを使用します。
オンプレミスエージェント(OPA)を使用してOracleに接続するには、次の手順を実行します:
作成 > コネクションをクリックします。
新規コネクションページでOracle を検索して選択します。
コネクション名フィールドにコネクションの名前を入力します。
ロケーションドロップダウンメニューを使用して、コネクションを保存するプロジェクトを選択します。
Connection typeフィールドでon-prem groupを選択します。
Database typeを選択します。 使用可能なオプションには、Service name、SID、TNSがあります。
SIDおよびTNSデータベースタイプには、オンプレミスエージェントバージョン27.1以降が必要です。
詳細については、Database typesセクションを参照してください。
選択したDatabase typeに基づいて、次のフィールドを指定します:
Database typeとしてService nameまたはSIDを選択した場合は、次のフィールドに入力します:
Database hostフィールドにデータベースホストアドレスを入力します。
サーバーが実行されているDatabase portの番号(通常は1521)を入力します。
Step 1で作成したデータベースユーザーのUser nameを入力します。
データベースユーザーのPasswordを入力します。
任意です。 Schemaフィールドにデータベーススキーマを入力します。
任意です。 Advanced settingsを展開して、追加のコネクションオプションを設定します。
任意です。 Pooling settingsを展開して、Oracleデータベースコネクションプーリングを設定します。
任意です。 Additional properties for Oracle connectionを展開して、カスタムOracleコネクションパラメータを追加します。
接続をクリックします。
データベースタイプ
Workatoは、Oracleコネクションの作成時にコネクションタイプフィールドでオンプレミスグループを選択した場合にのみ、データベースタイプフィールドを表示します。
コネクションの設定手順については、ステップ2:OracleをWorkatoに接続するを参照してください。
オンプレミスエージェント(OPA)経由で接続する場合は、次のデータベースタイプオプションのいずれかを選択します。
サービス名
サービス名を使用して、Oracleインスタンス内のデータベースサービスに接続します。 例:ORCLPDB1。
ORACLE 12C+ PDB Environment
マルチテナントアーキテクチャ(CDB/PDB)を使用するOracle 12c以降のEnvironmentでは、SIDではなくサービス名を使用することをお勧めします。
これらのEnvironmentでは:
- SIDコネクションはCDBルートコンテナーに接続する場合があります
- サービス名コネクションは、特定のプラガブルデータベース(PDB)に接続できます
データベースユーザーがPDBに存在する場合、ユーザー名とパスワードが正しくても、CDBルート経由で接続すると認証に失敗することがあります。
サービス名を使用して、コネクションが正しいPDBを対象にするようにします。
サービス名には次の特徴があります:
- Oracleリスナーに登録されているデータベースサービスにマッピングする
- Real Application Clustersおよびロードバランシングをサポートする
- 特定のインスタンスではなく論理データベースサービスを識別する
ほとんどの最新のOracleデプロイメントでは、このオプションを使用します。
SID
SID(System Identifier)を使用して、特定のOracleデータベースインスタンスに接続します。 例:ORCL。
SIDには次の特徴があります:
- 単一のOracleデータベースインスタンスを識別する
- ロードバランシングをサポートしない
- 古いOracleデプロイメントで一般的に使用される
DBAがサービス名ではなくSIDを提供する場合は、このオプションを使用します。
TNS
TNSは、完全なOracle Net接続記述子がある場合に使用します。
TNS定義には次の特徴があります:
tnsnames.oraファイルで定義されたコネクションエントリを参照する- 基盤となるコネクションの詳細を抽象化する
- 内部でSIDまたはサービス名を使用する場合がある
- ロードバランシングや高可用性などの高度な設定をサポートする
TNS定義フィールドに完全なTNS記述子を入力します。 例:
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=db.example.com)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=ORCLPDB1)
)
)詳細設定の構成
Oracleコネクターには次の詳細設定があります:
TIP
この手順は任意ですが、Use improved datetime handling設定を定義することを強くお勧めします。 これらの設定により、ローカルのDatabase timezoneを設定し、挿入時の日時タイムゾーン変換を改善できます。
| フィールド | 説明 |
|---|---|
| 改善された日時処理を使用 | デフォルトのDatabase timezoneであるUTCを上書きします。 有効にすると、dateおよびtimestampデータ型は、挿入時に指定したDatabase timezoneに変換されます。
注: この設定はInsertアクションにのみ影響します。 |
| データベースのタイムゾーン | データベースのローカルタイムゾーンを定義します。これには**Use improved datetime handling**を有効にする必要があります。 定義されていない場合、WorkatoはタイムゾーンとしてUTCを使用します。 さらに、**Use improved datetime handling**が有効になっていない場合、この設定は適用されません。
注: この設定はInsertアクションにのみ影響します。 |
これらの設定がInsertアクションでのdatetimeデータの処理方法にどのように影響するか、いくつかの例を見てみましょう。
すべての例では、Database timezoneがUTC -04:00(Eastern Standard Time)に設定されていることを前提としています。
| ソース値 | 宛先列 | 宛先値 |
|---|---|---|
2020-12-02 10:00:00
ソース値にタイムゾーンコンポーネントがありません | タイムゾーン非対応(DATEまたはTIMESTAMP) | 2020-12-02 10:00:00
変換は不要なため、値はそのまま挿入されます |
2020-12-02 10:00:00
ソース値にタイムゾーンコンポーネントがありません | タイムゾーン対応(TIMESTAMP WITH TIME ZONE) | 2020-12-02 10:00:00 -04:00
値にはデータベースタイムゾーンが適用されています |
2020-12-02 10:00:00 -07:00
ソース値にはタイムゾーンコンポーネントがありますが、Database timezone( UTC -04:00)とは異なります
| タイムゾーン非対応(DATEまたはTIMESTAMP) | 2020-12-02 13:00:00
値はDatabase timezoneを使用して変換されます |
2020-12-02 10:00:00 -07:00
ソース値にはタイムゾーンコンポーネントがありますが、Database timezone( UTC -04:00)とは異なります
| タイムゾーン対応(TIMESTAMP WITH TIME ZONE) | 2020-12-02 13:00:00 -04:00
値はDatabase timezoneを使用して変換されます |
次の予定
Oracleコネクターの詳細については、以下を参照してください:
Last updated: