外部ユーザーおよびロールは、一般にOracle Databaseの外部のものによって定義されます。Windows環境では、オペレーティング・システムによって定義されます。
この章では、Oracle Administration Assistant for Windowsを使用するか、またはOracle Databaseコマンドライン・ツール、レジストリ エディタおよびその他のWindowsツールを組み合せて使用した、外部ユーザーおよび外部ロールの作成と管理について説明します。
関連項目: エンタープライズ・ユーザーおよびエンタープライズ・ロールの管理に使用できるツールの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。 |
この章の項目は次のとおりです。
Oracle Administration Assistant for Windowsは、Microsoft管理コンソールから実行するツールです。このツールを使用すると、Windowsオペレーティング・システムで認証を行い、パスワードなしでOracle Databaseにアクセスできる、次のOracle Databaseユーザーおよびロールを構成できます。
通常のWindowsドメイン・ユーザーおよびグローバル・グループ(外部ユーザーとして)
Windowsデータベース・オペレータ(SYSOPER権限を持つ)
また、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_DOMAIN
をtrue
に設定する必要があります。このパラメータは次のキーにあります。
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管理コンソールのツリーにコンピュータを追加するには、次のようにします。
「スタート」→「プログラム」→「Oracle - HOME_NAME」→「Configuration and Migration Tools」→「Administration Assistant for Windows」を選択します。
Microsoft管理コンソールが起動します。
「Oracle Managed Objects」をダブルクリックします。
コンピュータ・アイコンが表示されます。
「コンピュータ」を右クリックします。
「新規」→「コンピュータ」を選択します。
「コンピュータの追加」ダイアログが表示されます。
Oracle Databaseがインストールされているコンピュータのドメイン名およびコンピュータ名を指定します。
「OK」をクリックします。
「コンピュータ」をダブルクリックし、追加したコンピュータを表示します。
追加したコンピュータをダブルクリックします。データベース管理者およびオペレータを認証するためのノードがいくつか表示されます。
「OSデータベース管理者 - コンピュータ」ノードでは、コンピュータ上のすべてのデータベース・インスタンスに対するSYSDBA権限を持つ、オペレーティング・システムで認証されたデータベース管理者を作成します。「OSデータベース・オペレータ - コンピュータ」ノードでは、コンピュータ上のすべてのデータベース・インスタンスに対する
SYSOPER
権限を持つ、オペレーティング・システムで認証されたデータベース・オペレータを作成します。
「コンソール」メイン・メニューの「保存」をクリックして、コンソール・ファイルに構成を保存します。これにより、コンピュータ上のすべてのインスタンスに対するデータベース管理者およびオペレータを認証できます。
コンピュータ上のすべて
のデータベースに対するデータベース管理者(SYSDBA)権限をデータベース管理者(DBA)に付与するには、次のようにします。
注意: データベースのインストールのためにドメイン・アカウントを使用する場合は、そのドメイン・ユーザーにローカル管理権限を付与する必要があります。これはドメイン・ユーザーが別のグループからメンバーシップの権限を継承するには不十分です。インストールを実行するユーザーが必ず同じドメインにいるようにしてください。そうでないと、NTS認証が失敗します。 |
「スタート」→「プログラム」→「Oracle - HOME_NAME」→「Configuration and Migration Tools」→「Administration Assistant for Windows」を選択します。
Oracle Administration Assistant for Windowsが起動します。
「OSデータベース管理者 - コンピュータ」を右クリックします。
「追加/削除」をクリックします。
「OSデータベース管理者 - コンピュータ: hostname
」ダイアログ・ボックスが表示されます。
「ドメイン」
リストで、SYSDBA権限を付与するユーザーのドメインを選択します。
ユーザーを選択します。
「追加」をクリックします。
ユーザーが「OSデータベース管理者 - コンピュータ」ウィンドウに表示されます。
「OK」をクリックします。
コンピュータ上のすべて
のデータベースに対するデータベース・オペレータ(SYSOPER)権限をDBAに付与するには、次のようにします。
「スタート」→「プログラム」→「Oracle - HOME_NAME」→「Configuration and Migration Tools」→「Administration Assistant for Windows」を選択します。
Oracle Administration Assistant for Windowsが起動します。
「OSデータベース・オペレータ - コンピュータ」を右クリックします。
「追加/削除」をクリックします。
「OSデータベース・オペレータ - コンピュータ: hostname
」ダイアログ・ボックスが表示されます。
「ドメイン」リストで、SYSOPER
権限を付与するユーザーのドメインを選択します。
ユーザーを選択します。
「追加」をクリックします。
ユーザーが「OSデータベース・オペレータ - コンピュータ」ウィンドウに表示されます。
「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セキュリティ・ガイド』を参照してください。 |
データベースに接続するには、次のようにします。
Microsoft管理コンソールのスコープ・ペインで、アクセスするデータベース・インスタンスを右クリックします。次に示す例では、ORCL
へ接続します。
「データベースの接続」を選択します。
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オペレーティング・システムにより認証されたデータベース管理者として構成します。
次のダイアログ・ボックスは、リモートのOracle Databaseへの接続にTCP/IPネットワーク・プロトコルを使用していないか、Oracle Databaseが存在していないために表示されます。TCP/IP以外のプロトコル(たとえばNamed Pipesなど)を使用すると、リモート接続を試みるたびにこのダイアログが表示されます。
このダイアログ・ボックスを再度表示しないようにするには、TCP/IPプロトコルに変更して、データベースのOracle Net Servicesリスナーが、デフォルト・ポートの1521(または非推奨のデフォルト・ポートの1526)でリスニングするように設定されていることを確認します。プロトコルを変更しないと、このダイアログ・ボックスが毎回表示されます。Oracle Databaseが起動していることも確認します。
Oracle Databaseに接続するためのネット・サービス名を入力します。ネット・サービス名は、選択する認証方式にかかわらず入力する必要があります。
Oracle Databaseユーザー名およびパスワードを使用してデータベースにアクセスする場合は、「データベース認証」オプションを選択します。このユーザー名およびパスワードは、Oracle Database内に存在し、SYSDBA
権限を持っている必要があります。
現在ログオンしているWindowsドメイン・ユーザーとしてデータベースにアクセスする場合は、「SYSDBAとしてのOS認証接続」オプションを選択します。このドメイン・ユーザーは、SYSDBA
権限を持つ認証済のユーザーとしてWindowsで認識されている必要があります。認識されていない場合、ログオンできません。
注意: Oracle Net Servicesには、接続の問題を診断しやすくなるようにトレース・アシスタント・ツールが用意されており、既存のトレース・ファイルのテキストを読みやすい形式に変換することができます。『Oracle Database Net Services管理者ガイド』に記載されている、トレース・ファイルの調査にトレース・アシスタントを使用する方法を参照してください。 |
データベース認証用パラメータ設定を表示するには、次のようにします。
データベースを右クリックします。
「プロパティ」を選択します。
「プロパティ」ダイアログが表示され、次のパラメータ値が表示されます。
O
S_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ロールのグローバル・グループへの割当ダイアログを使用します。
個々のドメイン・ユーザーに割り当てられた外部ロール、または(OS_ROLESがfalseの状態で)個々のドメイン・ユーザーまたはWindowsグローバル・グループに割り当てられたローカル・ロール
は、この影響を受けません。これらは編集または取消しが可能です。
OS_ROLES
がtrue
に設定されている場合は、どのデータベース・ユーザーに対してもデータベース内のローカル・ロールを付与できません。Windowsを介してロールを付与する必要があります。詳細は、「ローカル・データベース・ロールの作成」および「外部オペレーティング・システム・ロールの作成」を参照してください。
Oracle Administration Assistant for Windowsの「外部OSユーザー」ノードにより、Windowsユーザーを認証し、パスワードを要求されずに外部ユーザーとしてOracle Databaseにアクセスできます。外部ユーザーは、通常のデータベース・ユーザー(データベース管理者以外)であり、このユーザーに対しては標準のデータベース・ロール(DBA
など)を割り当てますが、SYSDBA
(データベース管理者)権限またはSYSOPER
(データベース・オペレータ)権限は割り当てません。
外部オペレーティング・システム・ユーザーを作成するには、次のようにします。
「データベースへの接続」の手順に従って、データベースに接続します。
「外部OSユーザー」を右クリックします。コンテキスト・メニューが表示されます。
「作成」を選択します。
外部OSユーザーの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。最初のダイアログの設定対象はWindowsのユーザーとグループです。
ドメイン・ユーザーおよびグループで、Windowsドメイン・ユーザーおよびグローバル・グループがあるドメインを選択します。
データベースヘのアクセス権限を付与するWindowsドメイン・ユーザーおよびグローバル・グループを選択します。
「追加」をクリックします。選択されたユーザーおよびグループが「新規外部OSユーザー」リストに表示されます。
「次へ」をクリックします。「プロファイルと表領域」ダイアログが表示されます。
「割当てプロファイル」リストで、新しい外部ユーザーのプロファイルを選択します。プロファイルとは、リソース制限の名前付きセットです。リソース制限をオンにすると、データベースの使用とインスタンスのリソースが、ユーザーのプロファイルで定義されている内容に制限されます。プロファイルはユーザーごとに割り当てることができ、固有のプロファイルを持たないユーザーには、すべてデフォルトのプロファイルを割り当てることができます。
「次へ」をクリックします。「ロール」ダイアログ・ボックスが表示されます。
「使用可能なロール」で、新規外部ユーザーに付与するデータベース・ロールを選択します。
「権限付与」をクリックします。
「終了」をクリックします。
詳細を表示する外部ユーザーを右クリックし、「プロパティ」を選択します。
割り当てられたプロパティが表示されます。
注意: 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のダイアログ・ボックスが表示されます。最初のダイアログの設定対象は名前と認証です。
使用するローカル・ロール名を入力します。
ユーザーがパスワードを入力せずにこのローカル・ロールを使用できるようにする場合は、「認証」で「なし」を選択します。
パスワードでこのロールを保護する場合は、「パスワード」を選択します。これらのロールは、SET ROLE
コマンドでパスワードを指定した場合にのみ使用できます。詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
このロールで使用するパスワードを入力します。
確認のためにパスワードを再度入力します。
「次へ」をクリックします。「システム権限」ダイアログ・ボックスが表示されます。
「使用可能なシステム権限」で、ローカル・ロールに割り当てるシステム権限を選択します。
「権限付与」をクリックして、選択したシステム権限をローカル・ロールに付与します。
「付与されたシステム権限」フィールドに、ローカル・ロールに付与されたシステム権限のリストが表示されます。システム権限を取り消すには、その権限を選択して「取消」を選択します。
このロールに管理者オプションを付与するには、「管理オプション」列の値をクリックして、リストを表示します。「はい」が選択できます。
「次へ」をクリックします。「ロール」ダイアログ・ボックスが表示されます。
「使用可能なロール」で、ローカル・ロールに割り当てるロールを選択します。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。
「権限付与」をクリックして、ロールに選択したロールを付与します。
「権限付与されたロール」フィールドに、ロールに付与されたロールのリストが表示されます。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。ロールを取り消すには、そのロールを選択して「取消」を選択します。
「終了」をクリックします。
Oracle Administration Assistant for Windowsの「外部OSロール」ノードにより、外部ロールを作成し、そのロールをWindowsオペレーティング・システムで管理できます。一度外部ロールを作成すると、データベース・ユーザーに対してそのロールを付与したり、取り消したりできます。外部ロールを作成するには、次のようにします。
「データベースへの接続」の手順に従って、データベースに接続します。
外部ロールを作成するデータベースの「外部OSロール」を右クリックします。
「作成」を選択します。
外部OSロールの作成ウィザードが起動し、ウィザードのステップ1のダイアログ・ボックスが表示されます。最初のダイアログの設定対象は名前です。このダイアログ・ボックスには「認証: 外部」と表示され、外部ロールのみを作成できることが示されます。
注意: 外部OSロールの作成ウィザードは、init.ora のパラメータOS_ROLES がtrue に設定されている場合のみ使用できます。false に設定されている場合、最初にtrue に変更し、次にOracle Databaseを再起動します。 |
使用する外部ロール名を入力します。外部ロールは、Windowsオペレーティング・システムにより管理されるロールです。
「次へ」をクリックします。
「システム権限」ダイアログ・ボックスが表示されます。
「使用可能なシステム権限」で、外部ロールに割り当てるシステム権限を選択します。
「権限付与」を選択して、外部ロールに選択したシステム権限を付与します。
「付与されたシステム権限」フィールドに、外部ロールに付与されたシステム権限のリストが表示されます。システム権限を取り消すには、その権限を選択して「取消」をクリックします。
このロールに管理者オプションを付与するには、「管理オプション」列の値をクリックして、リストを表示します。「はい」が選択できます。
「次へ」をクリックします。
「ロール」ダイアログ・ボックスが表示されます。
「使用可能なロール」で、外部ロールに割り当てるロールを選択します。ローカル・ロールおよび外部ロールの両方がこのリストに表示されます。
「権限付与」を選択して、外部ロールに選択したロールを付与します。
「権限付与されたロール」フィールドに、外部ロールに付与されたロールのリストが表示されます。
「終了」をクリックします。
Oracle Administration Assistant for Windowsの「OSデータベース管理者」ノードにより、コンピュータ上の特定のインスタンスに対するSYSDBA
権限を持つWindowsユーザーを認証できます。単一データベースに対する管理者(SYSDBA
)権限を付与するには、次のようにします。
「データベースへの接続」の手順に従って、データベースに接続します。
「OSデータベース管理者」を右クリックします。
「追加/削除」を選択します。
「OSデータベース管理者: instance
」ダイアログ・ボックスが表示されます。次に示す例では、インスタンスはMARK
です。
ドメイン・ユーザーおよびグループの「ドメイン」
リストで、SYSDBA権限を付与するユーザーのドメインを選択します。
ユーザーを選択します。
ユーザーが「OSデータベース管理者」フィールドに表示されます。
「OK」をクリックします。
Oracle Administration Assistant for Windowsの「OSデータベース・オペレータ」ノードにより、コンピュータ上の特定のインスタンスに対するSYSOPER権限を持つWindowsユーザーを認証できます。単一データベースに対するオペレータ(SYSOPER)権限を付与するには、次のようにします。
「データベースへの接続」の手順に従って、データベースに接続します。
「OSデータベース・オペレータ」を右クリックします。
「追加/削除」を選択します。
「OSデータベース・オペレータ: instance
」ダイアログ・ボックスが表示されます。次に示す例では、インスタンスはMARK
です。
ドメイン・ユーザーおよびグループの「ドメイン」
リストで、SYSOPER権限を付与するユーザーのドメインを選択します。
ユーザーを選択します。
「追加」をクリックします。
ユーザーが「OSデータベース・オペレータ」フィールドに表示されます。
「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
は、別のコンピュータ上に存在している可能性があるOracle Databaseサーバーにアクセスするために、そのローカルWindowsクライアント・コンピュータにログインします。別のコンピュータ上の別のデータベースやリソースにアクセスする場合には、アクセスするたびにローカル・ユーザーのユーザー名とパスワードが必要になります。
ドメインsales
のドメイン・ユーザーfrank
は、多数の他のWindowsコンピュータおよびリソースを含み、そのうちの1つにOracle Databaseサーバーがあるsales
ドメインにログオンします。ドメイン・ユーザーは、ドメインのすべてのリソースに1つのユーザー名およびパスワードでアクセスできます。
手順には次の2つがあり、作業が実行されるコンピュータにより異なります。
Oracle Databaseサーバーで次のように外部ユーザー認証タスクを実行します。
パラメータOS_AUTHENT_PREFIX
をinit.ora
ファイルに追加します。
OS_AUTHENT_PREFIX
の値は、オペレーティング・システムのユーザー名およびパスワードを使用してサーバーに接続を試みる、ローカルまたはドメインのユーザー名に接頭辞として付けられます。この接頭辞付きのユーザー名は、接続要求が試行された場合にデータベース内のOracle Databaseユーザー名と比較されます。パラメータOS_AUTHENT_PREFIX
とWindowsネイティブ認証方式を組み合わせて、サーバーとのクライアント接続を保護し信頼性を高くすることをお薦めします。
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
になります)。
「コンピュータの管理」ツールでfrank
のWindowsローカル・ユーザー名を作成するか、「Active Directoryユーザーとコンピュータ」でfrank
のドメイン・ユーザー名を作成します(適切な名前が現在存在しない場合)。詳細は、オペレーティング・システムのドキュメントを参照してください。
この手順は、ユーザー付きのドメイン名を認証していない場合(たとえばドメインsales上のfrank
ではなく単にfrank
とした場合)にのみ
行うようにしてください。それ以外の場合は、手順8に進みます。
コマンド・プロンプトから、レジストリ エディタを起動します。
C:\> regedit
\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME
ID
に移動します。ID
は、編集するOracleホーム・ディレクトリです。
「編集」→「値の追加」を選択します。
「値の追加」ダイアログが表示されます。
「値の名前」
フィールドにOSAUTH_PREFIX_DOMAINと入力します。
「データ型」
リストで、REG_EXPAND_SZを選択します。
「OK」をクリックします。
「文字列エディタ」ダイアログが表示されます。
「文字列」
フィールドにtrueと入力し、ドメイン・レベルでの認証を可能にします。
ローカル・ユーザーfrank
、sales
のドメイン・ユーザーfrank
、あるいはその他のドメインのドメイン・ユーザーfrank
など、ネットワーク上に複数のfrank
というユーザー名が存在する場合があります。true
に設定すると、サーバーではそれぞれが区別されます。false
に設定すると、ドメインは無視され、ローカル・ユーザーfrank
がオペレーティング・システム・ユーザーのデフォルト値になり、サーバーに返されます。
「OK」をクリックします。
レジストリ エディタによりそのパラメータが追加されます。
「レジストリ」メニューから「レジストリ エディタの終了」を選択します。
レジストリ エディタが終了します。
ファイルsqlnet.oraのパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
SQL*Plusを起動します。
C:\> sqlplus /NOLOG
SYSTEMデータベース管理者(DBA)名でデータベースに接続します。
SQL> CONNECT SYSTEM
Enter password: system_password
変更がなければ、SYSTEM
のパスワードは、デフォルトではMANAGER
です。
次のように入力して、ローカル外部ユーザーを作成します。
SQL> CREATE USER xyzfrank IDENTIFIED EXTERNALLY;
xyz
は初期化パラメータOS_AUTHENT_PREFIX
に対して選択した値です。また、frank
はWindowsローカル・ユーザー名です。
次のように入力して、ローカル外部ユーザーにデータベース・ロールを付与します。
SQL> GRANT DBA TO xyzfrank;
次のように入力して、ドメイン外部ユーザーを作成します。
SQL> CREATE USER "XYZSALES\FRANK" IDENTIFIED EXTERNALLY;
XYZ
は初期化パラメータOS_AUTHENT_PREFIX
に対して選択した値です。また、SALES\FRANK
はドメイン名とWindowsドメイン・ユーザー名です。二重引用符は必須で、構文はすべて英大文字で入力する必要があります。
次のように入力して、ドメイン外部ユーザーにデータベース・ロールを付与します。
SQL> GRANT DBA TO "XYZSALES\FRANK";
二重引用符は必須で、構文はすべて英大文字で入力する必要があります。
SYSDBA
名でデータベースに接続します。
SQL> CONNECT / AS SYSDBA
データベースを停止します。
SQL> SHUTDOWN
データベースを再起動します。
SQL> STARTUP
これにより、パラメータOS_AUTHENT_PREFIX
の変更が有効になります。
クライアント・コンピュータで次のように外部ユーザー認証タスクを実行します。
Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名frank
を作成します(適切な名前が現在存在しない場合)。
ファイルsqlnet.ora
のパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
SQL*Plusを起動します。
C:\> sqlplus /NOLOG
Windowsサーバーに接続します。
SQL> CONNECT /@connect_identifier
connect_identifier
は、Oracle Databaseのネット・サービス名です。
Oracle Databaseにより、Windowsローカル・ユーザー名またはドメイン・ユーザー名に対応する自動ログオン・ユーザー名がデータ・ディクショナリで検索および検証され、xyzfrank
またはxyzsales\frank
での接続が可能になります。
ローカル・ユーザーまたはドメイン・ユーザー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
この項では、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_DBAはインストール中に自動的に作成されます。詳細は、「インストール時に使用可能になるオペレーティング・システムの認証」を参照してください。
データベース管理者がSYSOPER
、SYSDBA
またはSYSASM
としてパスワードなしで接続できるように手動で設定する手順には次の2つがあり、タスクが実行されるコンピュータにより異なります。
Windowsで付与する権限に対応するWindowsローカル・グループを作成します(表10-1を参照)。
データベース管理者ユーザー名をこのグループに追加します。
関連項目: ユーザーおよびグループの管理方法は、オペレーティング・システムのドキュメントを参照してください。 |
ファイルsqlnet.ora
のパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
コマンド・プロンプトから、レジストリ エディタを起動します。
C:\>regedit
\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME
ID
に移動します。
ID
は、編集するOracleホームです。
パラメータOSAUTH_PREFIX_DOMAIN
をtrue
に設定します。
Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名を作成します(適切なユーザー名が現在存在しない場合)。
ファイルsqlnet.ora
のパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle DatabaseがインストールされているWindowsサーバーへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
SQL*Plusを起動します。
C:\> sqlplus /NOLOG
Oracle Databaseに接続します。
SQL> SET INSTANCE net_service_name
net_service_name
は、Oracle DatabaseのOracle Netのネット・サービス名です。
「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つがあり、認証タスクが実行されるコンピュータにより異なります。
初期化パラメータOS_ROLES
をinit.ora
ファイルに追加します。
OS_ROLES
をtrue
に設定します。
デフォルトの設定では、このパラメータはfalse
です。
ファイルsqlnet.ora
のパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
SQL*Plusを起動します。
C:\> sqlplus /NOLOG
Windowsサーバーに接続します。
SQL> CONNECT / AS SYSDBA
新規のデータベース・ロールを作成します。この新規のロールにはどのような名前でも指定できます。次の例では、DBSALES3
というロール名を使用します。
SQL> CREATE ROLE DBSALES3 IDENTIFIED EXTERNALLY;
データベース環境に対応するOracle DatabaseロールをDBSALES3
に付与します。
SQL> GRANT DBA TO DBSALES3 WITH ADMIN OPTION;
SYSDBA
でデータベースに接続します。
SQL> CONNECT / AS SYSDBA
データベースを停止します。
SQL> SHUTDOWN
データベースを再起動します。
SQL> STARTUP
次の構文でWindowsローカル・グループを作成します。
ORA_sid_rolename[_D][_A]
それぞれの意味は次のとおりです。
sid
は、データベース・インスタンスを示します。
rolename
は、付与されるデータベース・ロールを示します。
D
は、このデータベース・ロールをデータベース・ユーザーのデフォルト・ロールにすることを示します。
A
は、このデータベース・ロールがADMIN
OPTION
を含むことを示します。
文字D
およびA
はオプションです。指定する場合は、これらの文字の前にアンダースコアが必要です。
この例では、ORA_orcl_dbsales3_D
が作成されます。
このグループに、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でグループ名がロール名に変換されるとき、名前は大文字に変換されます。 |
Windowsサーバー上にある同じユーザー名とパスワードで、Windowsローカル・ユーザー名またはドメイン・ユーザー名を作成します(適切なユーザー名が現在存在しない場合)。
ファイルsqlnet.ora
のパラメータSQLNET.AUTHENTICATION_SERVICES
に、nts
が含まれていることを確認します。
Oracle Net Configuration Assistantを使用して、クライアント・コンピュータからOracle Databaseへのネットワーク接続を構成します。詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
SQL*Plusを起動します。
C:\> sqlplus /NOLOG
正しいインスタンスに接続します。
SQL> SET INSTANCE connect_identifier
connect_identifier
は、手順3で作成した、Oracle Database接続のネット・サービス名です。
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エンタープライズ・ユーザー・セキュリティ管理者ガイド』の「ユーザー移行ユーティリティの使用」 |