ヘッダーをスキップ

Oracle Databaseプラットフォーム・ガイド 11gリリース1（11.1） for Microsoft Windows E05885-05 |
| 目次 | 索引

戻る | 次へ |

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

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

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

注意: どちらの方法でも、Windows 2000ドメインで外部ユーザーおよびロールを管理できますが、エンタープライズ・ユーザーまたはエンタープライズ・ロールの管理には使用できません。エンタープライズ・ユーザーおよびエンタープライズ・ロールの管理に使用できるツールの詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

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

- Oracle Administration Assistant for Windows

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

## Oracle Administration Assistant for Windows

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

- 通常のWindowsドメイン・ユーザーおよびグローバル・グループ（外部ユーザーとして）

- Windowsデータベース管理者（SYSDBA 権限を持つ）

- Windowsデータベース・オペレータ（SYSOPER権限を持つ）

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

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

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

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

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

      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_DOMAIN`を`true`に設定する必要があります。このパラメータは次のキーにあります。

    HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_HOME_NAME

Windows 2000環境のコンピュータがドメイン・ネーム・システム（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名を割り当てるには、次のようにします。

1. 「スタート」メニュー→「設定」→「コントロール パネル」→「システム」→「ネットワークID」→「プロパティ」→「詳細」→「このコンピュータのプライマリDNSサフィックス」を選択します。

2. ドメイン名を入力します（`US.ORACLE.COM`など）。

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

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の説明

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

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

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

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

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

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

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

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

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

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

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

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

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

   図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の説明

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 Advanced Security管理者ガイド』を参照

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

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

   図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の説明

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

図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_ROLES`は`false`に設定されています。外部ロールを作成する前に、`OS_ROLES`を`true`に設定し、Oracle Databaseを再起動する必要があります。`OS_ROLES`が`false`に設定されている場合は、Oracle Databaseでデータベース・ユーザーに対するロールの付与および取消しを管理します。

`OS_ROLES`が`true`に設定された状態で、Windowsグローバル・グループに外部ロールを割り当てる場合、外部ロールはWindowsグローバル・グループ・レベルでのみ付与され、このグローバル・グループ内の個別のユーザー・レベルでは付与されません。つまり、このグローバル・グループ内の個々のユーザーに割り当てられた外部ロールは、後でユーザー名のプロパティのダイアログの「ロール」タブを使用して取り消したり編集したりすることはできません。このグローバル・グループ（つまり、すべての個別ユーザー）から外部ロールを取り消すには、かわりに「外部OSロールのNTグローバル・グループへの割当」ダイアログのフィールドを使用する必要があります。

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

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

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

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

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

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

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

   図mmc4.gifの説明

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

   外部OSユーザーの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。ステップ1のダイアログ・ボックスは、「外部OSユーザーの作成ウィザード、ステップ1/3: Windowsユーザーとグループ」です。

   図mmc5.gifの説明

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

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

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

7. 「次へ」をクリックします。「外部OSユーザーの作成ウィザード、ステップ2/3: プロファイルと表領域」ダイアログ・ボックスが表示されます。

   図mmc6stp2.gifの説明

8. 「割当済プロファイル」ドロップダウン・リストで、新規外部ユーザー用プロファイルを選択します。プロファイルは、名前の付いたリソース制限のセットです。リソース制限が有効な場合、ユーザーのプロファイルでの定義に基づいて、Oracle Databaseによりデータベースの使用およびインスタンスのリソースが制限されます。各ユーザーにプロファイルを割り当てることができます。また、特定のプロファイルを持たないすべてのユーザーに対してはデフォルト・プロファイルを割り当てることができます。

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

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

    図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のダイアログ・ボックスが表示されます。ステップ1のダイアログ・ボックスは、「ローカル・ロールの作成ウィザード、ステップ1/3: 名前と認証」です。

   図locrol1.gifの説明

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

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

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

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

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

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

   図locrol2.gifの説明

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

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

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

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

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

    図locrol3.gifの説明

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

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

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

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

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

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

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

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

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

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

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

   図exrol1.gifの説明

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

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

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

   図exrol2.gifの説明

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

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

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

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

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

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

    図exrol3.gifの説明

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

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

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

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

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

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

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

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

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

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

   図dba_one.gifの説明

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

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

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

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

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

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

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

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

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

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

   図oper_one.gifの説明

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

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

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

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

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

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

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

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

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

- Windowsデータベース管理者（`SYSDBA`権限を持つ）

- Windowsデータベース・オペレータ（`SYSOPER`権限を持つ）

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

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

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

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

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

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

  注意: 管理者、オペレータ、ユーザーおよびロールを手動で構成して、オペレーティング・システムに認証させる場合は、十分に注意する必要があります。できるかぎり、Oracle Administration Assistant for Windowsを使用して構成手順を実行してください。

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

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

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

- ローカル・ユーザー`frank`

- ドメイン`sales`のドメイン・ユーザー`frank`

ローカル・ユーザー`frank`は、ローカルのWindowsクライアント・コンピュータにログオンし、Oracle Databaseサーバーにアクセスします。Oracle Databaseサーバーは、別のコンピュータにあっても構いません。他のコンピュータ上にある他のデータベースおよびリソースにアクセスする場合、ローカル・ユーザーは毎回ユーザー名およびパスワードを入力する必要があります。

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

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

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

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

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

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

1. パラメータ`OS_AUTHENT_PREFIX`を`init.ora`ファイルに追加します。

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

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

   - 文字列

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

   - `""`（間にスペースのない2つの二重引用符）

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

   - 値の指定なし

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

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

4. 認証対象がドメイン名付きのユーザーではない場合（ドメイン`sales`の`frank`ではなく、単に`frank`の場合など）のみ、次の手順を実行します。それ以外の場合は、手順8に進みます。

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

          C:\> regedit

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

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

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

      図addval.gifの説明

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

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

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

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

      図addstr.gifの説明

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

   ローカル・ユーザー`frank`、`sales`のドメイン・ユーザー`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に接続できます。

    CONNECT / AS SYSOPER
    CONNECT / AS SYSDBA
    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はインストール中に自動的に作成されます。詳細は、「インストール時に使用可能になるオペレーティング・システムの認証」を参照してください。

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

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

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

#### 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\HOME` `ID`に移動します。

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

6. パラメータ`OSAUTH_PREFIX_DOMAIN`を`true`に設定します。

#### クライアント・コンピュータでの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サーバーでの外部ロール認証タスク

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

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

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

2. `OS_ROLES`を`true`に設定します。

   デフォルトの設定では、このパラメータは`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 Advanced Security管理者ガイド』の「ユーザー移行ユーティリティの使用」