この章では、ユーザー移行ユーティリティについて説明します。このユーティリティを使用すると、データベース・ユーザーをLDAPディレクトリに一括して移行し、エンタープライズ・ユーザーとして一元的に格納および管理できます。ここでは、次の項目について説明します。
データベース・ユーザー・モデルからエンタープライズ・ユーザー・モデルに移行すると、エンタープライズ環境における管理、セキュリティおよび操作性の問題が解決されます。エンタープライズ・ユーザー・モデルでは、すべてのユーザー情報がLDAPディレクトリ・サービスに移行されます。
エンタープライズ・ユーザー・セキュリティを使用すると、次の利点によって、エンタープライズ全体のユーザーを簡単かつ安全に管理できます。
LDAPバージョン3準拠のディレクトリ・サーバーにユーザー資格証明、ロールおよび権限を一元的に格納します。
X.509v3準拠の証明書を使用してシングル・サインオンを可能にするインフラストラクチャを提供します。通常、エンドツーエンドのSSLが必要な場所にデプロイされます。
適時にメンテナンスし、ユーザー・パスワードを少なくすることでセキュリティを強化します。
エンタープライズ・ユーザー・モデルに固有のユーザー情報を一元化すると、管理が簡単になります。セキュリティ管理者は、ユーザー情報に対して必要な保守変更を即時実行できるため、重要なネットワーク・リソースへのアクセスを効率的に制御し続けることができます。また、エンタープライズ・ユーザー・モデルでは記録しておくパスワードの数が少なくなるため、ユーザーにとっても使いやすいものです。その結果、ユーザーが推測しやすいパスワードを選択したり、他者が書き写すことができる場所にパスワードを書き留めたりすることが少なくなります。
ユーザー移行ユーティリティは、エンタープライズ・ユーザー管理者がユーザーをローカル・データベース・モデルからエンタープライズ・ユーザー・モデルに移行できるようにするコマンドライン・ユーティリティです。何千ものローカルおよび外部データベース・ユーザーを、集中的に管理できるLDAPディレクトリ内のエンタープライズ・ユーザー環境に簡単に移行できます。このユーティリティは、Oracle JDBC OCIドライバを使用してデータベースに接続します。
エンタープライズ・ユーザー管理者は、データベース内の次のユーザー・サブセットのあらゆる組合せを移行対象として選択できます。
コマンドラインまたはファイルで指定されたユーザーのリスト
すべての外部ユーザー
すべてのグローバル・ユーザー
また、エンタープライズ・ユーザー管理者は、ユーザーの移行方法を決定するユーティリティ・パラメータの値を指定することもできます。次に例を示します。
移行ユーザーを挿入するLDAPディレクトリ・ツリー内の場所
様々なデータベースに複数のアカウントを持つユーザーと1つのディレクトリ・ユーザー・エントリのマッピング
次の各項では、移行プロセスとユーザー・スキーマに対する変更について説明します。
注意: 外部ユーザーの移行後、その外部認証および認可のメカニズムは、ディレクトリベースのメカニズムに置き換わります。移行ユーザーが新たに作成されたディレクトリ・エントリにマップされる場合は、そのユーザーに対して新規パスワードがランダムに生成されます。 |
バルク・ユーザー移行プロセスには、2つのフェーズがあります。フェーズ1では、ユーザー情報をインタフェース・データベース表に移入して移行プロセスを開始します。次に、エンタープライズ・ユーザー管理者は、情報が正確であることを確認した後、フェーズ2でデータベースとディレクトリに対する変更をコミットして移行を完了します。次の各手順でプロセスを説明します。
移行プロセスの第1フェーズでは、エンタープライズ・ユーザー管理者のスキーマにORCL_GLOBAL_USR_MIGRATION_DATA
インタフェース表が存在するかどうかがチェックされます。存在する場合、管理者は、(コンテンツはクリアした)表の再利用、表およびコンテンツの再利用、表の再作成を選択できます。フェーズ1は複数回実行でき、実行のたびにインタフェース表に追加されます。表が存在しない場合は、管理者のスキーマに表が作成されます。インタフェース表には、データベースおよびディレクトリからユーザーの移行に関する情報が移入されます。使用されるコマンドライン・オプションにより、この表に移入される情報が決定されます。
この手順は、データベースおよびディレクトリに対する変更のコミット前に、インタフェース表内のユーザー情報が正しいことをエンタープライズ・ユーザー管理者が確認できるようにするための中間手順です。
インタフェース表のユーザー情報の確認後、フェーズ2が開始されます。表から情報が取得され、ディレクトリおよびデータベースが更新されます。
移行ユーザーのディレクトリ・エントリが存在するかどうかによって、次のようにパスワードがランダムに作成されます。
新たに作成されたディレクトリ・エントリに移行ユーザーがマップされる場合は、パスワードがランダムに生成され、データベースとディレクトリの両方に対する資格証明として使用されます。
データベース・パスワードが設定されていない既存のディレクトリ・エントリに移行ユーザーがマップされる場合は、データベース・パスワードのみがランダムに生成されます。
どちらの場合も、必要なランダム・パスワードが生成されると、インタフェース表のDBPASSWORD
列とDIRPASSWORD
列にそれぞれ格納されます。エンタープライズ・ユーザー管理者は、これらのパスワードをインタフェース表から読み取り、移行ユーザーに通知できます。
この表は、バルク・ユーザー移行プロセスのフェーズ1で、移行ユーザーに関する情報が移入されるインタフェース表です。この表に移入される情報はデータベースから取得され、ディレクトリ内の既存のエントリと照合されます。ディレクトリに対応する情報がある場合は、表内のそのユーザーの情報がマークされます。エンタープライズ・ユーザー管理者がこの表の情報を確認した後、フェーズ2でディレクトリおよびデータベースに変更が適用されます。
表A-1に、表の列を示します。
表A-1 ORCL_GLOBAL_USR_MIGRATION_DATA表のスキーマ
列名 | データ型 | NULL設定 | 説明 |
---|---|---|---|
VARCHAR2(30) |
NULL以外 |
データベース・ユーザー名 |
|
VARCHAR2(10) |
- |
移行前のデータベースでの旧スキーマ・タイプ |
|
VARCHAR2(30) |
- |
未使用 |
|
VARCHAR2(4000) |
- |
ディレクトリ内のユーザーの(新規または既存の)識別名(DN) |
|
CHAR(1) |
- |
ディレクトリにDNがすでに存在しているかどうかを示すフラグ |
|
VARCHAR2(30) |
- |
共有スキーマ名(フェーズ2でユーザーが共有スキーマにマップされる場合) |
|
VARCHAR2(10) |
- |
マッピング・タイプ(データベースまたはドメイン) |
|
VARCHAR2(10) |
- |
マッピング・レベル(エントリまたはサブツリー) |
|
CHAR(1) |
- |
ユーザーの削除時に使用されるカスケード・フラグ(共有スキーマ・マッピングの場合のみ) |
|
CHAR(1) |
- |
このユーザーのデータベース・パスワード検証がディレクトリにすでに存在しているかどうかを示すフラグ |
|
VARCHAR2(30) |
- |
ランダムに生成され、ディレクトリに格納されるデータベース・パスワード検証 |
|
VARCHAR2(30) |
- |
新しいエントリ用にランダムに生成されたディレクトリ・パスワード |
|
VARCHAR2(10) |
- |
正常に完了したフェーズに関する情報 |
|
CHAR(1) |
- |
管理者の注意を必要とする異常が行に格納されているかどうかを示すフラグ |
|
VARCHAR2(100) |
- |
注意フラグが設定された場合の管理者に対する説明的なヒント |
|
VARCHAR2(30) |
- |
外部KerberosユーザーのKerberosプリンシパル名 |
ユーティリティのフェーズ1の実行後に、必要に応じて、エンタープライズ・ユーザー管理者は表A-2に示すインタフェース表の列を変更できます。
表A-2 フェーズ1とフェーズ2の間に変更できるインタフェース表の列値
列名 | 有効値 | 制限事項 |
---|---|---|
ユーザーのDN |
この値を変更した場合は、それに応じて |
|
|
|
|
|
|
|
共有スキーマ名 |
共有スキーマがデータベースに存在する場合のみ指定します。 |
|
|
この値は、 |
|
|
この値は、 |
|
|
この値は、 |
|
|
|
共有スキーマ・マッピングを使用しない場合、ユーザーの旧データベース・スキーマは保持されます。共有スキーマ・マッピングを使用する場合、ユーザーのローカル・スキーマはデータベースから削除され、移行の実行前にエンタープライズ・ユーザー管理者が作成した共有スキーマにマップされます。移行ユーザーが旧ローカル・データベース・スキーマにデータベース・オブジェクトを所有している場合、管理者は、CASCADE
パラメータをNO
に設定して、そのスキーマとオブジェクトが削除されないように指定できます。CASCADE
パラメータをNO
に設定すると、旧ローカル・スキーマにデータベース・オブジェクトを所有しているユーザーは正常に移行されないため、そのオブジェクトは削除されません。
ローカル・データベース・スキーマにオブジェクトを保持する必要があるユーザーを共有スキーマにマップする場合は、バルク・ユーザー移行を実行する前に、そのオブジェクトを共有スキーマに手動で移行できます。ただし、オブジェクトを共有スキーマに移行すると、その新しいスキーマを共有するすべてのユーザー間でオブジェクトは共有されます。
表A-3に、MAPSCHEMA
およびCASCADE
パラメータの設定による影響をまとめます。
表A-3 共有スキーマ・マッピングの選択とCASCADEオプションの指定による影響
MAPSCHEMAパラメータの設定 | CASCADEパラメータの設定 | ユーザー移行は成功するか | ユーザー・スキーマ・オブジェクトは削除されるか |
---|---|---|---|
PRIVATE |
NO (デフォルト設定) |
はい |
いいえ |
SHARED |
NO |
はい脚注 1 |
いいえ |
SHARED |
YES |
はい脚注 2 |
はい |
脚注1 ユーザーの移行は、そのユーザーが旧データベース・スキーマにオブジェクトを所有していない場合のみ成功し、それ以外の場合は失敗します。
脚注2 ユーザーの移行は成功し、そのユーザーの旧データベース・スキーマは削除されます。
エンタープライズ・ユーザーは、ディレクトリ内で定義および管理され、パスワードまたは証明書を使用してデータベースに対して認証されます。パスワードで認証されるユーザーには、ディレクトリに格納されたOracleデータベースのパスワードが必要です。証明書で認証されるユーザーには、有効なX.509 v3証明書が必要です。
このユーティリティは、移行時に次の手順を実行します。
移行対象のユーザーをデータベースから選択します。
対応するユーザー・エントリを作成するか、ディレクトリ内の既存のエントリを使用します。
移行ユーザーに対して新規データベース・パスワードを作成し、対応する検証をディレクトリにコピーします。
移行ユーザーのエントリに関するスキーマ・マッピング情報をディレクトリに挿入します。 (オプション)
移行ユーザーのローカル・データベース・スキーマを削除または変更します。 (オプション)
注意: 現行のリリースでは、証明書ベースの認証を使用しているユーザーは、移行後にパスワード認証を使用できるようになります。以前は、SSLベースの認証ユーザーは、Oracleデータベースのパスワードを再設定する必要がありました。このプロセスの過程でユーザー・ウォレットは作成されません。 |
関連項目: Oracleウォレットを作成、管理および使用する方法は、『Oracle Database Advanced Security管理者ガイド』のOracle Wallet Managerに関する章を参照してください。 |
ユーザー移行ユーティリティは、Oracle Databaseクライアントのインストール時に次の場所に自動的にインストールされます。
$ORACLE_HOME/rdbms/bin/umu
次の各項では、ユーザー移行ユーティリティを使用してユーザーを正常に移行するために、実行する必要があるプログラムと必須のユーザー権限について説明します。
このユーティリティを正常に使用するには、エンタープライズ・ユーザー管理者に次のデータベース権限が必要です。
ALTER USER
DROP USER
CREATE TABLE
SELECT_CATALOG_ROLE
これらの権限により、エンタープライズ・ユーザー管理者はユーザーの変更および削除、ディクショナリ・ビューの参照、このユーティリティで使用されるインタフェース表の作成ができるようになります。
必須のデータベース権限に加えて、エンタープライズ・ユーザー管理者には、次のタスクを実行できるようにするディレクトリ権限が必要です。
特定のユーザー・ベースおよびOracleコンテキストの下に位置するディレクトリでのエントリの作成
検索ベース下のユーザー・エントリの参照
ユーザー移行ユーティリティを使用する前に、次の手順を実行します。
ディレクトリ・サーバーが、認証なしのSSL対応の状態で稼働していることを確認します。
データベース・サーバーが、暗号化および整合性が有効にされた状態で稼働していることを確認します。
データベース・リスナーにTCPリスニング・エンド・ポイントが指定されていることを確認します。
アイデンティティ管理レルムがまだ存在しない場合は、ディレクトリに作成します。
親コンテキストがまだ存在しない場合は、ディレクトリ内のユーザー・エントリに対して作成します。デフォルト(推奨)の場所は、Oracleコンテキストの共通コンテナ内のorclcommonusercreatebase
サブツリー内です。
Oracle Net Configuration Assistantを使用してldap.ora
ファイルを作成し、データベースのOracleホームに対してディレクトリ・アクセスを設定します。ldap.ora
ファイルには、ユーティリティが正しい管理コンテキストを特定できるように、アイデンティティ管理レルムのDNを含める必要があります。ドメイン・ネーム・システム(DNS)検出を使用している場合は、$LDAP_ADMIN
、$ORACLE_HOME/ldap/admin
、$TNS_ADMIN
、$ORACLE_HOME/network/admin
、最後にDNSサーバーで、このファイルの検索が行われます。(DNSサーバー検出の詳細は、『Oracle Internet Directory管理者ガイド』を参照してください。)
注意:
|
関連項目:
|
データベース・ユーザーからエンタープライズ・ユーザーへのバルク移行を実行するには、次の構文を使用します。
umu parameter1 parameter2 ...
単一の値をとるパラメータの場合は、次の構文を使用します。
keyword=value
複数の値をとるパラメータの場合は、次の構文のようにコロン(:)を使用して値を区切ります。
keyword=value1:value2:...
例A-1に、バルク・ユーザー移行プロセスの両フェーズでユーティリティを実行するために使用する構文を示します。
例A-1 ユーザー移行ユーティリティのコマンドライン構文
umu PHASE=ONE
DBADMIN=dba_username:password ENTADMIN=enterprise_admin_DN:password USERS=[ALL_GLOBAL | ALL_EXTERNAL | LIST | FILE] DBLOCATION=database_host:database_port:database_sid DIRLOCATION=ldap_directory_host:ldap_directory_port USERSLIST=username1:username2:username3:... USERSFILE=filename MAPSCHEMA=[PRIVATE | SHARED]:schema_name MAPTYPE=[DB | DOMAIN]:[ENTRY | SUBTREE] CASCADE=[YES | NO] CONTEXT=user_entries_parent_location LOGFILE=filename PARFILE=filename KREALM=EXAMPLE.COM
umu PHASE=TWO
DBADMIN=dba_username:password ENTADMIN=enterprise_admin_DN:password DBLOCATION=database_host:database_port:database_sid DIRLOCATION=ldap_directory_host:ldap_directory_port LOGFILE=filename PARFILE=filename
注意: エンタープライズ・ユーザー管理者がコマンドラインで必須パラメータを指定しないと、そのパラメータの入力を求めるプロンプトが対話形式で表示されます。 |
関連項目:
|
ユーザー移行ユーティリティを使用するためのコマンドライン構文を表示するには、システム・プロンプトに次のコマンドを入力します。
umu HELP=YES
HELP
パラメータをYES
に設定すると、ユーティリティは実行されません。
次の各項では、このユーティリティの実行時に使用できるパラメータのキーワードと値を示します。キーワードでは大/小文字は区別されません。
属性 | 説明 |
---|---|
有効値: | YES またはNO (これらの値では大/小文字は区別されません。) |
デフォルト設定: | NO |
構文例: | HELP=YES |
説明: | このキーワードは、ユーティリティのヘルプを表示するために使用します。YES に設定すると、コマンドライン構文の詳細が表示されます。コマンドを実行するには、値をNO に設定するか、パラメータに値を指定せずにデフォルトを受け入れます。 |
制限事項: | なし |
属性 | 説明 |
---|---|
有効値: | ONE またはTWO (これらの値では大/小文字は区別されません。) |
デフォルト設定: | ONE |
構文例: | PHASE=ONE
|
説明: | ユーティリティのフェーズを指定します。ONE の場合、コマンドライン引数に指定された情報およびディレクトリ内の既存のユーザー・エントリがインタフェース表に移入されます。TWO の場合、インタフェース表で使用可能な情報を使用してディレクトリおよびデータベースが更新されます。 |
制限事項: | なし |
属性 | 説明 |
---|---|
有効値: | host:port:sid |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | DBLOCATION=my_oracle.us.example.com:7777:ora902 |
説明: | データベース・インスタンスのホスト名、ポート番号およびSIDを指定します。 |
制限事項: |
|
属性 | 説明 |
---|---|
有効値: | host:port |
デフォルト設定: | この値は、デフォルトではldap.ora ファイルから自動的に移入されます。 |
構文例: | DIRLOCATION=my_oracle.us.example.com:636 |
説明: | LDAPサーバーが認証なしのSSLで稼働しているディレクトリ・サーバーのホスト名とポート番号を指定します。 |
制限事項: | このパラメータの値は、フェーズ1とフェーズ2の両方で同一であることが必要です。 |
属性 | 説明 |
---|---|
有効値: | username:password |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | DBADMIN=system:manager |
説明: | データベースへの接続に必要な権限を持つデータベース管理者のユーザー名とパスワードを指定します。 |
制限事項: |
|
属性 | 説明 |
---|---|
有効値: | userDN:password |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | ENTADMIN=cn=janeadmin,dc=acme,dc=com:Easy2rem |
説明: | ディレクトリへのログインに必要な権限を持つエンタープライズ・ディレクトリ管理者のユーザー識別名(UserDN)とディレクトリ・パスワードを指定します。UserDNは二重引用符("")で囲んで指定することもできます。 |
制限事項: | このパラメータは必須です。 |
属性 | 説明 |
---|---|
有効値: | value1:value2...
次の値を指定できます。
このパラメータは複数の値をとります。値はコロン(:)で区切ります。 (これらの値では大/小文字は区別されません。) |
デフォルト設定: | デフォルト設定はありません。 |
構文例: |
|
説明: | 移行対象のユーザーを指定します。このパラメータに複数の値を指定すると、これらのユーザー・セットの結合が使用されます。 |
制限事項: | このパラメータは、フェーズ1でのみ必須で、フェーズ2では無視されます。 |
属性 | 定義 |
---|---|
有効値: | user1:user2:...
ユーザー名はコロン(:)で区切ります。 |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | USERSLIST=jdoe:tchin:adesai |
説明: | 移行対象のデータベース・ユーザーのリストを指定します。このリストのユーザーは、USERS パラメータで指定された他のユーザーとともに移行されます。 |
制限事項: | このオプション・パラメータは、USERS パラメータでLIST が指定されている場合のみ有効です。 |
属性 | 定義 |
---|---|
有効値: | ファイル名とパス |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | USERSFILE=/home/orahome/userslist/hr_users.txt |
説明: | 移行対象のデータベース・ユーザーのリスト(1行に1つのユーザー)が記述されているファイルを指定します。このファイルのユーザーは、USERS パラメータで指定された他のユーザーとともに移行されます。 |
制限事項: | このオプション・パラメータは、USERS パラメータでFILE が指定されている場合のみ有効です。 |
属性 | 説明 |
---|---|
有効値: | kerberos realm |
デフォルト設定: | デフォルト設定はありません。 |
構文例: | KREALM=EXAMPLE.COM |
説明: | 外部Kerberosユーザー用のKerberos REALMを指定します。通常、これはデータベース・サーバーのドメイン名です。このパラメータを指定しないと、移行対象の外部ユーザーはすべて非Kerberosとみなされます。 |
制限事項: |
|
属性 | 説明 |
---|---|
有効値: | schema_type:schema_name
次のスキーマ・タイプを指定できます。
(これらの値では大/小文字は区別されません。) |
デフォルト設定: | PRIVATE |
構文例: | MAPSCHEMA=SHARED:HR_ALL |
説明: | インタフェース表にスキーマ・マッピング情報を移入するかどうかを指定します。 |
制限事項: |
|
属性 | 説明 |
---|---|
有効値: | mapping_type:mapping_level
次のマッピング・タイプを指定できます。 次のマッピング・レベルを指定できます。 マッピング・タイプとマッピング・レベルはコロン(:)で区切ります。 (これらの値では大/小文字は区別されません。) |
デフォルト設定: | DB:ENTRY |
構文例: | MAPTYPE=DOMAIN:SUBTREE |
説明: | キーワードMAPSCHEMAをSHARED に設定したときに適用されるスキーマ・マッピングのタイプを指定します。DB をマッピング・タイプとして指定すると、データベースのディレクトリにマッピングが作成されます。DOMAIN をマッピング・タイプとして指定すると、データベースを含むドメインのディレクトリにマッピングが作成されます。ドメイン・マッピングの場合は、関連するOracleコンテキストでのLDAP検索によって、データベースを含むドメインが特定されます。 |
制限事項: | このパラメータは、MAPSCHEMA がSHARED に設定されている場合のみ有効です。 |
属性 | 説明 |
---|---|
有効値: |
(これらの値では大/小文字は区別されません。) |
デフォルト設定: | NO |
構文例: | CASCADE=YES |
説明: | ユーザーが共有スキーマにマップされる場合に、ユーザーのローカル・スキーマを削除するかどうかを指定します。 |
制限事項: | このパラメータは、MAPSCHEMA がSHARED に設定されている場合のみ有効です。 |
属性 | 説明 |
---|---|
有効値: | ユーザー・エントリの親の識別名(DN)。これは、Oracle Internet Directoryアイデンティティ管理レルムのユーザー検索ベースまたはユーザー作成ベースと同一です。
親DNは二重引用符("")で囲んで指定することもできます。 |
デフォルト設定: | Oracleコンテキストのcn=Commonの下のorclCommonUserCreateBase属性に設定された値
Oracleコンテキストを示すディレクトリ情報ツリー・ダイアグラムは、図1-3「レルムOracleコンテキスト内の関連エントリ」を参照してください。 |
構文例: | CONTEXT="c=Users, c=us" |
説明: | ユーザーのユーザーIDと一致するディレクトリ・エントリがない場合に、ユーザー・エントリを作成するディレクトリ下の親エントリのDNを指定します。 |
制限事項: | このパラメータは、フェーズ1でのみ有効です。 |
次の各項では、このユーティリティで一般的に使用される構文例を示します。
旧データベース・スキーマを保持したままユーザーを移行するには、MAPSCHEMA
パラメータをPRIVATE
(デフォルト設定)に設定します。たとえば、ユーザーscott1
、scott2
およびすべての外部データベース・ユーザーを、旧スキーマを保持したまま、新たに生成されたデータベース・パスワードとディレクトリ・パスワードとともにc=Users, c=us
にあるディレクトリに移行するには、例A-2に示す構文を使用します。
注意: デフォルトでは、移行対象の外部ユーザーはすべて非Kerberosとみなされます。既存のKerberosユーザーについては、移行後にユーティリティを使用してKerberosプリンシパル名属性をOracle Internet Directoryに設定できます。そのためには、KerberosREALM 値を使用してコマンドラインにKREALM パラメータを指定します。たとえば、Kerberos REALM 値がEXAMPLE.COM の場合は、KREALM=EXAMPLE.COM と入力します。このように設定した後は、user @kerberos_realm 形式の名前を持つユーザーがKerberosユーザーとみなされます。Oracle Internet Directoryでは、Kerberosプリンシパル名はデータベース・ユーザー名を使用して設定されます。
関連項目: 「キーワード: KREALM」 |
例A-2 MAPSCHEMA=PRIVATE (デフォルト)を使用したユーザーの移行
umu PHASE=ONE
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager USERS=ALL_EXTERNAL:LIST USERSLIST=scott1:scott2 DIRLOCATION=machine2:636 CONTEXT="c=Users,c=us" ENTADMIN="cn=janeadmin":Easy2rem
umu PHASE=TWO
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager DIRLOCATION=machine2:636 ENTADMIN="cn=janeadmin":Easy2rem
フェーズ1が正常に完了した後、インタフェース表にユーザー移行情報が移入されます。その後、エンタープライズ・ユーザーの管理者はこの表を調べて、内容を確認できます。MAPSCHEMA
パラメータに値が指定されていないため、フェーズ1はデフォルト値PRIVATE
を使用して実行されます。その結果、すべてのユーザーの旧データベース・スキーマおよびオブジェクトは保持されます。
旧データベース・スキーマを削除してユーザーを移行し、新しい共有スキーマにマップするには、MAPSCHEMA
パラメータをSHARED
に設定します。共有スキーマは既に存在しているか、移行プロセスの実行前にエンタープライズ・ユーザーの管理者がパラメータを設定して作成する必要があります。次の例では、ユーザーscott1
、scott2
およびすべての外部データベース・ユーザーを、新たに生成されたデータベース・パスワードとディレクトリ・パスワードとともにc=Users, c=us
にあるディレクトリに移行し、移行したすべてのユーザーをデータベースの新しい共有スキーマにマップします。
例A-3に示す構文を使用し、MAPSCHEMA
をSHARED
に設定して移行プロセスを実行します。
例A-3 MAPSCHEMA=SHAREDを使用したユーザーの移行
umu PHASE=ONE
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager USERS=ALL_EXTERNAL:LIST USERSLIST=scott1:scott2 MAPSCHEMA=SHARED:schema_32 DIRLOCATION=machine2:636 CONTEXT="c=Users, c=us" ENTADMIN="cn=janeadmin":Easy2rem
umu PHASE=TWO
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager DIRLOCATION=machine2:636 ENTADMIN="cn=janeadmin":Easy2rem
フェーズ1が正常に完了した後、インタフェース表にユーザー移行情報が移入されます。その後、管理者はこの表を調べて内容を確認できます。ユーザーscott1
、scott2
および外部ユーザーには、ランダムに生成される新しいデータベース・パスワードおよびディレクトリ・パスワードが割り当てられます。CASCADE
パラメータに値が指定されていないため、フェーズ1はデフォルト値NO
を使用して実行されます。その結果、データベース・スキーマにデータベース・オブジェクトを所有するユーザーの移行は失敗し、スキーマは自動的に削除されません。どのユーザーの移行が失敗したのか調べるには、デフォルトで$ORACLE_HOME/network/log/umu.log
に置かれているログファイルを確認します。
CASCADE
パラメータの設定により、移行時に共有スキーマにマップするとき、ユーザーの旧データベース・スキーマを自動的に削除するかどうかが決定されます。CASCADE
は、MAPSCHEMA
がSHARED
に設定されている場合のみ使用できます。
デフォルトでは、CASCADE
パラメータはNO
に設定されます。この設定は、移行ユーザーを共有スキーマにマップするときに、旧スキーマにデータベース・オブジェクトを所有しているユーザーは移行されないことを意味します。データベース・オブジェクトを所有していないユーザーの場合、旧データベース・スキーマは自動的に削除され、新しい共有スキーマにマップされます。
関連項目: CASCADE をNO に設定してユーザーを共有スキーマにマップする構文例は、例A-3を参照してください。NO はCASCADE のデフォルト設定であるため、ユーティリティのコマンド構文にこのパラメータを指定する必要はありません。 |
データベース・オブジェクトを所有している移行ユーザーや、旧データベース・スキーマに所有しているオブジェクトを保持する必要がある移行ユーザーがないことがわかっている場合は、CASCADE
パラメータをYES
に設定すると、すべてのユーザーのスキーマおよびスキーマ・オブジェクトが自動的に削除され、ユーザーは新しい共有スキーマにマップされます。例A-4に、CASCADE
をYES
に設定する場合に使用する構文を示します。この例では、ユーザーscott1
、scott2
およびすべての外部データベース・ユーザーをc=Users, c=us
にあるディレクトリに移行し、移行したすべてのユーザーをデータベースの新しい共有スキーマにマップします。
例A-4 CASCADE=YESを使用したユーザーの移行と共有スキーマへのマッピング
umu PHASE=ONE
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager USERS=ALL_EXTERNAL:LIST USERSLIST=scott1:scott2 MAPSCHEMA=SHARED:schema_32 CASCADE=YES DIRLOCATION=machine2:636 CONTEXT="c=Users, c=us" ENTADMIN="cn=janeadmin":Easy2rem
umu PHASE=TWO
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager DIRLOCATION=machine2:636 ENTADMIN="cn=janeadmin":Easy2rem
フェーズ1が正常に完了した後、インタフェース表にユーザー移行情報が移入されます。その後、管理者はこの表を調べて内容を確認できます。CASCADE
パラメータがYESに設定されているため、データベース・オブジェクトを所有しているユーザーを含め、移行したすべてのユーザーの旧データベース・スキーマは自動的に削除されます。
MAPSCHEMA
がSHARED
に設定されている場合は、MAPTYPE
パラメータの値を指定することでマッピング・タイプを設定できます。このパラメータは2つの値(マッピング・タイプとマッピング・レベル)をとります。
マッピング・タイプは、データベースを表すDB
またはエンタープライズ・ドメインを表すDOMAIN
に設定できます。マッピング・タイプDB
を指定すると、マッピングは共有スキーマが格納されているデータベースにのみ適用されます。マッピング・タイプとしてDOMAIN
を指定すると、共有スキーマが格納されているデータベースを含むエンタープライズ・ドメインと、そのドメイン内のすべてのデータベースにマッピングが適用されます。
マッピング・レベルはENTRY
またはSUBTREE
に設定できます。ENTRY
を指定すると、ユーザーは完全識別名(DN)を使用して共有スキーマにマップされます。この場合、ユーザーごとに1つのマッピングが作成されます。SUBTREE
を指定すると、DNの一部を共有するユーザー・グループが一緒にマップされます。この場合、ディレクトリ・ツリーの共通ルートの下にすでにグループ化されているユーザー・グループに対して1つのマッピングが作成されます。例A-5に、MAPTYPE
パラメータを設定する場合に使用する構文を示します。この例では、ユーザーscott1
、scott2
およびすべての外部データベース・ユーザーをc=Users, c=us
にあるディレクトリに移行し、移行したすべてのユーザーをデータベースの新しい共有スキーマにマップします。また、マッピングはデータベースを含むエンタープライズ・ドメインに適用され、エントリ・レベルで実行されるため、ユーザーごとに1つのマッピングが作成されます。
例A-5 MAPTYPEパラメータを使用したユーザーの移行と共有スキーマへのマッピング
umu PHASE=ONE
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager USERS=ALL_EXTERNAL:LIST USERSLIST=scott1:scott2 MAPSCHEMA=SHARED:schema_32 MAPTYPE=DOMAIN:ENTRY DIRLOCATION=machine2:636 CONTEXT="c=Users, c=us" ENTADMIN="cn=janeadmin":welcome
umu PHASE=TWO
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager DIRLOCATION=machine2:636 ENTADMIN="cn=janeadmin":welcome
移行対象のユーザー(scott
など)が、その下のサブツリーにユーザー・エントリを保持する予定がある場合は、このユーザー・エントリ(cn=scott
)からスキーマへのサブツリー・レベルのマッピングを作成することに意味があります。ただし、データベースは、このユーザーをサブツリー内のユーザーとして解釈しないため、マッピングはscott
自身には適用されません。たとえば、DNがcn=scott,o=acme
のユーザーscott
を移行し、ユーティリティの実行時にマッピング・レベルとしてSUBTREE
を選択した場合、cn=scott,o=acme
から共有スキーマへの新しいマッピングが作成されますが、ユーザーscott
はそのスキーマにマップされません。scott
ディレクトリ・エントリの下に作成された新しいユーザーのみが共有スキーマにマップされます。したがって、SUBTREE
マッピング・レベルは、ユーザー・ディレクトリ・エントリが他のユーザー・ディレクトリ・エントリの下にある場合のみ指定する必要がありますが、これは通常のディレクトリ構成ではありません。
マッピング・エントリが1つしかない単一の共有スキーマに任意のサブツリー・ユーザーをマップする場合は、Oracle Enterprise Managerを使用してそのマッピングを作成する必要があります。
ユーザー情報とユーザー移行ユーティリティのパラメータをテキスト・ファイルに入力し、PARFILE
およびUSERSFILE
パラメータを使用して情報およびパラメータをユーティリティに渡すことができます。LOGFILE
パラメータは、各ユーザーの移行に関する詳細が書き込まれるログ・ファイルのディレクトリ・パスを設定します。
PARFILE
パラメータは、バルク・ユーザー移行のパラメータを記述したテキスト・ファイルの場所をユーティリティに指示します。USERSFILE
パラメータは、パラメータのかわりにデータベース・ユーザーを記述する点を除いて、PARFILE
パラメータと同様に機能します。パラメータおよびユーザー・リストには、1行に1つのパラメータまたはユーザーを記述します。LOGFILE
パラメータは、ユーザーの移行時に発生するシステム・イベント(エラーなど)の書込み先をユーティリティに指示します。USERSFILE
パラメータは、移行プロセスのフェーズ1で使用します。PARFILE
およびLOGFILE
パラメータは、両フェーズで使用できます。
例A-6に、ユーザーscott1
、scott2
およびすべての外部データベース・ユーザーを、旧スキーマを保持したまま、c=Users, c=us
にあるディレクトリに移行するための一般的なパラメータ・テキスト・ファイルの構文を示します。この例では、移行イベントのログは、ユーティリティが実行されるディレクトリのerrorfile1
ファイルに書き込まれます。別の場所に書き込む場合は、ファイル名とともにパスを指定します。
例A-6 PARFILEパラメータで使用するパラメータ・テキスト・ファイル(par.txt)
DBLOCATION=machine1:1521:ora_sid DBADMIN=system:manager USERS=ALL_EXTERNAL:LIST:FILE USERSLIST=scott1:scott2 USERSFILE=usrs.txt DIRLOCATION=machine2:636 CONTEXT="c=Users, c=us" ENTADMIN="cn=janeadmin":Easy2rem LOGFILE=errorfile1
例A-7に、一般的なユーザー・リスト・テキスト・ファイルの構文を示します。
例A-7 USERSFILEパラメータで使用するユーザー・リスト・テキスト・ファイル(usrs.txt)
user1 user2 user3
これらのパラメータおよびユーザー・リストのテキスト・ファイルを使用して移行プロセスのフェーズ1を実行するには、例A-8に示す構文を使用します。
移行時の障害は、エラー・メッセージとログ・メッセージによってエンタープライズ・ユーザー管理者にレポートされます。次の各項では、一般的なエラー・メッセージとログ・メッセージおよびその解決方法について説明します。
ユーティリティの実行中にエラーが発生した場合は、エラー・メッセージが表示され停止します。次の各項では、これらのメッセージおよびエラーの解決方法について説明します。
移行のフェーズ1の実行中に、構文エラーやその他のエラーが発生する場合があります。次のエラー・メッセージは、移行のフェーズ1の実行中に表示される可能性があります。
データベース・オブジェクトが不明です : : SHARED-SCHEMA = <shared_schema_name >
ファイル読取り中のエラー : : PARFILE = < file_name > : : < io_error_message>
通常、ユーザーが正常に移行されたかどうかにかかわらず、ログ・メッセージは移行対象の各ユーザーのログ・ファイルに書き込まれます。次の各項では、これらのメッセージおよびエラーの解決方法について説明します。
移行のフェーズ1の実行中に、ユーザーの情報がインタフェース表に正常に移入されなかったことを示すメッセージがログ・ファイルに書き込まれる場合があります。フェーズ1の完了後に、ログ・ファイルを調べて次のメッセージの有無を確認します。
移行のフェーズ2の実行中に、ユーザーが正常に移行されなかったことを示すメッセージがログ・ファイルに書き込まれる場合があります。フェーズ2の完了後に、ログ・ファイルを調べて次のメッセージの有無を確認します。
表A-4と表A-5に、すべてのエラー・メッセージとログ・メッセージのリストを示します。また、メッセージとその解決方法が記載された項へのリンクも示します。
表A-4 ユーザー移行ユーティリティのエラー・メッセージのリスト
表A-5 ユーザー移行ユーティリティのログ・メッセージのリスト