この章では、Windowsオペレーティング・システム環境におけるOracle Databaseユーザーの認証について説明します。
この章の項目は次のとおりです。
Oracle Databaseでは、データベース・ユーザーの認証にWindowsのユーザー・ログオン資格証明を使用できます。これには次の利点があります。
ユーザーは、ユーザー名またはパスワードを入力しなくても、Oracle Databaseに接続できます。
Oracle Databaseのユーザー認証およびロール認可の情報を、Windowsで一元管理することにより、ユーザー・パスワードまたはロールの情報をOracle Databaseに格納して管理する必要がなくなります。
(Oracle Net Servicesとともに自動的にインストールされる)Windows認証アダプタにより、Windowsを介したデータベース・ユーザー認証が可能になります。これにより、クライアント・コンピュータはWindowsサーバー上のOracle Databaseに安全に接続できます。その後、サーバーではユーザーによるデータベース・アクションの実行が許可されます。
|
注意: 現在のユーザー・データベース・リンクは、Windows認証ではサポートされていません。 |
|
注意: この章では、Windows 2000以上におけるWindows固有の認証方法の使用について説明します。Secure Sockets Layer(SSL)プロトコルおよびOracle Internet Directoryの詳細は、『Oracle Database Advanced Security管理者ガイド』および『Oracle Internet Directory管理者ガイド』を参照してください。 |
Windows固有の認証アダプタは、Windowsの認証プロトコルと連動して、Oracle Databaseへのアクセスを可能にします。
ユーザーがWindows 2000環境のコンピュータから、Windows 2000ドメイン・ユーザーとしてログオンする場合、KerberosがNTSアダプタにより使用される認証機構になります。他のすべてのユーザーの場合、NTSアダプタで使用される認証メカニズムはNTLMです。
スタンドアロンのWindowsコンピュータで認証がNTSに設定されている場合は、WindowsサービスのNTLM Security Support Providerが開始されていることを確認します。このサービスが、スタンドアロンのWindowsコンピュータで開始されていない場合、NTS認証は失敗します。この問題は、Windows 2000をスタンドアロン・モードで実行している場合にのみ発生します。
クライアント・コンピュータでは、Oracle Databaseへの接続を試みるときに、認証プロトコルを指定する必要はありません。使用されるプロトコルは、Oracle Databaseによりユーザーに対して完全に透過的に判断されます。Oracle Database側の唯一の要件は、クライアントとデータベース・サーバーの両方で、次のファイル内のパラメータSQLNET.AUTHENTICATION_SERVICESにntsが含まれていることです。
ORACLE_BASE\ORACLE_HOME\network\admin\sqlnet.ora
インストール後には、これが両方のデフォルト設定になります。Oracle8リリース8.0.xでは、手動でこの値を設定する必要があります。
通常、Oracle Databaseのネットワーク上には、クライアント・コンピュータおよびデータベース・サーバーがあります。このネットワーク上の複数のコンピュータでは、異なるドメインの異なるWindowsオぺレーティング・システムで、異なるリリースのOracle Databaseソフトウェアが使用できます。このようにリリースの異なる組合せが使用されている場合、その認証プロトコルも異なる可能性があります。
表9-1に、Kerberosをデフォルトの認証プロトコルとして使用できるようにするために必要なOracle DatabaseソフトウェアおよびWindowsオペレーティング・システムのリリースを示します。
表9-1 Kerberos認証プロトコルを使用可能にするためのソフトウェア要件
| 場所 | Windowsソフトウェア | Oracle Databaseソフトウェア |
|---|---|---|
|
クライアント・コンピュータ |
Windows 2000 |
Oracle8i Client以上 |
|
データベース・コンピュータ |
Windows 2000 |
Oracle8i Database以上 |
|
ドメイン |
Windows 2000 |
なし |
ネットワークで使用されるWindowsオペレーティング・システムおよびOracle Databaseソフトウェアのリリースのこれ以外のすべての組合せで使用される認証プロトコルはNTLMです。
|
関連項目: 各認証プロトコルの詳細は、オペレーティング・システムのドキュメントを参照 |
この項では、Windows 2000ドメインにおいて、ユーザー・ログオン資格証明が認証される方式、およびデータベース・ロールが認可される方式を説明します。表9-2に、ユーザー認証およびロール認可の定義を示します。
表9-2 ユーザー認証およびロール認可の定義
| 機能 | 説明 | 詳細情報の参照先 |
|---|---|---|
|
ユーザー認証 |
データベースが、ユーザーのWindowsログオン資格証明を使用してユーザーを認証するプロセス。 |
『Oracle Database 2日でデータベース管理者』 |
|
ロール認可 |
割り当てられた一連のロールを認証済のユーザーに対して付与するプロセス。 |
『Oracle Database 2日でデータベース管理者』 |
Oracle Databaseでは、Windows 2000ドメインにおけるユーザー認証およびロール認可がサポートされています。表9-3では、これらの基本的な機能について説明します。
| 機能 | 説明 |
|---|---|
|
外部ユーザーの認証 |
ユーザーは、Windowsログオン資格証明を使用してデータベースにより認証され、追加のログオン資格証明を要求されずにOracle Databaseにアクセスできます。 |
|
外部ロールの認可 |
ロールは、Windowsローカル・グループを使用して認可されます。一度外部ロールを作成すると、データベース・ユーザーに対してそのロールを付与したり、取り消したりできます。初期化パラメータ |
表9-4では、Oracle Database環境に基づいた、ユーザー認証およびロール認可の方式について説明します。
| 方式 | データベース環境 |
|---|---|
|
エンタープライズ・ユーザーおよびロール |
複数のデータベースに多数のユーザーが接続する場合。 エンタープライズ・ユーザーは、複数のデータベース間で同じ識別情報を持ちます。エンタープライズ・ユーザーは、ディレクトリ・サーバーを使用する必要があります。 エンタープライズ・ロールは、ロールが割り当てられたエンタープライズ・ユーザーが地理的に多数の場所に存在しており、複数のデータベースにアクセスする必要がある場合に使用します。各エンタープライズ・ロールは、ディレクトリ内の複数のエンタープライズ・ユーザーに割り当てることができます。エンタープライズ・ロールを使用しない場合は、各データベース・ユーザーに手動でデータベース・ロールを割り当てる必要があります。エンタープライズ・ロールは、ディレクトリ・サーバーを使用する必要があります。 |
|
外部ユーザーおよびロール |
限定された数のデータベースに少数のユーザーが接続する場合。外部ユーザーは個別に各データベースで作成する必要があり、ディレクトリ・サーバーを使用する必要はありません。 外部ロールも個別に各データベースで作成する必要があり、ディレクトリ・サーバーを使用する必要はありません。外部ロールは、システムのローカル・グループ内のユーザーのグループ・メンバーシップを使用して認可されます。 |
|
関連項目: エンタープライズ・ユーザーおよびロールの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照 |
Oracle Databaseをインストールすると、ORA_DBAという特別なWindowsローカル・グループが作成され(過去のOracle Databaseインストールで作成されていない場合)、Windowsのユーザー名が自動的に追加されます。ローカル・グループORA_DBAのメンバーには、自動的にSYSDBA権限が付与されます。
ORA_DBAのメンバーシップにより、次のことが可能です。
次のコマンドを使用し、パスワードなしでOracle Databaseのローカル・インスタンスに接続できます。
CONNECT / AS SYSDBA
次のコマンドを使用し、パスワードなしでOracle Databaseのリモート・サーバーに接続できます。
CONNECT /@net_service_name AS SYSDBA
net_service_nameは、Oracle Databaseのリモート・サーバーのネット・サービス名です。
ローカル・データベースの起動および停止など、データベース管理手順を実行できます。
別のWindowsユーザーをORA_DBAに追加し、そのユーザーにSYSDBA権限を付与できます。