ヘッダーをスキップ
Oracle® Databaseプラットフォーム・ガイド
11gリリース2(11.2) for Microsoft Windows
B58885-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

10 Windowsでの外部ユーザーおよびロールの管理

外部ユーザーおよびロールは、一般にOracle Databaseの外部のものによって定義されます。Windows環境では、オペレーティング・システムによって定義されます。

この章では、Oracle Administration Assistant for Windowsを使用するか、またはOracle Databaseコマンドライン・ツール、レジストリ エディタおよびその他のWindowsツールを組み合せて使用した、外部ユーザーおよび外部ロールの作成と管理について説明します。


関連項目:

エンタープライズ・ユーザーおよびエンタープライズ・ロールの管理に使用できるツールの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。

この章の項目は次のとおりです。

Oracle Administration Assistant for Windows

Oracle Administration Assistant for Windowsは、Microsoft管理コンソールから実行するツールです。このツールを使用すると、Windowsオペレーティング・システムで認証を行い、パスワードなしでOracle Databaseにアクセスできる、次のOracle Databaseユーザーおよびロールを構成できます。

また、Oracle Administration Assistant for Windowsでは、ローカルおよび外部データベース・ロールを作成し、Windowsドメイン・ユーザーおよびグローバル・グループに付与できます。

Oracle Administration Assistant for Windowsを使用すると、次のいずれも手動で実行する必要はありません。

  • データベースのシステム識別子およびロールと一致するローカル・グループの作成

  • これらのローカル・グループへのドメイン・ユーザーの割当て

  • SQL*Plusにおける、次の構文でのユーザー認証

    SQL> CREATE USER username IDENTIFIED EXTERNALLY
    

この項では、Oracle Administration Assistant for Windowsを使用した、次のタスクの実行方法について説明します。

リモート・コンピュータの管理

Oracle Administration Assistant for Windowsを使用してリモート・コンピュータを管理する場合は、そのリモート・コンピュータに対して管理者権限を持っている必要があります。Oracle Administration Assistant for WindowsによってOracle Databaseで作成されるユーザーの名前には、常に接頭辞としてドメイン名が付けられます。Oracle7リリース7.x以上のデータベースをリモート管理する場合は、リモート・コンピュータのレジストリ・パラメータOSAUTH_PREFIX_DOMAINtrueに設定する必要があります。このパラメータは次のキーにあります。

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOME_NAME  

コンピュータがドメイン・ネーム・システム(DNS)のドメイン名で識別されない場合は、次のエラー・メッセージが表示されます。

Calling query w32RegQueries1.7.0.17.0  RegGetValue
Key = HKEY_LOCAL_MACHINE
SubKey = SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Value = Domain
Query Exception: GetValueKeyNotFoundException
Query Exception Class: class oracle.sysman.oii.oiil.OiilQueryException
...

DNS名を割り当てるか、またはプライマリDNS接尾辞を変更するには、Microsoftのドキュメントを参照してください。

コンピュータの追加と構成の保存

Oracle Administration Assistant for Windowsを初めて使用すると、ローカル・コンピュータがナビゲーション・ツリーに追加されます。その後で、他のコンピュータを追加できます。

Microsoft管理コンソールのツリーにコンピュータを追加するには、次のようにします。

  1. 「スタート」「プログラム」「Oracle - HOME_NAME「Configuration and Migration Tools」「Administration Assistant for Windows」を選択します。

    Microsoft管理コンソールが起動します。

  2. 「Oracle Managed Objects」をダブルクリックします。

    コンピュータ・アイコンが表示されます。

  3. 「コンピュータ」を右クリックします。

  4. 「新規」「コンピュータ」を選択します。

    「コンピュータの追加」ダイアログが表示されます。

    addcomp.gifの説明が続きます
    図addcomp.gifの説明

  5. Oracle Databaseがインストールされているコンピュータのドメイン名およびコンピュータ名を指定します。

  6. 「OK」をクリックします。

  7. 「コンピュータ」をダブルクリックし、追加したコンピュータを表示します。

  8. 追加したコンピュータをダブルクリックします。データベース管理者およびオペレータを認証するためのノードがいくつか表示されます。

    「OSデータベース管理者 - コンピュータ」ノードでは、コンピュータ上のすべてのデータベース・インスタンスに対するSYSDBA権限を持つ、オペレーティング・システムで認証されたデータベース管理者を作成します。「OSデータベース・オペレータ - コンピュータ」ノードでは、コンピュータ上のすべてのデータベース・インスタンスに対するSYSOPER権限を持つ、オペレーティング・システムで認証されたデータベース・オペレータを作成します。

  9. 「コンソール」メイン・メニューの「保存」をクリックして、コンソール・ファイルに構成を保存します。これにより、コンピュータ上のすべてのインスタンスに対するデータベース管理者およびオペレータを認証できます。

コンピュータ上のすべてのデータベースに対する管理者権限の付与

コンピュータ上のすべてのデータベースに対するデータベース管理者(SYSDBA)権限をデータベース管理者(DBA)に付与するには、次のようにします。


注意:

データベースのインストールのためにドメイン・アカウントを使用する場合は、そのドメイン・ユーザーにローカル管理権限を付与する必要があります。これはドメイン・ユーザーが別のグループからメンバーシップの権限を継承するには不十分です。インストールを実行するユーザーが必ず同じドメインにいるようにしてください。そうでないと、NTS認証が失敗します。

  1. 「スタート」「プログラム」「Oracle - HOME_NAME「Configuration and Migration Tools」「Administration Assistant for Windows」を選択します。

    Oracle Administration Assistant for Windowsが起動します。

  2. 「OSデータベース管理者 - コンピュータ」を右クリックします。

  3. 「追加/削除」をクリックします。

    「OSデータベース管理者 - コンピュータ: hostname」ダイアログ・ボックスが表示されます。

    ntdba.gifの説明が続きます
    図ntdba.gifの説明

  4. 「ドメイン」リストで、SYSDBA権限を付与するユーザーのドメインを選択します。

  5. ユーザーを選択します。

  6. 「追加」をクリックします。

    ユーザーが「OSデータベース管理者 - コンピュータ」ウィンドウに表示されます。

  7. 「OK」をクリックします。

コンピュータ上のすべてのデータベースに対するオペレータ権限の付与

コンピュータ上のすべてのデータベースに対するデータベース・オペレータ(SYSOPER)権限をDBAに付与するには、次のようにします。

  1. 「スタート」「プログラム」「Oracle - HOME_NAME「Configuration and Migration Tools」「Administration Assistant for Windows」を選択します。

    Oracle Administration Assistant for Windowsが起動します。

  2. 「OSデータベース・オペレータ - コンピュータ」を右クリックします。

  3. 「追加/削除」をクリックします。

    「OSデータベース・オペレータ - コンピュータ: hostname」ダイアログ・ボックスが表示されます。

    osdboper.gifの説明が続きます
    図osdboper.gifの説明

  4. 「ドメイン」リストで、SYSOPER権限を付与するユーザーのドメインを選択します。

  5. ユーザーを選択します。

  6. 「追加」をクリックします。

    ユーザーが「OSデータベース・オペレータ - コンピュータ」ウィンドウに表示されます。

  7. 「OK」をクリックします。

データベースへの接続

Oracle Databaseへの接続時にSecure Sockets Layer(SSL)を使用できるようにするには、Oracle Wallet Managerで作成されたウォレットと同じユーザー・アカウントでOracle Databaseサービスおよびリスナー・サービスを開始します。Windowsの「サービス」ダイアログに表示されるデフォルトのユーザー・アカウントを使用しないでください。Oracle Databaseサービスおよびリスナー・サービスがデフォルトのユーザー・アカウントで開始されると、SSLは有効にならず、リスナーは起動しません。SSLのサポートは、Oracle Advanced Securityの機能の1つです。また、Oracle Wallet ManagerもOracle Advanced Securityの機能の1つです。


関連項目:

SSLサポートの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

データベースに接続するには、次のようにします。

  1. Microsoft管理コンソールのスコープ・ペインで、アクセスするデータベース・インスタンスを右クリックします。次に示す例では、ORCLへ接続します。

    cntdb.gifの説明が続きます
    図cntdb.gifの説明

  2. 「データベースの接続」を選択します。

    Oracle Databaseに接続すると、インスタンスの下に次のようなWindowsのノードが表示されます。これらのノードが表示されない場合は、そのインスタンスをダブルクリックしてください。

    • 外部OSユーザー

    • ローカル・ロール

    • 外部OSロール

    • OSデータベース管理者

    • OSデータベース・オペレータ

接続に関する問題のトラブルシューティング

ローカル・コンピュータに接続する場合、Oracle Administration Assistant for Windowsは、最初にBequeathネットワーク・プロトコルを使用して、SYSDBAとしてデータベースへの接続を試みます。リモート・コンピュータに接続する場合、Oracle Administration Assistant for Windowsは、最初にTCP/IPネットワーク・プロトコル(ポート番号1521または非推奨の1526)でWindows認証を使用して、SYSDBAとしてデータベースへの接続を試みます。正常に接続できない場合、1つ以上のダイアログ・ボックスが表示され、データベースに接続するための情報を入力するよう要求されます。

次に示すダイアログ・ボックスは、Oracle Databaseへの接続を試みるときに使用したWindowsドメイン・ユーザーが、SYSDBA権限を持つ認証済のユーザーとして認識されていないために表示されます。データベースにアクセスするには、Oracle Databaseユーザー名およびパスワードを入力します。このダイアログ・ボックスを再度表示しないようにするには、ドメイン・ユーザーをWindowsオペレーティング・システムにより認証されたデータベース管理者として構成します。

cntdb4.gifの説明が続きます
図cntdb4.gifの説明

次のダイアログ・ボックスは、リモートのOracle Databaseへの接続にTCP/IPネットワーク・プロトコルを使用していないか、Oracle Databaseが存在していないために表示されます。TCP/IP以外のプロトコル(たとえばNamed Pipesなど)を使用すると、リモート接続を試みるたびにこのダイアログが表示されます。

cntdb2.gifの説明が続きます
図cntdb2.gifの説明

このダイアログ・ボックスを再度表示しないようにするには、TCP/IPプロトコルに変更して、データベースのOracle Net Servicesリスナーが、デフォルト・ポートの1521(または非推奨のデフォルト・ポートの1526)でリスニングするように設定されていることを確認します。プロトコルを変更しないと、このダイアログ・ボックスが毎回表示されます。Oracle Databaseが起動していることも確認します。

  1. Oracle Databaseに接続するためのネット・サービス名を入力します。ネット・サービス名は、選択する認証方式にかかわらず入力する必要があります。

  2. Oracle Databaseユーザー名およびパスワードを使用してデータベースにアクセスする場合は、「データベース認証」オプションを選択します。このユーザー名およびパスワードは、Oracle Database内に存在し、SYSDBA権限を持っている必要があります。

  3. 現在ログオンしているWindowsドメイン・ユーザーとしてデータベースにアクセスする場合は、「SYSDBAとしてのOS認証接続」オプションを選択します。このドメイン・ユーザーは、SYSDBA権限を持つ認証済のユーザーとしてWindowsで認識されている必要があります。認識されていない場合、ログオンできません。


    注意:

    Oracle Net Servicesには、接続の問題を診断しやすくなるようにトレース・アシスタント・ツールが用意されており、既存のトレース・ファイルのテキストを読みやすい形式に変換することができます。『Oracle Database Net Services管理者ガイド』に記載されている、トレース・ファイルの調査にトレース・アシスタントを使用する方法を参照してください。

データベース認証用パラメータ設定の表示

データベース認証用パラメータ設定を表示するには、次のようにします。

  1. データベースを右クリックします。

  2. 「プロパティ」を選択します。

  3. 「プロパティ」ダイアログが表示され、次のパラメータ値が表示されます。

    • OS_AUTHENT_PREFIX

    • OS_ROLES

OS_AUTHENT_PREFIXは、init.oraファイルのパラメータで、Windowsユーザー名およびパスワードを使用してOracle Databaseへの接続を試みる外部ユーザーを認証します。このパラメータの値は、各ユーザーのWindowsユーザー名の先頭に付加されます。

デフォルトでは、このパラメータはOracle Databaseの作成中になし("")に設定されます。したがって、frankというWindowsドメイン・ユーザー名は、ユーザー名frankとして認証されます。このパラメータをxyzに設定すると、Windowsドメイン・ユーザーのfrankは、ユーザーxyzfrankとして認証されます。

OS_ROLESは、init.oraファイルのパラメータで、trueに設定すると、Windowsオペレーティング・システムでデータベース・ユーザーの外部ロール認可を管理できます。デフォルトでは、OS_ROLESfalseに設定されています。外部ロールを作成する前に、OS_ROLEStrueに設定し、Oracle Databaseを再起動する必要があります。OS_ROLESfalseに設定されている場合は、Oracle Databaseでデータベース・ユーザーに対するロールの付与および取消しを管理します。

OS_ROLEStrueに設定された状態で、Windowsグローバル・グループに外部ロールを割り当てる場合、外部ロールはWindowsグローバル・グループ・レベルでのみ付与され、このグローバル・グループ内の個別のユーザー・レベルでは付与されません。つまり、このグローバル・グループ内の個々のユーザーに割り当てられた外部ロールは、後でユーザー名のプロパティのダイアログの「ロール」タブを使用して取り消したり編集したりすることはできません。このグローバル・グループから外部ロールの権限を削除するには(これにより各ユーザーの外部ロールの権限も削除される)、外部OSロールのグローバル・グループへの割当ダイアログを使用します。

個々のドメイン・ユーザーに割り当てられた外部ロール、または(OS_ROLESfalseの状態で)個々のドメイン・ユーザーまたはWindowsグローバル・グループに割り当てられたローカル・ロールは、この影響を受けません。これらは編集または取消しが可能です。

OS_ROLEStrueに設定されている場合は、どのデータベース・ユーザーに対してもデータベース内のローカル・ロールを付与できません。Windowsを介してロールを付与する必要があります。詳細は、「ローカル・データベース・ロールの作成」および「外部オペレーティング・システム・ロールの作成」を参照してください。

外部オペレーティング・システム・ユーザーの作成

Oracle Administration Assistant for Windowsの「外部OSユーザー」ノードにより、Windowsユーザーを認証し、パスワードを要求されずに外部ユーザーとしてOracle Databaseにアクセスできます。外部ユーザーは、通常のデータベース・ユーザー(データベース管理者以外)であり、このユーザーに対しては標準のデータベース・ロール(DBAなど)を割り当てますが、SYSDBA(データベース管理者)権限またはSYSOPER(データベース・オペレータ)権限は割り当てません。

外部オペレーティング・システム・ユーザーを作成するには、次のようにします。

  1. 「データベースへの接続」の手順に従って、データベースに接続します。

  2. 「外部OSユーザー」を右クリックします。コンテキスト・メニューが表示されます。

    mmc4.gifの説明が続きます
    図mmc4.gifの説明

  3. 「作成」を選択します。

    外部OSユーザーの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。最初のダイアログの設定対象はWindowsのユーザーとグループです。

    mmc5.gifの説明が続きます
    図mmc5.gifの説明

  4. ドメイン・ユーザーおよびグループで、Windowsドメイン・ユーザーおよびグローバル・グループがあるドメインを選択します。

  5. データベースヘのアクセス権限を付与するWindowsドメイン・ユーザーおよびグローバル・グループを選択します。

  6. 「追加」をクリックします。選択されたユーザーおよびグループが「新規外部OSユーザー」リストに表示されます。

  7. 「次へ」をクリックします。「プロファイルと表領域」ダイアログが表示されます。

    mmc6stp2.gifの説明が続きます
    図mmc6stp2.gifの説明

  8. 「割当てプロファイル」リストで、新しい外部ユーザーのプロファイルを選択します。プロファイルとは、リソース制限の名前付きセットです。リソース制限をオンにすると、データベースの使用とインスタンスのリソースが、ユーザーのプロファイルで定義されている内容に制限されます。プロファイルはユーザーごとに割り当てることができ、固有のプロファイルを持たないユーザーには、すべてデフォルトのプロファイルを割り当てることができます。

  9. 「表領域割当て制限」で、表領域をダブルクリックし、表領域の割当て制限を設定します。

  10. 「次へ」をクリックします。「ロール」ダイアログ・ボックスが表示されます。

    step3.gifの説明が続きます
    図step3.gifの説明

  11. 「使用可能なロール」で、新規外部ユーザーに付与するデータベース・ロールを選択します。

  12. 「権限付与」をクリックします。

  13. 「終了」をクリックします。

  14. 詳細を表示する外部ユーザーを右クリックし、「プロパティ」を選択します。

    割り当てられたプロパティが表示されます。


    注意:

    Oracle Administration Assistant for Windowsを使用した認証でWindowsグローバル・グループを選択する場合、そのグループに現在含まれるすべてのユーザーがOracle Databaseに追加されます。後で、Windowsのツールを使用してこのWindowsグローバル・グループのユーザーを追加または削除しても、その更新内容はOracle Databaseに反映されません。新たに追加または削除されたユーザーは、Oracle Administration Assistant for Windowsを使用して、Oracle Databaseに対して明示的に追加または削除する必要があります。

ローカル・データベース・ロールの作成

Oracle Administration Assistant for Windowsの「ローカル・ロール」ノードにより、ロールを作成し、そのロールをデータベースで管理できます。一度ローカル・ロールを作成すると、データベース・ユーザーに対してそのロールを付与したり、取り消したりできます。ローカル・データベース・ロールを作成するには、次のようにします。

  1. 「データベースへの接続」の手順に従って、データベースに接続します。

  2. ローカル・ロールを作成するデータベースの「ローカル・ロール」を右クリックします。

  3. 「作成」を選択します。

    ローカル・ロールの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。最初のダイアログの設定対象は名前と認証です。

    locrol1.gifの説明が続きます
    図locrol1.gifの説明

  4. 使用するローカル・ロール名を入力します。

  5. ユーザーがパスワードを入力せずにこのローカル・ロールを使用できるようにする場合は、「認証」「なし」を選択します。

    パスワードでこのロールを保護する場合は、「パスワード」を選択します。これらのロールは、SET ROLEコマンドでパスワードを指定した場合にのみ使用できます。詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

    このロールで使用するパスワードを入力します。

    確認のためにパスワードを再度入力します。

  6. 「次へ」をクリックします。「システム権限」ダイアログ・ボックスが表示されます。

    locrol2.gifの説明が続きます
    図locrol2.gifの説明

  7. 「使用可能なシステム権限」で、ローカル・ロールに割り当てるシステム権限を選択します。

  8. 「権限付与」をクリックして、選択したシステム権限をローカル・ロールに付与します。

    「付与されたシステム権限」フィールドに、ローカル・ロールに付与されたシステム権限のリストが表示されます。システム権限を取り消すには、その権限を選択して「取消」を選択します。

  9. このロールに管理者オプションを付与するには、「管理オプション」列の値をクリックして、リストを表示します。「はい」が選択できます。

  10. 「次へ」をクリックします。「ロール」ダイアログ・ボックスが表示されます。

    locrol3.gifの説明が続きます
    図locrol3.gifの説明

  11. 「使用可能なロール」で、ローカル・ロールに割り当てるロールを選択します。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。

  12. 「権限付与」をクリックして、ロールに選択したロールを付与します。

    「権限付与されたロール」フィールドに、ロールに付与されたロールのリストが表示されます。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。ロールを取り消すには、そのロールを選択して「取消」を選択します。

  13. 「終了」をクリックします。

外部オペレーティング・システム・ロールの作成

Oracle Administration Assistant for Windowsの「外部OSロール」ノードにより、外部ロールを作成し、そのロールをWindowsオペレーティング・システムで管理できます。一度外部ロールを作成すると、データベース・ユーザーに対してそのロールを付与したり、取り消したりできます。外部ロールを作成するには、次のようにします。

  1. 「データベースへの接続」の手順に従って、データベースに接続します。

  2. 外部ロールを作成するデータベースの「外部OSロール」を右クリックします。

  3. 「作成」を選択します。

    外部OSロールの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。最初のダイアログの設定対象は名前です。このダイアログ・ボックスには「認証: 外部」と表示され、外部ロールのみを作成できることが示されます。


    注意:

    外部OSロールの作成ウィザードは、init.oraのパラメータOS_ROLEStrueに設定されている場合のみ使用できます。falseに設定されている場合、最初にtrueに変更し、次にOracle Databaseを再起動します。

    exrol1.gifの説明が続きます
    図exrol1.gifの説明

  4. 使用する外部ロール名を入力します。外部ロールは、Windowsオペレーティング・システムにより管理されるロールです。

  5. 「次へ」をクリックします。

    「システム権限」ダイアログ・ボックスが表示されます。

    exrol2.gifの説明が続きます
    図exrol2.gifの説明

  6. 「使用可能なシステム権限」で、外部ロールに割り当てるシステム権限を選択します。

  7. 「権限付与」を選択して、外部ロールに選択したシステム権限を付与します。

  8. 「付与されたシステム権限」フィールドに、外部ロールに付与されたシステム権限のリストが表示されます。システム権限を取り消すには、その権限を選択して「取消」をクリックします。

  9. このロールに管理者オプションを付与するには、「管理オプション」列の値をクリックして、リストを表示します。「はい」が選択できます。

  10. 「次へ」をクリックします。

    「ロール」ダイアログ・ボックスが表示されます。

    exrol3.gifの説明が続きます
    図exrol3.gifの説明

  11. 「使用可能なロール」で、外部ロールに割り当てるロールを選択します。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。

  12. 「権限付与」を選択して、外部ロールに選択したロールを付与します。

    「権限付与されたロール」フィールドに、外部ロールに付与されたロールのリストが表示されます。

  13. 「終了」をクリックします。

単一データベースに対する管理者権限の付与

Oracle Administration Assistant for Windowsの「OSデータベース管理者」ノードにより、コンピュータ上の特定のインスタンスに対するSYSDBA権限を持つWindowsユーザーを認証できます。単一データベースに対する管理者(SYSDBA)権限を付与するには、次のようにします。

  1. 「データベースへの接続」の手順に従って、データベースに接続します。

  2. 「OSデータベース管理者」を右クリックします。

  3. 「追加/削除」を選択します。

    「OSデータベース管理者: instance」ダイアログ・ボックスが表示されます。次に示す例では、インスタンスはMARKです。

    dba_one.gifの説明が続きます
    図dba_one.gifの説明

  4. ドメイン・ユーザーおよびグループ「ドメイン」リストで、SYSDBA権限を付与するユーザーのドメインを選択します。

  5. ユーザーを選択します。

    ユーザーが「OSデータベース管理者」フィールドに表示されます。

  6. 「OK」をクリックします。

単一データベースに対するオペレータ権限の付与

Oracle Administration Assistant for Windowsの「OSデータベース・オペレータ」ノードにより、コンピュータ上の特定のインスタンスに対するSYSOPER権限を持つWindowsユーザーを認証できます。単一データベースに対するオペレータ(SYSOPER)権限を付与するには、次のようにします。

  1. 「データベースへの接続」の手順に従って、データベースに接続します。

  2. 「OSデータベース・オペレータ」を右クリックします。

  3. 「追加/削除」を選択します。

    「OSデータベース・オペレータ: instance」ダイアログ・ボックスが表示されます。次に示す例では、インスタンスはMARKです。

    oper_one.gifの説明が続きます
    図oper_one.gifの説明

  4. ドメイン・ユーザーおよびグループ「ドメイン」リストで、SYSOPER権限を付与するユーザーのドメインを選択します。

  5. ユーザーを選択します。

  6. 「追加」をクリックします。

    ユーザーが「OSデータベース・オペレータ」フィールドに表示されます。

  7. 「OK」をクリックします。

外部ユーザーおよびロールの手動による管理

Oracle Administration Assistant for Windowsを使用するかわりに、管理者、オペレータ、ユーザーおよびロールを手動で構成して、オペレーティング・システムに認証させることができます。手動による構成では、Oracle Databaseのコマンドライン・ツールを使用して、レジストリを編集し、「Active Directoryユーザーとコンピュータ」でローカル・グループを作成します。

次のものはすべて、Oracle Databaseにパスワードなしでアクセスできるように手動で構成することができます。

  • 外部オペレーティング・システム・ユーザー

  • Windowsデータベース管理者(SYSDBA権限を持つ)

  • Windowsデータベース・オペレータ(SYSOPER権限を持つ)

また、ローカルおよび外部データベース・ロールを手動で作成し、Windowsドメイン・ユーザーおよびグローバル・グループに付与できます。

この項では、次の内容について説明します。

外部オペレーティング・システム・ユーザーの手動による作成

この項では、Windowsを使用して外部オペレーティング・システム・ユーザー(データベース管理者以外)を認証し、パスワードなしでデータベースにアクセスできるようにする方法を説明します。Windowsを使用して外部オペレーティング・システム・ユーザーを認証する場合、データベースのユーザー名へのアクセス制限は、オペレーティング・システムにのみ依存します。

次の手順では、2つのWindowsユーザー名が認証されます。

  • ローカル・ユーザーfrank

  • ドメインsalesのドメイン・ユーザーfrank

ローカル・ユーザーfrankは、別のコンピュータ上に存在している可能性があるOracle Databaseサーバーにアクセスするために、そのローカルWindowsクライアント・コンピュータにログインします。別のコンピュータ上の別のデータベースやリソースにアクセスする場合には、アクセスするたびにローカル・ユーザーのユーザー名とパスワードが必要になります。

ドメインsalesのドメイン・ユーザーfrankは、多数の他のWindowsコンピュータおよびリソースを含み、そのうちの1つにOracle Databaseサーバーがあるsalesドメインにログオンします。ドメイン・ユーザーは、ドメインのすべてのリソースに1つのユーザー名およびパスワードでアクセスできます。

手順には次の2つがあり、作業が実行されるコンピュータにより異なります。

Oracle Databaseサーバーでの外部ユーザー認証タスク

Oracle Databaseサーバーで次のように外部ユーザー認証タスクを実行します。

  1. パラメータOS_AUTHENT_PREFIXinit.oraファイルに追加します。

    OS_AUTHENT_PREFIXの値は、オペレーティング・システムのユーザー名およびパスワードを使用してサーバーに接続を試みる、ローカルまたはドメインのユーザー名に接頭辞として付けられます。この接頭辞付きのユーザー名は、接続要求が試行された場合にデータベース内のOracle Databaseユーザー名と比較されます。パラメータOS_AUTHENT_PREFIXとWindowsネイティブ認証方式を組み合わせて、サーバーとのクライアント接続を保護し信頼性を高くすることをお薦めします。

  2. OS_AUTHENT_PREFIXの値を設定します。選択肢は次のとおりです。

    • 文字列

      たとえば、xyzと指定すると、Windowsのユーザー名の先頭に、接頭辞としてxyzが付きます(たとえば、ローカル・ユーザーfrankxyzfrankになり、ドメインsalesのドメイン・ユーザーfrankxyzsales\frankになります)。文字列値には、大文字と小文字の区別がありません。

    • ""(間にスペースのない2つの二重引用符)

      推奨値。この値を使用すると、Windowsのユーザー名に接頭辞を付ける必要がなくなります(たとえば、ローカル・ユーザーfrankfrankになり、ドメインsalesのドメイン・ユーザーfranksales\frankになります)。

    • 値の指定なし

      OS_AUTHENT_PREFIXに値を指定しないと、デフォルトでOPS$に設定されます(たとえば、ローカル・ユーザーfrankOPS$frankになり、ドメインsalesのドメイン・ユーザーfrankOPS$sales\frankになります)。

  3. 「コンピュータの管理」ツールでfrankのWindowsローカル・ユーザー名を作成するか、「Active Directoryユーザーとコンピュータ」でfrankのドメイン・ユーザー名を作成します(適切な名前が現在存在しない場合)。詳細は、オペレーティング・システムのドキュメントを参照してください。

  4. この手順は、ユーザー付きのドメイン名を認証していない場合(たとえばドメインsales上のfrankではなく単にfrankとした場合)にのみ行うようにしてください。それ以外の場合は、手順8に進みます。

    1. コマンド・プロンプトから、レジストリ エディタを起動します。

      C:\> regedit
      
    2. \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEIDに移動します。IDは、編集するOracleホーム・ディレクトリです。

    3. 「編集」「値の追加」を選択します。

      「値の追加」ダイアログが表示されます。

      addval.gifの説明が続きます
      図addval.gifの説明

    4. 「値の名前」フィールドにOSAUTH_PREFIX_DOMAINと入力します。

    5. 「データ型」リストで、REG_EXPAND_SZを選択します。

    6. 「OK」をクリックします。

      「文字列エディタ」ダイアログが表示されます。

      addstr.gifの説明が続きます
      図addstr.gifの説明

  5. 「文字列」フィールドにtrueと入力し、ドメイン・レベルでの認証を可能にします。

    ローカル・ユーザーfranksalesのドメイン・ユーザーfrank、あるいはその他のドメインのドメイン・ユーザーfrankなど、ネットワーク上に複数のfrankというユーザー名が存在する場合があります。trueに設定すると、サーバーではそれぞれが区別されます。falseに設定すると、ドメインは無視され、ローカル・ユーザーfrankがオペレーティング・システム・ユーザーのデフォルト値になり、サーバーに返されます。

  6. 「OK」をクリックします。

    レジストリ エディタによりそのパラメータが追加されます。

  7. 「レジストリ」メニューから「レジストリ エディタの終了」を選択します。

    レジストリ エディタが終了します。

  8. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  9. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  10. SYSTEMデータベース管理者(DBA)名でデータベースに接続します。

    SQL> CONNECT SYSTEM
    Enter password: system_password
    

    変更がなければ、SYSTEMのパスワードは、デフォルトではMANAGERです。

  11. 次のように入力して、ローカル外部ユーザーを作成します。

    SQL> CREATE USER xyzfrank IDENTIFIED EXTERNALLY;
    

    xyzは初期化パラメータOS_AUTHENT_PREFIXに対して選択した値です。また、frankはWindowsローカル・ユーザー名です。

  12. 次のように入力して、ローカル外部ユーザーにデータベース・ロールを付与します。

    SQL> GRANT DBA TO xyzfrank;
    
  13. 次のように入力して、ドメイン外部ユーザーを作成します。

    SQL> CREATE USER "XYZSALES\FRANK" IDENTIFIED EXTERNALLY;
    

    XYZは初期化パラメータOS_AUTHENT_PREFIXに対して選択した値です。また、SALES\FRANKはドメイン名とWindowsドメイン・ユーザー名です。二重引用符は必須で、構文はすべて英大文字で入力する必要があります。

  14. 次のように入力して、ドメイン外部ユーザーにデータベース・ロールを付与します。

    SQL> GRANT DBA TO "XYZSALES\FRANK";
    

    二重引用符は必須で、構文はすべて英大文字で入力する必要があります。

  15. SYSDBA名でデータベースに接続します。

    SQL> CONNECT / AS SYSDBA
    
  16. データベースを停止します。

    SQL> SHUTDOWN
    
  17. データベースを再起動します。

    SQL> STARTUP
    

    これにより、パラメータOS_AUTHENT_PREFIXの変更が有効になります。

クライアント・コンピュータでの外部ユーザー認証タスク

クライアント・コンピュータで次のように外部ユーザー認証タスクを実行します。

  1. Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名frankを作成します(適切な名前が現在存在しない場合)。

  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  3. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  4. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  5. Windowsサーバーに接続します。

    SQL> CONNECT /@connect_identifier
    

    connect_identifierは、Oracle Databaseのネット・サービス名です。

    Oracle Databaseにより、Windowsローカル・ユーザー名またはドメイン・ユーザー名に対応する自動ログオン・ユーザー名がデータ・ディクショナリで検索および検証され、xyzfrankまたはxyzsales\frankでの接続が可能になります。

  6. ローカル・ユーザーまたはドメイン・ユーザーfrankでOracle Databaseに接続できたことは、「Oracle Databaseサーバーでの外部ユーザー認証タスク」の手順12または手順14で割り当てられたロールを参照することで確認できます。

    SQL> SELECT * FROM USER_ROLE_PRIVS;
    

    ローカル・ユーザーfrankの出力

    USERNAME                       GRANTED_ROLE                   ADM DEF OS_
    ------------------------------ ------------------------------ --- --- ---
    XYZFRANK                       DBA                            NO  YES NO 
    1 row selected.
    

    ドメイン・ユーザーfrankの出力

    USERNAME                       GRANTED_ROLE                   ADM DEF OS_
    ------------------------------ ------------------------------ --- --- ---
    XYZSALES\FRANK                 DBA                            NO  YES NO 
    1 row selected.
    

    Oracle Databaseユーザー名は、xyzfrankまたはxyzsales\frankであるため、xyzfrankまたはxyzsales\frankにより作成される各オブジェクト(表、ビュー、索引など)には、この名前が接頭辞として付きます。たとえば、別のユーザーがxyzfrankの所有する表sharkを参照するには、次のように入力する必要があります。

    SQL> SELECT * FROM xyzfrank.shark 
    

    注意:

    自動認証機能は、すべてのOracle Netプロトコルでサポートされています。

複数のデータベースに対する管理者権限およびオペレータ権限の手動による付与

この項では、Windowsにより、データベース管理者(SYSDBA)権限、データベース・オペレータ(SYSOPER)権限、およびASMのデータベース管理者(SYSASM)権限を、データベース管理者に対して付与する方法を説明します。この権限が付与されると、データベース管理者はクライアント・コンピュータから次のコマンドを発行し、パスワードを入力せずにOracle Databaseに接続できます。

SQL> CONNECT / AS SYSOPER
SQL> CONNECT / AS SYSDBA
SQL> CONNECT / AS SYSASM

この機能を使用できるようにするには、データベース管理者のWindowsローカル・ユーザー名またはドメイン・ユーザー名が、表10-1に示されたWindowsローカル・グループのいずれかに属している必要があります。

表10-1 SYSDBA権限、SYSOPER権限およびSYSASM権限を持つWindowsローカル・グループ

ローカル・グループ 権限

ORA_OPER

コンピュータ上のすべてのデータベースに対するSYSOPER権限

ORA_DBA注意

コンピュータ上のすべてのデータベースに対するSYSDBA権限

ORA_DBA

コンピュータ上のすべてのデータベースに対するSYSASM権限

ORA_SID_OPER

単一データベースに対するSYSOPER権限(SIDにより識別)

ORA_SID_DBA

単一データベースに対するSYSDBA権限(SIDにより識別)

ORA_SID_DBA

単一データベースに対するSYSASM権限(SIDにより識別)


注意

ORA_DBAはインストール中に自動的に作成されます。詳細は、「インストール時に使用可能になるオペレーティング・システムの認証」を参照してください。

データベース管理者がSYSOPERSYSDBAまたはSYSASMとしてパスワードなしで接続できるように手動で設定する手順には次の2つがあり、タスクが実行されるコンピュータにより異なります。

Oracle DatabaseサーバーでのSYSDBA、SYSOPERまたはSYSASM認証タスク

  1. Windowsで付与する権限に対応するWindowsローカル・グループを作成します(表10-1を参照)。

  2. データベース管理者ユーザー名をこのグループに追加します。


    関連項目:

    ユーザーおよびグループの管理方法は、オペレーティング・システムのドキュメントを参照してください。

  3. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  4. コマンド・プロンプトから、レジストリ エディタを起動します。

    C:\>regedit
    
  5. \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEIDに移動します。

    IDは、編集するOracleホームです。

  6. パラメータOSAUTH_PREFIX_DOMAINtrueに設定します。

クライアント・コンピュータでのSYSDBA、SYSOPERまたはSYSASM認証タスク

  1. Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名を作成します(適切なユーザー名が現在存在しない場合)。

  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  3. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  4. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  5. Oracle Databaseに接続します。

    SQL> SET INSTANCE net_service_name
    

    net_service_nameは、Oracle DatabaseのOracle Netのネット・サービス名です。

  6. 「Oracle DatabaseサーバーでのSYSDBA、SYSOPERまたはSYSASM認証タスク」の手順1でORA_DBAまたはORA_SID_DBAを指定した場合、次のいずれかを入力します。

    SQL> CONNECT / AS SYSOPER
    SQL> CONNECT / AS SYSDBA
    SQL> CONNECT / AS SYSASM
    

    手順1でORA_OPERまたはORA_SID_OPERを指定した場合、次のように入力します。

    SQL> CONNECT / AS SYSOPER
    

    これで、Windowsサーバーに接続されます。SYSDBAで接続すると、DBA権限が付与されます。

外部ロールの手動による作成

この項では、WindowsでOracle Databaseロール(外部ロールとも呼ばれます)をユーザーに直接付与する方法を説明します。Windowsを使用してユーザーを認証する場合、Windowsローカル・グループによりこれらのユーザーに外部ロールを付与できます。

ユーザーが接続すると、これらのロールに対するすべての権限がアクティブになります。外部ロールを使用する場合、すべてのロールはオペレーティング・システムを介して付与および管理されます。外部ロールとOracle Databaseロールの両方を同時に使用することはできません。

次の例を考えてみます。外部ロールを使用できるように設定し、ドメイン・ユーザー名sales\frank(salesはドメイン名、frankはドメイン・ユーザー名)でWindowsドメインにログオンします。次に、Oracle Databaseユーザーscottとして、Oracle Databaseに接続します。この場合に付与されるロールは、sales\frankに付与されるロールであり、scottに付与されるロールではありません

外部ロールを手動で作成する手順には次の2つがあり、認証タスクが実行されるコンピュータにより異なります。

Oracle Databaseサーバーでの外部ロール認証タスク

  1. 初期化パラメータOS_ROLESinit.oraファイルに追加します。

  2. OS_ROLEStrueに設定します。

    デフォルトの設定では、このパラメータはfalseです。

  3. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  4. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  5. Windowsサーバーに接続します。

    SQL> CONNECT / AS SYSDBA
    
  6. 新規のデータベース・ロールを作成します。この新規のロールにはどのような名前でも指定できます。次の例では、DBSALES3というロール名を使用します。

    SQL> CREATE ROLE DBSALES3 IDENTIFIED EXTERNALLY;
    
  7. データベース環境に対応するOracle DatabaseロールをDBSALES3に付与します。

    SQL> GRANT DBA TO DBSALES3 WITH ADMIN OPTION;
    
  8. SYSDBAでデータベースに接続します。

    SQL> CONNECT / AS SYSDBA
    
  9. データベースを停止します。

    SQL> SHUTDOWN
    
  10. データベースを再起動します。

    SQL> STARTUP
    
  11. 次の構文でWindowsローカル・グループを作成します。

    ORA_sid_rolename[_D][_A] 
    

    それぞれの意味は次のとおりです。

    • sidは、データベース・インスタンスを示します。

    • rolenameは、付与されるデータベース・ロールを示します。

    • Dは、このデータベース・ロールをデータベース・ユーザーのデフォルト・ロールにすることを示します。

    • Aは、このデータベース・ロールがADMIN OPTIONを含むことを示します。

    文字DおよびAはオプションです。指定する場合は、これらの文字の前にアンダースコアが必要です。

    この例では、ORA_orcl_dbsales3_Dが作成されます。

  12. このグループに、1つ以上のWindowsローカル・ユーザー名またはドメイン・ユーザー名を追加します。


    関連項目:

    ユーザーおよびグループの管理方法は、オペレーティング・システムのドキュメントを参照してください。

    複数のデータベース・ロールを作成し、次の表に示すように、それぞれ異なるオプションで複数のWindowsグループに付与できます。ORCLインスタンスに接続し、Windowsにより次の4つのWindowsローカル・グループすべてのメンバーとして認証されたユーザーは、デフォルトでdbsales3およびdbsales4に関連付けられた権限を付与されます(オプション_Dが指定されているためです)。このようなユーザーが最初にdbsales3またはdbsales4のメンバーとして接続し、SET ROLEコマンドを使用すると、データベース・ロールdbsales1およびdbsales2にもアクセスできます。ただし、ユーザーが最初にデフォルトのロールで接続せずに、dbsales1またはdbsales2で接続を試みても、接続できません。また、このようなユーザーは、dbsales2およびdbsales4をその他のロールに付与できます(オプション_Aが指定されているためです)。

    データベース・ロール Windowsグループ
    dbsales1 ORA_ORCL_dbsales1
    dbsales2 ORA_ORCL_dbsales2_a
    dbsales3 ORA_ORCL_dbsales3_d
    dbsales4 ORA_ORCL_dbsales4_da


    注意:

    Oracle Databaseでグループ名がロール名に変換されるとき、名前は大文字に変換されます。

クライアント・コンピュータでの外部ロール認証タスク

  1. Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名を作成します(適切なユーザー名が現在存在しない場合)。

  2. ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICESに、ntsが含まれていることを確認します。

  3. Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle Databaseへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  4. SQL*Plusを起動します。

    C:\> sqlplus /NOLOG
    
  5. 正しいインスタンスに接続します。

    SQL> SET INSTANCE connect_identifier
    

    connect_identifierは、手順3で作成した、Oracle Database接続のネット・サービス名です。

  6. Oracle Databaseに接続します。

    SQL> CONNECT SCOTT
    Enter password: password
    

    これで、Net Servicesを使用して、Oracle Databaseユーザー名scottでWindowsサーバーに接続されます。Oracle Databaseユーザー名scottに適用されるロールは、すでにデータベース・ロールにマップされたWindowsユーザー名に対して定義されるすべてのロールで構成されます(この例では、ORA_DBSALES3_D)。認証された接続で使用可能なすべてのロールは、Windowsユーザー名、およびユーザーが属しているOracle固有のWindowsローカル・グループ(ORA_SID_DBSALES1またはORA_SID_DBSALES4_DAなど)により決定されます。


    注意:

    OSDBAおよびOSOPERは、2つの特別なオペレーティング・システム・グループの汎用名で、オペレーティング・システムの認証を使用する場合にデータベース管理者のログオンを制御します。OSDBAおよびOSOPERのWindows固有の名前は、「複数のデータベースに対する管理者権限およびオペレータ権限の手動による付与」に記載されています。OSDBAおよびOSOPERの詳細は、『Oracle Database管理者ガイド』を参照してください。

ユーザーの手動による移行

ローカル・ユーザーまたは外部ユーザーは、User Migration Utilityを使用してエンタープライズ・ユーザーに移行できます。データベース・ユーザー・モデルからエンタープライズ・ユーザー・モデルに移行することで、企業の環境における管理、セキュリティおよびユーザビリティの問題への解決策が提供されます。エンタープライズ・ユーザー・モデルでは、すべてのユーザー情報がLDAPディレクトリ・サービスに移動されるため、次のような利点があります。

  • ユーザー情報の一元的な格納および管理

  • ユーザー認証の一元管理

  • セキュリティの拡張

User Migration Utilityはコマンドライン・ツールです。次のような形式の構文です。

C:\ umu parameters

User Migration Utilityパラメータのリストを取得するには、次のように入力します。

C:\ umu help=yes

関連項目:

『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』の「ユーザー移行ユーティリティの使用」