キャッシュ・グループ・ユーザー

キャッシュの使用時に必要なユーザーが存在します。

この項では、キャッシュ・グループ・ユーザーに関する次のトピックについて説明します。

キャッシュに必要なユーザー

キャッシュを使用するには、OracleとTimesTenの両方のデータベースで管理ユーザーおよびスキーマ・ユーザーを作成する必要があります。

キャッシュを使用するには、Oracle Databaseで次のユーザーが必要です:

  • TimesTenデータベース用のキャッシュ環境の管理および特定のキャッシュ・グループ・タイプの定義済動作の実行に使用される情報を格納するOracle Databaseオブジェクトを作成、所有および保持するOracleキャッシュ管理ユーザーを作成します。

  • TimesTenデータベースにキャッシュされるOracle Database表を所有する1人以上のスキーマ・ユーザーを指定します。

キャッシュを使用するには、TimesTenデータベースに次のユーザーを作成する必要があります:

  • キャッシュ・グループ処理を実行するTimesTenキャッシュ管理ユーザー。TimesTenのキャッシュ管理ユーザーのユーザー名は、キャッシュされたOracle Database表にアクセスできる、キャッシュに対して作成されたOracleキャッシュ管理ユーザーの名前と同じである必要があります。TimesTenキャッシュ管理ユーザーのパスワードは、コンパニオンOracleキャッシュ管理ユーザーとは別のパスワードにすることができます。

  • キャッシュ表を所有する1人以上のキャッシュ表ユーザー。TimesTenデータベースにキャッシュされるOracle Database表を所有している各Oracle Databaseスキーマ・ユーザーと同じユーザー名でTimesTenキャッシュ表ユーザーを作成する必要があります。キャッシュ表ユーザーのパスワードは、同じ名前を持つOracle Databaseスキーマ・ユーザーとは別のパスワードにすることができます。

    TimesTenキャッシュ表の所有者および名前は、対応するキャッシュされたOracle Database表の所有者および名前と同じです。

キャッシュ管理ユーザーとパスワードの両方の指定

Oracleデータベースへのアクセスを必要としないリクエストを実行している場合は、Oracleデータベースの資格証明を指定せずに続行できます。つまり、TimesTenデータベースに接続するためのユーザー名とパスワードのみで接続できます。ただし、Oracleデータベースへの接続が必要なアクションを実行する場合は、TimesTenとOracleの両方のデータベースに接続できるように、適切な資格証明を指定する必要があります。

最初に、CREATE USERまたはALTER USER SQL文を使用してキャッシュ管理ユーザーとそのパスワードを作成または変更します。「データベース・ユーザーの作成または識別」を参照してください。

キャッシュ管理ユーザーがそれぞれのパスワードで作成されると、これらの資格証明に次のいずれかの方法を指定する必要があります。

Oracleウォレットでのキャッシュ管理ユーザー名とパスワードの指定

接続時に資格証明を提供する最も安全な方法は、ユーザーのパスワードをOracleウォレットに格納することです。接続時に、ユーザー名とウォレットを指定して、接続の資格証明を指定します。ユーザー名を指定すると、ウォレット内から取得するユーザーのパスワードが識別されます。

ttUserユーティリティを使用して、キャッシュ・ユーザーとキャッシュ管理ユーザーの両方およびその関連するパスワードの既存の資格証明をOracleウォレットに格納できます。

  • キャッシュ・ユーザーの場合、「Oracleウォレットでのユーザー名とパスワードの指定」の説明に従って、このユーザーのパスワードをTimesTenユーザーと同じ方法でウォレットに追加できます。

  • キャッシュ管理ユーザーとして接続するには、TimesTenキャッシュ管理ユーザーとOracleキャッシュ管理ユーザーの両方にパスワードを指定する必要があります。

Oracleウォレットに資格証明を格納する方法の詳細は、「Oracleウォレットでのユーザー名とパスワードの指定」を参照してください。この項では、両方のキャッシュ管理ユーザー・パスワードをOracleウォレットに追加するプロセスについて説明します。

キャッシュ管理ユーザーのパスワードは、他のユーザーが使用するウォレット(DSNに接続するすべての資格証明を含むウォレットなど)に追加できます。または、キャッシュ管理ユーザーに対してのみウォレットを作成することもできます。

ttUser -setPwdコマンドを使用して、TimesTenキャッシュ管理ユーザーのパスワードを格納します。ttUser -setOraclePwdコマンドを使用して、Oracleキャッシュ管理ユーザーのパスワードを格納します。

次の例は、ttUserユーティリティを使用して、両方のキャッシュ管理ユーザーを/wallets/cacheadminwalletディレクトリのOracleウォレットに追加する方法を示しています。

  1. まだ存在しない場合は、ウォレットのディレクトリを作成します。この例では、ウォレットのディレクトリとして/walletsを使用します。

    % mkdir /wallets
  2. ttUser -setPwdコマンドを実行して、TimesTenキャッシュ管理ユーザー資格証明を格納します。ウォレットを識別するサブディレクトリ名を指定します(OracleWalletの名前を変更できないため)。この例では、ウォレットのサブディレクトリ名としてcacheadminwalletを指定します。cacheadminwalletディレクトリが存在しない場合、ttUserユーティリティはcacheadminwalletサブディレクトリを作成し、/wallets/cacheadminwalletディレクトリにOracleウォレットを作成します。ttUserユーティリティは、ウォレットに追加されるTimesTenキャッシュ管理ユーザーcacheadminのパスワードの入力を求めます。

    % ttUser -setPwd -wallet /wallets/cacheadminwallet -uid cacheadmin
    Enter password: 
  3. ttUser -setOraclePwdコマンドを実行して、Oracleキャッシュ管理ユーザー資格証明を格納します。ttUserユーティリティは、/wallets/cacheadminwalletのウォレットに追加されるOracleキャッシュ管理ユーザーcacheadminのパスワードの入力を求めます。

    % ttUser -setOraclePwd -wallet /wallets/cacheadminwallet -uid cacheadmin
    Enter password: 

『Oracle TimesTen In-Memory Databaseリファレンス』ttUserを参照してください。

データベースへの接続時にキャッシュ管理ユーザーを認証する場合は、キャッシュ管理ユーザーの名前および対応するウォレットの場所をUIDおよびPwdWallet接続属性を使用して指定します。UID接続属性は、指定されたPwdWalletを使用して認証するユーザーを指定します。

connect “dsn=mydb;uid=cacheadmin;PwdWallet=/wallets/cacheadminwallet”;

接続属性でのキャッシュ管理ユーザー名とパスワードの指定

一般接続属性は接続ごとに設定され、接続が継続している間存在します。各同時接続には別の値を設定できます。キャッシュ管理ユーザー名とパスワードの両方を、UIDPWDおよびOraclePWD一般接続属性を使用して指定できます。

キャッシュ管理ユーザーと関連するパスワードの両方を作成したら、データベースへの接続時にUIDPWDおよびOraclePWD接続属性を使用して接続文字列でこれらを指定できます。

TimesTenは、接続認証用のユーザー名とパスワードを検索するときに、次の優先順位を使用します:

UIDPWDおよびOraclePWD接続属性は次のとおりです:

  • UID: この場合、データベースへの接続に使用するキャッシュ管理ユーザー名を指定します。

  • PWD: この場合、TimesTenキャッシュ管理ユーザーのパスワードを指定します。

  • OraclePWD: Oracleキャッシュ管理ユーザーのパスワードを指定します。

    ノート:

    一般接続属性UIDPWDおよびOraclePWDの詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』UIDとPWDを参照してください。『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』TimesTenでの認証を参照してください。

次の例は、キャッシュ管理ユーザー名をcacheadmin、TimesTenキャッシュ管理ユーザー・パスワードをttpwd、Oracleキャッシュ管理ユーザー・パスワードをorapwdとして指定するdatabase1への接続リクエストです。

% ttIsql "DSN=database1;UID=cacheadmin;PWD=ttpwd;OraclePWD=orapwd"

クライアントDSNでのキャッシュ管理ユーザー名とパスワードの指定

クライアントDSNに、キャッシュ管理ユーザー名とパスワードの両方を指定できます。

Windowsでは、「Oracle TimesTen Client DSN Setup」ダイアログで接続属性を指定します。このダイアログでは、User IDおよびPassword接続属性を指定できます。ただし、OraclePWD接続属性は接続文字列でのみ指定できます。『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』WindowsでのクライアントDSNの作成を参照してください。

LinuxおよびUNIXの場合、接続属性はodbc.iniファイルで指定します。odbc.iniファイルのクライアントDSNでは、UIDPWDおよびOraclePWD接続属性を指定できます。

次に、odbc.iniファイル内のクライアントDSNの構文を示します:

[ODBC Data Sources]
Client_DSN=TimesTen 22.1 Client Driver

『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』LinuxおよびTimesTen Classic用のUNIXでのDSNの作成を参照してください。

Oracle Database管理ユーザーとパスワードの登録

キャッシュ環境を設定するための前提条件の1つは、TimesTenにOracleキャッシュ管理ユーザーおよびパスワードを登録することです。TimesTenは、これらの資格証明を使用してOracleデータベースに接続します。

TimesTenによって実行されるキャッシュ操作があります。TimesTenがこれらのキャッシュ操作を正常に実行するためにOracleデータベースに接続するには、TimesTenにOracleキャッシュ管理ユーザーおよびパスワード資格証明が内部的に登録されている必要があります。これは、TimesTen ClassicのttCacheUidPwdSet組込みプロシージャまたはTimesTen ScaleoutのttGridAdmin dbCacheCredentialSetを実行する場合に実行されます。デフォルトでは、Oracleキャッシュ管理ユーザーおよびパスワードはメモリーに格納されます。DSNにCacheAdminWallet=1を最初の接続属性として設定することで、Oracleキャッシュ管理ユーザーおよびパスワードをシステム管理のOracleウォレット(優先)に保存するように指定できます。Oracleキャッシュ管理ユーザーおよびパスワードが(メモリー内またはシステム管理ウォレット内のいずれかに)登録されると、TimesTenは資格証明を使用してキャッシュ操作のためにバックエンドOracleデータベースに接続します。

『Oracle TimesTen In-Memory Databaseリファレンス』CacheAdminWalletを参照してください。

この項では、TimesTen ClassicTimesTen Scaleoutでこれを行う方法について説明します。

TimesTen ClassicでのOracle Cache管理ユーザーとパスワードの登録

Oracleキャッシュ管理ユーザー名とパスワードは、TimesTen Classicに登録できます。

  1. CacheAdminWalletの最初の接続属性が1に設定されていることを確認します。
  2. ttIsqlユーティリティを起動し、TimesTenキャッシュ管理ユーザーとしてcache1 DSN (例)に接続します。「キャッシュ管理ユーザーとパスワードの両方の指定」で説明する方法のいずれかを使用して接続する場合は、キャッシュ管理のユーザー名とパスワードを指定します。
    % ttIsql "DSN=cache1;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
  3. ttCacheUidPwdSet組込みプロシージャを(1回のみ)使用して、Oracleデータベース内のOracleキャッシュ管理ユーザー名とパスワードのTimesTenデータベースを登録します。CacheAdminWallet=1以降、Oracleキャッシュ管理ユーザー名とパスワードは、システム管理のOracleウォレットに格納されます。

    Oracleキャッシュ管理ユーザー名はcacheadminで、パスワードはorapwdです。

    Command> call ttCacheUidPwdSet('cacheadmin','orapwd');

ノート:

TLSが使用されている場合にのみ、クライアント/サーバー接続を介してttCacheUidPwdSet組込みプロシージャを実行できます。パスワードは、TLS接続を介して送信される場合にのみ暗号化されます。

『Oracle TimesTen In-Memory Databaseキャッシュ・ガイド』Oracle DatabaseおよびTimesTen Classicシステムの設定およびキャッシュ・インフラストラクチャの設定を参照してください。

「キャッシュ・グループの権限」を参照してください。

ノート:

または、ttAdminを使用して、Oracleキャッシュ管理ユーザーIDとパスワードを設定できます。詳細は、『Oracle TimesTen In-Memory Databaseリファレンス』キャッシュ・ポリシーの設定を参照してください。たとえば、次のように指定します:

% ttAdmin -cacheUidPwdSet -cacheUid cacheadmin -cachePwd orapwd database1

ttCacheUidPwdSet組込みプロシージャを使用して、Oracleキャッシュ管理パスワードを後でいつでも変更したり、既存のキャッシュ・グループがないかぎり、Oracleキャッシュ管理ユーザー名(およびオプションでパスワードも)を変更できます。

TimesTen Scaleoutでのキャッシュ管理ユーザー・パスワードの登録

TimesTen Scaleoutでは、アクティブな管理インスタンスでttGridAdmin dbCacheCredentialSetコマンドを使用して、Oracleキャッシュ管理ユーザー名とパスワードをTimesTen Scaleoutに登録します。

  1. CacheAdminWalletの接続属性が1に設定されていることを確認します。『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』データベース定義の作成を参照してください。

  2. ttGridAdmin dbCacheCredentialSetコマンド(1回のみ)を使用して、Oracleデータベース内のOracleキャッシュ管理ユーザー名とパスワードのTimesTenデータベースを登録します。CacheAdminWallet=1以降、Oracleキャッシュ管理ユーザー名とパスワードは、システム管理のOracleウォレットに格納されます。

    次の例では、TimesTenデータベースとしてdatabase1を指定します。ttGridAdmin dbCacheCredentialSetコマンドでは、ユーザー名とパスワードの入力が求められます。Oracleキャッシュ管理ユーザー名はcacheadminです。

    % ttGridAdmin dbCacheCredentialSet database1
    Enter your Oracle user id: cacheadmin 
    Enter Oracle password: 
    Password accepted 
    Configuring cache.....................................................OK 

『Oracle TimesTen In-Memory Database Scaleoutユーザーズ・ガイド』TimesTenデータベースでのキャッシュ管理ユーザー名とパスワードの設定および『Oracle TimesTen In-Memory Databaseリファレンス』資格証明の設定(dbCacheCredentialSet)を参照してください。

ノート:

  • dbCacheCredentialSetを使用して、Oracleキャッシュ管理パスワードを後でいつでも変更したり、既存のキャッシュ・グループがないかぎり、Oracleキャッシュ管理ユーザー名(およびオプションでパスワードも)を変更することもできます。
  • グリッドのアクティブな管理インスタンスが作成されると、ttGridAdmin gridCreate -walletDirでは、暗号化情報を含むサーバー管理Oracleウォレットが格納されるディレクトリへのパスを指定します。この暗号化情報には、Oracleキャッシュ管理ユーザー、クライアント/サーバーおよびメンバーシップ・サービスの資格証明が含まれています。デフォルトは、timesten_home/infoです。複数のインスタンスのウォレットを同じディレクトリ(NFS経由などでインスタンス間で共有できるディレクトリ)に格納できます。これにより、ユーザーはグリッドにキャッシュ資格証明を安全に渡すことができます。「TimesTenでのセキュアなネットワーク通信」を参照してください。
  • ttGridAdmin modelApplyコマンドは、新しいウォレットをすべての新しいインスタンスに送信します。
  • ttGridAdmin dbDistributeコマンドは、データベースの分散マップに新しいインスタンスが追加されるたびに、Oracleキャッシュ管理ユーザーIDとパスワードを設定します。
  • データベースにインポートするキャッシュ・グループとともにttGridAdmin dbImport を使用する場合は、dbImportの前にdbCacheCredentialSetを実行する必要があります。インポートを開始する前に、dbImport -dbCacheCredentialCheckオプションを使用してこれを確認できます。