ヘッダーをスキップ
Oracle® Database管理者ガイド
11gリリース2 (11.2)
B56301-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 データベース管理スタート・ガイド

この章の内容は、次のとおりです。

Oracle Databaseユーザーのタイプ

ユーザーのタイプとその役割および責任は、データベース・サイトによって異なります。小規模のサイトでは、1名のデータベース管理者を配置して、アプリケーション開発者およびユーザー向けのデータベースを管理できます。大規模なサイトでは、データベース管理者の役割を複数の人および複数の専門グループに分割する必要があります。

データベース管理者

各データベースには、少なくとも1名のDBAが必要です。Oracle Databaseシステムは規模が大きく、多数のユーザーによって使用される可能性があります。したがって、1名の担当者ではデータベースを管理できないため、複数のDBAでグループを編成して役割を分担します。

データベース管理者が担当するタスクは次のとおりです。

  • Oracle Databaseサーバーとアプリケーション・ツールをインストールおよびアップグレードします。

  • データベース・システムにシステム記憶域を割り当て、将来の記憶域要件を計画します。

  • アプリケーション開発者がアプリケーションを設計した後、プライマリ・データベースの記憶域構造(表領域)を作成します。

  • アプリケーション開発者がアプリケーションを設計した後、プライマリ・オブジェクト(表、ビュー、索引)を作成します。

  • アプリケーション開発者から得た情報に基づき、必要に応じてデータベース構造を修正します。

  • ユーザーを登録し、システム・セキュリティをメンテナンスします。

  • Oracleのライセンス契約に従っていることを確認します。

  • データベースに対するユーザー・アクセスを制御し、監視します。

  • データベースのパフォーマンスを監視し、最適化します。

  • データベース情報のバックアップおよびリカバリの計画を立てます。

  • テープ上のアーカイブ済データをメンテナンスします。

  • データベースをバックアップおよびリストアします。

  • 技術サポートについてOracleサポート・サービスに連絡します。

セキュリティ管理者

サイトによっては、データベースに1名以上のセキュリティ管理者が必要です。セキュリティ管理者は、ユーザーの登録、データベースに対するユーザー・アクセスの制御と監視およびシステム・セキュリティのメンテナンスを実施します。したがって、サイトにセキュリティ管理者が別にいる場合、DBAはこれらの業務に対する役割を持ちません。セキュリティ管理者の業務の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

ネットワーク管理者

サイトによっては、1名以上のネットワーク管理者がいる場合があります。たとえば、ネットワーク管理者は、Oracle Net ServicesなどのOracleネットワーク製品を管理します。ネットワーク管理者の業務の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。


関連項目:

分散環境でのネットワーク管理の詳細は、第I部「分散データベースの管理」を参照してください

アプリケーション開発者

アプリケーション開発者は、データベース・アプリケーションを設計し、実装します。アプリケーション開発者が担当するタスクは、次のとおりです。

  • データベース・アプリケーションを設計、開発します。

  • アプリケーションのためのデータベース構造を設計します。

  • アプリケーションに対する記憶域要件を見積ります。

  • アプリケーションのためのデータベース構造の変更を指定します。

  • データベース管理者にこのような情報を伝えます。

  • 開発中にアプリケーションをチューニングします。

  • 開発中にアプリケーションに対するセキュリティ手段を確立します。

アプリケーション開発者は、これらのタスクの一部をDBAと協力して実施する場合があります。アプリケーション開発タスクの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

アプリケーション管理者

Oracle Databaseのサイトでは、特定のアプリケーションを管理するために1名以上のアプリケーション管理者が必要な場合があります。アプリケーションごとに専門の管理者を置く場合があります。

データベース・ユーザー

データベース・ユーザーは、アプリケーションまたはユーティリティを介してデータベースと対話します。一般ユーザーが担当するタスクは、次のとおりです。

  • 許された範囲でデータを入力、修正および削除します。

  • データのレポートを作成します。

データベース管理者のタスク

次のタスクは、Oracle Databaseを設計、実装およびメンテナンスするためのアプローチの優先度を表しています。

タスク1: データベース・サーバー・ハードウェアの評価

タスク2: Oracle Databaseソフトウェアのインストール

タスク3: データベースの計画

タスク4: データベースの作成とオープン

タスク5: データベースのバックアップ

タスク6: システム・ユーザーの登録

タスク7: データベース設計の実装

タスク8: 実行データベースのバックアップ

タスク9: データベースのパフォーマンス・チューニング

タスク10: パッチのダウンロードとインストール

タスク11: 追加ホストへのロール・アウト

次の項で、これらのタスクについて説明します。


注意:

新しいリリースにアップグレードする場合は、既存の本番環境(ソフトウェアとデータベースの両方)のバックアップを作成してからインストールしてください。既存の本番データベースの保存方法については、『Oracle Databaseアップグレード・ガイド』を参照してください。

タスク1: データベース・サーバー・ハードウェアの評価

使用可能なコンピュータ・リソースを、Oracle Databaseとそのアプリケーションで最大限に活用するための評価を行います。この評価では、次のような情報を明らかにする必要があります。

  • Oracle製品に使用可能なディスク・ドライブ数

  • Oracle製品に使用可能な専用テープ・ドライブ数(テープ・ドライブがある場合)

  • Oracle Databaseインスタンスで使用可能なメモリーの量(システムの構成マニュアルを参照)

タスク2: Oracle Databaseソフトウェアのインストール

データベース管理者は、Oracle Databaseサーバーのソフトウェアとすべてのフロントエンド・ツール、およびデータベースにアクセスするデータベース・アプリケーションをインストールします。分散処理環境インストールでは、データベースが中核となるコンピュータ(データベース)によって制御され、データベース・ツールとアプリケーションがリモート・マシン(クライアント)で実行される場合があります。このような場合は、Oracle Databaseを実行するコンピュータに、リモート・システムを接続するために必要なOracle Netコンポーネントもインストールする必要があります。

インストールするソフトウェアの詳細は、「Oracle Databaseソフトウェアのリリースの識別」を参照してください。


関連項目:

インストールの特定の要件や指示の詳細は、次のマニュアルを参照してください。
  • 使用しているオペレーティング・システム固有のOracleマニュアル

  • フロントエンド・ツールおよびOracle Netドライバのインストレーション・ガイド


タスク3: データベースの計画

データベース管理者は、次のことを計画する必要があります。

  • データベースの論理記憶域構造

  • データベース全体の設計

  • データベースのバックアップ計画

重要なことは、データベースの論理記憶域構造が、システムのパフォーマンスと様々なデータベース管理操作にどのように影響を及ぼすかについて計画することです。たとえば、データベースの表領域を作成する前に、表領域を構成するデータファイルの数、各表領域に格納される情報のタイプ、およびデータファイルが物理的に格納されるディスク・ドライブについて把握しておく必要があります。データベース構造の論理記憶域全体を計画する際は、実際にデータベースを作成し、稼働したときに、この構造によって生じる影響を考慮します。次の項目について、データベースの論理記憶域構造が及ぼす影響を検討してください。

  • Oracle Databaseを実行しているコンピュータのパフォーマンス

  • データ・アクセス操作中のデータベースのパフォーマンス

  • データベースのバックアップおよびリカバリの手順の効率

データベース・オブジェクトのリレーショナル設計と、各オブジェクトの記憶特性について計画します。オブジェクトを作成する前に、オブジェクトと各オブジェクトの物理記憶域間の関連について計画を立てることによって、1つの単位としてのデータベースのパフォーマンスを直接制御できます。データベースの拡張計画についても必ず検討してください。

分散データベース環境では、この計画段階が非常に重要です。頻繁にアクセスされるデータの物理的な位置が、アプリケーションのパフォーマンスに大きな影響を及ぼします。

計画段階中に、データベースのバックアップ計画を作成します。バックアップの効率を改善するために、必要に応じて論理記憶域やデータベースの設計を変更します。

リレーショナル・データベース設計および分散データベース設計については、このマニュアルでは取り扱っていません。このような設計上の問題は、業界標準として認められている資料を参照してください。

データベースの論理記憶域構造、オブジェクトおよび整合性制約の作成方法は、第I部「Oracle Databaseの構造と記憶域」および第I部「スキーマ・オブジェクト」を参照してください。

タスク4: データベースの作成とオープン

データベース設計が完了すると、データベースを作成し、オープンできます。データベースを作成するには、Database Configuration Assistantを使用してインストール時に作成する方法と、データベースを作成するためのスクリプトを用意する方法があります。

データベースの作成方法については第2章「Oracle Databaseの作成および構成」を、データベース起動時のガイドラインについては第3章「起動と停止」を参照してください。

タスク5: データベースのバックアップ

データベース構造の作成後、データベースに対して予定していたバックアップ計画を実行します。追加のREDOログ・ファイルを作成し、データベース全体の最初のバックアップ(オンラインまたはオフライン)を作成して、その後の定期的なデータベース・バックアップをスケジュールします。


関連項目:

『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

タスク6: システム・ユーザーの登録

データベース構造のバックアップが完了した後、Oracleのライセンス契約に従ってデータベースのユーザーを登録し、登録したユーザーに対して適切な権限とロールを付与できます。このタスクのガイドラインについては、第7章「ユーザーの管理とデータベースのセキュリティ保護」を参照してください。

タスク7: データベース設計の実装

データベースを作成して起動し、システム・ユーザーを登録した後、必要なすべての表領域を作成して、計画したデータベースの論理構造を実装できます。表領域の作成を完了すると、データベース・オブジェクトを作成できます。

データベースの論理記憶域構造とオブジェクトの作成方法は、第I部「Oracle Databaseの構造と記憶域」および第I部「スキーマ・オブジェクト」を参照してください。

タスク8: 実行データベースのバックアップ

データベースがすべて実装されたときに、再度バックアップを作成します。定期的にバックアップを作成するようにスケジュールし、また、データベース構造の変更を実装した直後にも必ずデータベースのバックアップを作成するようにします。

タスク9: データベースのパフォーマンス・チューニング

データベースのパフォーマンスの最適化は、DBAの日常的な作業の1つです。Oracle Databaseでは、各種ユーザー・グループへのリソースの割当てを制御できるよう、データベース・リソース管理機能が提供されています。データベース・リソース・マネージャについては、第27章「Oracle Database Resource Managerを使用したリソースの管理」を参照してください。


関連項目:

データベースとアプリケーションのチューニング方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

タスク10: パッチのダウンロードとインストール

インストール後および定期的に、パッチをダウンロードしてインストールします。パッチは単一の暫定パッチおよびパッチ・セット(またはパッチ・リリース)として使用できます。暫定パッチは個々のソフトウェアの不具合を修正するもので、使用中のインストールに必要な場合と必要ではない場合があります。パッチ・リリースは、すべての顧客に適用される不具合の修正の集合です。パッチ・リリースにはリリース番号が付けられています。たとえば、Oracle Database 11.2.0.1をインストールした場合、最初のパッチ・リリースのリリース番号は11.2.0.2です。


関連項目:

パッチのダウンロードおよびインストールの手順は、使用中のプラットフォームの『Oracle Databaseインストレーション・ガイド』を参照してください。

タスク11: 追加ホストへのロール・アウト

Oracle Databaseのインストールを正しく構成し、チューニングし、パッチを適用してテストした後、そのインストールを他のホストにロール・アウトする必要がある場合があります。ロール・アウトは、次のような場合に行います。

  • 複数の本番データベース・システムがある場合。

  • 本番システムと同じ開発システムやテスト・システムを作成する場合。

追加の各ホストでインストール、チューニングおよびパッチ適用を実行するかわりに、テスト済のOracle Databaseインストールを他のホストにクローニングすると、時間を節約でき、不整合をなくすことができます。次の2種類のクローニングを使用できます。

  • Oracleホームのクローニング: Oracleホーム・ディレクトリとサブディレクトリの構成済およびパッチ適用済バイナリのみが宛先のホストにコピーされ、新しい環境にあわせて調整されます。その後、このクローニングしたホームを使用してインスタンスを起動し、データベースを作成できます。

    Enterprise ManagerのOracleホームのクローニング・ツールを使用すると、Oracleホームを1つ以上の宛先ホストにクローニングできます。また、提供されているスクリプトのセットとOracle Universal Installerを使用して、Oracleホームを手動でクローニングすることもできます。

  • データベースのクローニング: データベース・ファイルや初期化パラメータなどのチューニング済のデータベースが、既存のOracleホーム(おそらくクローニングしたホーム)にクローニングされます。

    Enterprise Managerのデータベースのクローニング・ツールを使用すると、Oracleデータベース・インスタンスを既存のOracleホームにクローニングできます。


関連項目:

  • Oracleソフトウェアのクローニングの詳細は、『Oracle Universal InstallerおよびOpatchユーザーズ・ガイドfor Windows and UNIX』を参照してください。

  • データベースのクローニングの手順は、Enterprise Managerのオンライン・ヘルプを参照してください。


データベースに対するコマンドとSQLの発行

Oracle Databaseとのやり取りは主にSQL文を発行して行います。Oracle Databaseでは、データベースの起動と停止およびデータベース設定の変更などのコマンドを含む、SQLのスーパーセットもサポートされています。これらのSQL文やコマンドをOracle Databaseに発行する方法は3つあります。

  • SQL*Plusのコマンドライン・インタフェースを使用する直接的な方法

  • Oracle Enterprise Managerのグラフィカル・ユーザー・インタフェースを使用する間接的な方法

    Oracle Enterprise Manager(Enterprise Manager)を使用すると、使いやすいグラフィカル・インタフェースを使用してデータベースを管理できます。SQL文やコマンドは、Enterprise Managerが内部的に発行します。

    詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

  • SQL Developerを使用する直接的な方法

    開発者はSQL Developerを使用してデータベース・スキーマとアプリケーションの作成およびテストをしますが、SQL Developerはデータベースの管理作業にも使用できます。

    詳細は、『Oracle Database 2日で開発者ガイド』を参照してください。

ここでは、SQL*Plusを使用して、SQL文とコマンドをデータベースに対して発行する方法について説明します。内容は次のとおりです。

SQL*Plusの概要

SQL*PlusはOracle Databaseへの主要なコマンドライン・インタフェースです。SQL*Plusは、データベースの起動と停止、データベース初期化パラメータの設定、ユーザーの作成と管理、データベース・オブジェクト(表や索引など)の作成と変更、データの挿入と更新、SQL問合せの実行などを行うために使用します。

SQL文とコマンドを発行する前に、データベースに接続する必要があります。SQL*Plusでは、ローカル接続またはリモート接続が可能です。ローカル接続とは、SQL*Plusを実行しているのと同じコンピュータで動作しているOracle Databaseに接続することです。リモート接続とは、リモート・コンピュータで動作しているOracle Databaseにネットワークを介して接続することです。そのようなデータベースはリモート・データベースと呼ばれます。Oracle Databaseの完全インストール、Oracle ClientのインストールまたはInstant Clientのインストールを行うと、ローカル・コンピュータにSQL*Plus実行可能ファイルが提供されます。


関連項目:

『SQL*Plus ユーザーズ・ガイドおよびリファレンス』

SQL*Plusを使用したデータベースへの接続

Oracle Databaseのコンポーネントは、次のとおりです。

  • プロセスとメモリーの集合体であるOracle Databaseインスタンス

  • ユーザー・データとシステム・データが格納された一連のディスク・ファイル

SQL*Plusを使用して接続するときには、Oracleインスタンスに接続します。それぞれのインスタンスには、システムID(SID)とも呼ばれるインスタンスIDがあります。ホスト・コンピュータ上に複数のOracleインスタンスが存在し、各インスタンスがそれぞれのデータファイル・セットを持つ可能性があるため、接続先のインスタンスを特定する必要があります。ローカル接続の場合は、オペレーティング・システムの環境変数を設定してインスタンスを識別します。リモート接続では、ネットワーク・アドレスとデータベース・サービス名を指定して、インスタンスを識別します。ローカル接続とリモート接続のいずれの場合も、環境変数を設定して、SQL*Plusの実行可能ファイルをオペレーティング・システムが検出できるようにし、実行可能ファイルにサポート・ファイルとスクリプトへのパスを設定する必要があります。このため、SQL*Plusを使用してOracleインスタンスに接続するには、次の手順を完了する必要があります。


手順1: コマンド・ウィンドウのオープン
手順2: オペレーティング・システムの環境変数の設定
手順3: SQL*Plusの起動
手順4: SQL*PlusのCONNECT文の発行

関連項目:

Oracleインスタンスに関するバックグラウンド情報は、『Oracle Database概要』を参照してください。

手順1: コマンド・ウィンドウのオープン

プラットフォームで必要な処理を実行して、オペレーティング・システムのコマンドを入力できるウィンドウを開きます。

手順2: オペレーティング・システムの環境変数の設定

プラットフォームによっては、SQL*Plusを起動する前に、環境変数を設定するか少なくとも正しく設定されていることを確認することが必要な場合があります。

たとえば、ほとんどのプラットフォームでは、ORACLE_SIDORACLE_HOMEを設定する必要があります。さらに、PATH環境変数にORACLE_HOME/binディレクトリを含めるように設定することもお薦めします。一部のプラットフォームでは、さらに環境変数の設定が必要な場合があります。

  • UNIXおよびLinuxプラットフォームでは、オペレーティング・システムのコマンドを入力して環境変数を設定する必要があります。

  • Windowsプラットフォームでは、Windowsレジストリ内のORACLE_HOMEORACLE_SIDにOracle Universal Installer(OUI)によって値が自動的に割り当てられます。

インストール時にデータベースを作成しなかった場合は、レジストリ内のORACLE_SIDがOUIによって設定されないため、後でデータベースを作成するときに、ORACLE_SID環境変数をコマンド・ウィンドウから設定する必要があります。

UNIXおよびLinuxのインストールには、oraenvcoraenvの2つのスクリプトが含まれています。このスクリプトを使用すると、これらの環境変数を容易に設定できます。詳細は、管理者リファレンスfor UNIX Systemsを参照してください。

いずれのプラットフォームでも、異なるOracleホームを使用するインスタンス間で切り替える場合は、ORACLE_HOME環境変数を変更する必要があります。同じOracleホームを複数のインスタンスで共有している場合は、インスタンスを切り替えるときにORACLE_SIDのみを変更する必要があります。

環境変数およびインスタンスの切替え方法の詳細は、『Oracle Databaseインストレーション・ガイド』または使用しているオペレーティング・システムの管理ガイドを参照してください。

例1-1 UNIXの環境変数の設定(Cシェル)

setenv ORACLE_SID orcl
setenv ORACLE_HOME /u01/app/oracle/product/11.2.0/db_1
setenv LD_LIBRARY_PATH $ORACLE_HOME/lib:/usr/lib:/usr/dt/lib:/usr/openwin/lib:/usr/ccs/lib

例1-2 Windowsの環境変数の設定

SET ORACLE_SID=orawin2

例1-2では、ORACLE_HOMEおよびORACLE_SIDがレジストリに設定されているが、別のインスタンスに接続するにはORACLE_SIDのレジストリ値を上書きする必要があると仮定しています。

Windowsでは、コマンド・プロンプト・ウィンドウで設定した環境変数値でレジストリの値が上書きされます。

手順3: SQL*Plusの起動

SQL*Plusを起動する手順は、次のとおりです。

  1. 次のいずれかを実行します。

    • PATH環境変数にORACLE_HOME/binが含まれていることを確認します。

    • ORACLE_HOME/binディレクトリに移動します。

  2. 次のコマンドを入力します(UNIXとLinuxでは大/小文字が区別されます)。

    sqlplus /nolog
    

手順4: SQL*PlusのCONNECT文の発行

最初にOracleインスタンスに接続するか別のユーザーとして再接続するには、SQL*PlusのCONNECT文を発行します。CONNECT文の構文は、次のとおりです。

CONN[ECT] [logon] [AS {SYSOPER | SYSDBA}]

logonの構文は、次のとおりです。

{username | /}[@connect_identifier] [edition={edition_name | DATABASE_DEFAULT}]

usernameを入力すると、パスワードの入力を求めるプロンプトがSQL*Plusによって表示されます。パスワードは入力しても画面には表示されません。

次の表で、CONNECT文の構文の構成要素を説明します。

構文の構成要素 説明
/
接続要求の外部認証を呼び出します。このタイプの認証では、データベース・パスワードは使用しません。最も一般的な外部認証方式はオペレーティング・システム認証で、この方式では、特定のホスト・ユーザー・アカウントを使用してホスト・オペレーティング・システムにログインすることで、データベース・ユーザーの認証を行います。また、Oracleウォレットまたはネットワーク・サービスを使用して、外部認証を実行することもできます。詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。「オペレーティング・システム認証の使用」も参照してください。
AS {SYSOPER | SYSDBA} SYSOPERまたはSYSDBAのいずれかのシステム権限でデータベース・ユーザーが接続されていることを示します。この権限で接続できるのは、事前定義された特定の管理ユーザーまたはパスワード・ファイルに追加されているユーザーのみです。詳細は、「管理権限」を参照してください。
username 有効なデータベース・ユーザー名。usernameをデータ・ディクショナリと一致させて、ユーザー・パスワードの入力を求めることによって、データベースが接続要求を認証します。
connect_identifier (1) リモート接続用のOracle Net接続識別子。正確な構文はOracle Netの構成によって異なります。省略すると、SQL*Plusはローカル・インスタンスへの接続を試みます。

一般的な接続識別子はnet service nameです。この識別子は、Oracle Net接続記述子(ネットワーク・アドレスとデータベース・サービス名)の別名です。通常、この別名はローカル・コンピュータのtnsnames.oraファイルで解決されますが、他の方法でも解決できます。

接続識別子の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

connect_identifier (2) 別の方法として、接続識別子で簡易接続の構文も使用できます。簡易接続では、クライアント(ローカル)コンピュータでOracle Net Servicesを設定しなくても、すぐにTCP/IP接続が可能になります。

接続識別子用の簡易接続の構文は次のとおりです(前後の二重引用符も必要です)。

"host[:port][/service_name][:server][/instance_name]"

説明:

  • hostは、リモート・データベースがあるコンピュータのホスト名またはIPアドレスです。

    IPバージョン4(IPv4)およびIPバージョン6(IPv6)の両方のアドレスに対応しています。IPv6アドレスは大カッコで囲む必要があります。IPv6アドレスの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • porthostのOracle Netリスナーがデータベース接続をリスニングするTCPポートです。省略すると1521になります。

  • service_nameは、接続先のデータベース・サービス名です。リモート・ホスト上のNet Servicesのリスナー構成でデフォルトのサービスが指定されている場合は省略可能です。デフォルトのサービスが構成されていない場合は、service_nameを指定する必要があります。通常、各データベースではグローバル・データベース名と同じ名前の標準サービスが提供され、グローバル・データベース名はDB_NAMEDB_DOMAIN初期化パラメータで次のように構成されます。

    DB_NAME.DB_DOMAIN
    

    DB_DOMAINがNULLの場合は、標準サービス名はDB_NAMEのみです。たとえば、DB_NAMEorclDB_DOMAINus.example.comの場合、標準サービス名はorcl.us.example.comです。

    詳細は、「データベース・サービスでのアプリケーション・ワークロードの管理」を参照してください。

  • serverはサービス・ハンドラのタイプです。有効な値は、dedicatedsharedおよびpooledです。省略されている場合、サーバーのデフォルトのタイプはリスナーによって選択されます。構成されている場合は共有サーバー、それ以外の場合は専用サーバーです。

  • instance_nameは、接続先のインスタンスです。サービス名とインスタンス名の両方を指定することもできますが、通常、このような指定はOracle Real Application Clusters (Oracle RAC)環境でのみ行います。Oracle RAC環境または単一インスタンス環境で、インスタンス名のみを指定した場合は、デフォルトのデータベース・サービスに接続されます。デフォルトのサービスがlistener.oraファイルに構成されていない場合は、エラーが生成されます。インスタンス名はinstance_name初期化パラメータから取得できます。

簡易接続の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

edition={edition_name | DATABASE_DEFAULT} 新規のデータベース・セッションを開始するエディションを指定します。エディションを指定した場合はそのエディションが必ず存在する必要があり、また、エディションに対するUSE権限が必要になります。この句が指定されていない場合は、セッションではデータベースのデフォルトのエディションが使用されます。

エディションおよびエディションに基づく再定義の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。


例1-3

次の簡単な例では、ユーザーSYSTEMでローカル・データベースに接続します。SQL*Plusによって、ユーザーSYSTEMのパスワードの入力が求められます。

connect system

例1-4

次の例では、SYSDBA権限のユーザーSYSでローカル・データベースに接続します。SQL*Plusによって、ユーザーSYSのパスワードの入力が求められます。

connect sys as sysdba

ユーザーSYSとして接続するときには、AS SYSDBAを指定して接続する必要があります。

例1-5

次の例では、オペレーティング・システム認証を使用してSYSDBA権限でローカルに接続します。

connect / as sysdba

例1-6

この例では、簡易接続の構文を使用し、ユーザーsalesadminとして、ホストdbhost.example.comで動作するリモート・データベースに接続します。Oracle Netリスナー(リスナー)は、デフォルト・ポート(1521)でリスニングしています。データベース・サービスは、sales.example.comです。SQL*Plusによって、ユーザーsalesadminのパスワードの入力が求められます。

connect salesadmin@"dbhost.example.com/sales.example.com"

例1-7

次の例は、サービス・ハンドラのタイプが指定されていること以外は例1-6と同じです。

connect salesadmin@"dbhost.example.com/sales.example.com:dedicated"

例1-8

次の例は、デフォルト・ポート番号ではない1522でリスナーがリスニングしていること以外は例1-6と同じです。

connect salesadmin@"dbhost.example.com:1522/sales.example.com"

例1-9

この例は例1-6とほぼ同じで、ホスト名のかわりにホストのIPアドレスが使用されている点のみが異なります。

connect salesadmin@"192.0.2.5/sales.example.com"

例1-10

この例では、IPv6アドレスを使用して接続します。角括弧で囲まれている点に注意してください。

connect salesadmin@"[2001:0DB8:0:0::200C:417A]/sales.example.com"

例1-11

次の例では、接続先のインスタンスを指定し、データベース・サービス名を省略します。デフォルトのデータベース・サービスが指定されている必要があり、それ以外の場合はエラーが生成されます。インスタンスのみを指定する場合はサービス・ハンドラのタイプを指定できないことに注意してください。

connect salesadmin@"dbhost.example.com//orcl"

例1-12

次の例では、ユーザーsalesadminとして、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。SQL*Plusによって、ユーザーsalesadminのパスワードの入力が求められます。

connect salesadmin@sales1

例1-13

次の例では、外部認証を使用して、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。

connect /@sales1

例1-14

次の例では、外部認証を使用してSYSDBA権限で、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。

connect /@sales1 as sysdba

例1-15

次の例では、ユーザーsalesadminとして、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。データベース・セッションは、rev21エディションで開始されます。SQL*Plusによって、ユーザーsalesadminのパスワードの入力が求められます。

connect salesadmin@sales1 edition=rev21

関連項目:


Oracle Databaseソフトウェアのリリースの識別

Oracle Databaseは継続的に開発が進められ、メンテナンスが必要なため、定期的に新リリースが作成されています。すべての顧客が、新リリースを最初に利用したり、既存のリリースに対する特定のメンテナンスを必要とするわけではありません。この結果、複数の製品リリースが同時に存在することになります。

特定のリリースを完全に識別するには、5つの番号が必要です。以降の項では、各番号の意味について説明します。

リリース番号の形式

Oracleで使用されているリリースの命名体系を理解するために、Oracle Databaseのリリース番号11.2.0.1.0を例として説明します。

図1-1 Oracle Databaseのリリース番号の例

図1-1の説明が続きます
「図1-1 Oracle Databaseのリリース番号の例」の説明


注意:

リリース9.2からは、Oracle Databaseのメンテナンス・リリースはリリース番号の2番目の数字の変更で示されます。以前のリリースでは、3番目の数字が特定のメンテナンス・リリースを示していました。

データベースのバージョン番号

最初の数字は、最も一般的な識別子です。ソフトウェアの主要な新バージョン(大きな新機能など)を表します。

データベースのメンテナンス・リリース番号

2番目の数字は、メンテナンス・リリース・レベルを表します。新機能がいくつか含まれている場合もあります。

Fusion Middlewareリリース番号

3番目の数字には、Oracle Fusion Middlewareのリリース・レベルが反映されます。

コンポーネント固有のリリース番号

4番目の数字では、コンポーネント固有のリリース・レベルが識別されます。コンポーネントが異なると、ここに表示される数値も異なることがあります。これは、コンポーネントのパッチ・セットや仮リリースなどに基づきます。

プラットフォーム固有のリリース番号

5番目の数字では、プラットフォーム固有のリリースが識別されます。通常、これはパッチ・セットです。異なるプラットフォームに同等のパッチ・セットが必要な場合、この数字は影響を受けるプラットフォーム間で同じになります。

現行のリリース番号のチェック

現在インストールされているOracle Databaseのリリースを識別し、使用している他のデータベース・コンポーネントのリリース・レベルを確認するには、データ・ディクショナリ・ビューPRODUCT_COMPONENT_VERSIONを問い合せます。問合せの例を次に示します。(コンポーネント・レベルの情報は、V$VERSIONビューを問い合せて確認することもできます。)他の製品のリリース・レベルは、データベース・サーバーと関係なく増加する場合があります。

COL PRODUCT FORMAT A40
COL VERSION FORMAT A15
COL STATUS FORMAT A15 
SELECT * FROM PRODUCT_COMPONENT_VERSION;

PRODUCT                                  VERSION     STATUS
---------------------------------------- ----------- -----------
NLSRTL                                   11.2.0.0.1  Production
Oracle Database 11g Enterprise Edition   11.2.0.0.1  Production
PL/SQL                                   11.2.0.0.1  Production
...

オラクル社にソフトウェアの問題を報告する際は、この問合せの結果を伝えることが重要です。

データベース管理者のセキュリティと権限の概要

Oracle Database管理者の管理タスクを実行するには、データベースとそのデータベースが稼働するサーバーのオペレーティング・システムで特定の権限が必要です。データベース管理者アカウントへのアクセスは厳しく管理する必要があります。

この項の内容は次のとおりです。

データベース管理者のオペレーティング・システム・アカウント

データベースに対する管理業務の多くを実行するには、オペレーティング・システム・コマンドを実行できる必要があります。Oracle Databaseが稼働するオペレーティング・システムによって異なりますが、オペレーティング・システムにアクセスするには、オペレーティング・システム・アカウント(ID)が必要になります。その場合、そのオペレーティング・システム・アカウントに対しては、他のデータベース・ユーザーには不要なオペレーティング・システム権限やアクセス権(Oracle Databaseソフトウェアのインストールの実行など)が必要になります。Oracle Databaseファイルを自分のアカウント内に格納する必要はありませんが、それらに対するアクセス権は必要です。


関連項目:

使用しているオペレーティング・システム固有のOracleマニュアルを参照してください。データベース管理者のアカウントの作成方法は、オペレーティング・システムによって異なります。

管理ユーザー・アカウント

Oracle Databaseのインストール時には、次の2つの管理ユーザー・アカウントが自動的に作成されます。

  • SYS(デフォルトのパスワード: CHANGE_ON_INSTALL)

  • SYSTEM(デフォルトのパスワード: MANAGER)


    注意:

    Oracle Universal Installer(OUI)およびDatabase Configuration Assistant(DBCA)では、SYSおよびSYSTEMのパスワードの入力が要求され、それぞれデフォルトのパスワードである"change_on_install"または"manager"は受け入れられません。

    データベースを手動で作成する場合は、これらのデフォルト・パスワードを使用しないで、SYSSYSTEMのパスワードをデータベースの作成時に指定することをお薦めします。詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。


日常的な管理タスクを実施するときに使用する管理者ユーザーを最低1つ追加作成し、そのユーザーに適切な管理ロールを付与してください。これらの目的のためにSYSおよびSYSTEMを使用しないでください。


セキュリティ拡張に関する注意:

このリリースのOracle Databaseと以降のリリースで、デフォルトのデータベース・ユーザー・アカウントのセキュリティを確保するために、セキュリティ機能が拡張されています。このリリースのセキュリティ・チェックリストは、『Oracle Databaseセキュリティ・ガイド』にあります。このチェックリストを参照し、その内容に従ってデータベースを構成してください。

SYS

Oracle Databaseを作成すると、ユーザーSYSが自動的に作成され、DBAロールが付与されます。

データベースのデータ・ディクショナリの実表とビューはすべて、SYSスキーマに格納されます。これらの実表およびベース・ビューはOracle Databaseを操作する際に重要となります。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。ユーザーやDBAはそれらの表を修正したり、ユーザーSYSのスキーマ内に表を作成しないでください。(ただし、必要に応じてデータ・ディクショナリ設定の記憶域パラメータを変更することは可能です。)

ほとんどのデータベース・ユーザーに対して、SYSアカウントによるOracle Databaseへの接続を禁止する必要があります。

SYSTEM

Oracle Databaseを作成すると、ユーザーSYSTEMも自動的に作成され、DBAロールが付与されます。

このユーザー名SYSTEMを使用して、管理情報を表示する追加表とビュー、および各種のOracle Databaseのオプションとツール製品で使用される内部表とビューが作成されます。管理ユーザー以外のユーザーに関係する表の格納に、SYSTEMスキーマを使用しないでください。

DBAロール

事前に定義されたDBAロールは、Oracle Databaseのインストールで自動的に作成されます。このロールには、ほとんどのデータベース・システム権限が含まれています。このため、DBAロールは実際のDBAにのみ付与してください。


注意:

DBAロールには、SYSDBAまたはSYSOPERシステム権限が含まれていません。これらは、データベースとインスタンスの起動や停止など、基本的なデータベース管理タスクの実行を管理者に許可する特別な管理権限です。これらのシステム権限については、「管理権限」を参照してください。

データベース管理者の認証

DBAは、データベースの起動や停止などの特別な操作を実行します。これらの操作はDBAのみが実行する必要があるため、DBAのユーザー名には安全性の高い認証方式が必要です。

この項の内容は次のとおりです。

管理権限

管理者が基本的なデータベース操作を実行するために必要な管理権限は、SYSDBAおよびSYSOPERという2つの特別なシステム権限によって付与されます。必要な認可レベルに応じて、どちらか一方の権限をDBAに付与する必要があります。


注意:

SYSDBAおよびSYSOPERは、データベースがオープンでないときもデータベース・インスタンスにアクセスできるシステム権限です。これらの権限の制御は、完全にデータベース機能の範囲外にあります。

SYSDBASYSOPER権限も、他の方法では権限を付与できない特定のデータベース操作を実行するための接続の一種とみなすことができます。たとえば、SYSDBA権限がある場合は、CONNECT AS SYSDBAを指定することでデータベースに接続できます。


SYSDBAとSYSOPER

SYSDBAおよびSYSOPERシステム権限で許可されている操作は、次のとおりです。

システム権限 許可されている操作
SYSDBA
  • STARTUPおよびSHUTDOWN操作の実行
  • ALTER DATABASE: オープン、マウント、バックアップまたはキャラクタ・セットの変更

  • CREATE DATABASE

  • DROP DATABASE

  • CREATE SPFILE

  • ALTER DATABASE ARCHIVELOG

  • ALTER DATABASE RECOVER

  • RESTRICTED SESSION権限を含む

実際は、このシステム権限を使用することにより、ユーザーSYSとして接続できます。

SYSOPER
  • STARTUPおよびSHUTDOWN操作の実行
  • CREATE SPFILE

  • ALTER DATABASE OPEN/MOUNT/BACKUP

  • ALTER DATABASE ARCHIVELOG

  • ALTER DATABASE RECOVER(完全リカバリのみ。UNTIL TIME|CHANGE|CANCEL|CONTROLFILEなど、不完全リカバリの形式では、SYSDBAで接続する必要があります。)

  • RESTRICTED SESSION権限を含む

この権限を使用すると、ユーザー・データの表示を除く基本操作を実行できます。


これらの権限の使用を許可する方法は、使用する認証方式によって異なります。

SYSDBAまたはSYSOPER権限で接続した場合は、一般的にユーザー名に対応付けられているスキーマではなく、デフォルトのスキーマで接続します。このスキーマは、SYSDBAの場合はSYSSYSOPERの場合は、PUBLICです。

管理権限での接続: 例

この例では、ユーザーがSYSDBAシステム権限で接続したときに、他のスキーマ(SYS)に割り当てられることを説明します。SYSDBAシステム権限が付与されているサンプル・ユーザーoeが、次の文を発行したとします。

CONNECT oe
CREATE TABLE admin_test(name VARCHAR2(20));

後で、ユーザーoeが次の文を発行します。

CONNECT oe AS SYSDBA
SELECT * FROM admin_test;

ユーザーoeは次のエラー・メッセージを受け取ります。

ORA-00942: table or view does not exist 

SYSDBAで接続しているため、ユーザーoeは現在SYSスキーマを参照していますが、表はoeスキーマに作成されています。

データベース管理者の認証方式の選択

DBAは、他のユーザーと同様に(アカウント・パスワードを使用して)、データ・ディクショナリを介してデータベース管理者を認証できます。Oracle Database 11g リリース1からは、データベース・パスワードは大/小文字が区別されることに注意してください。(SEC_CASE_SENSITIVE_LOGON初期化パラメータをFALSEに設定すると、大/小文字の区別を無効にして、リリース11gより前の動作に戻すことができます。)

通常のデータ・ディクショナリ認証に加えて、SYSDBAまたはSYSOPER権限のあるDBAの認証には、次の方法を使用できます。

  • オペレーティング・システム(OS)認証

  • パスワード・ファイル

  • Oracle Internet Directoryなどのネットワーク・ベースの認証サービスを使用した厳密認証

これらの方式は、データベースが起動していない場合や使用できない場合にデータベース管理者を認証する際に必要になります。(データベースが使用可能な場合にも使用できます。)

ここからは、オペレーティング・システム認証とパスワード・ファイル認証について説明します。ネットワーク・ベースの認証を使用してデータベース管理者を認証する方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。


注意:

  • これらの認証方式は、旧バージョンのOracle Databaseで提供されていたCONNECT INTERNAL構文にかわるものです。CONNECT INTERNALは現在サポートされていません。

  • オペレーティング・システム認証は、パスワード・ファイル認証より優先されます。オペレーティング・システム認証の要件を満たしている場合は、パスワード・ファイルを使用している場合でもオペレーティング・システム認証によって認証されます。


データベースと同じシステム上でデータベースをローカルで管理するか、または単一のリモート・クライアントから複数の異なるデータベースを管理するかによって、選択が決まります。図1-2は、データベース管理者用に選択できる認証方式を示しています。

図1-2 データベース管理者の認証方式

図1-2の説明が続きます
「図1-2 データベース管理者の認証方式」の説明

リモート・データベース管理の場合は、Oracle Net関連マニュアルを参照して、セキュリティで保護された接続を使用しているかどうかを判断してください。TCP/IPやDECnetなどの最も一般的な接続プロトコルは、セキュリティによって保護されていません。


関連項目:

  • ネットワーク・ベースの認証を使用してデータベース管理者を認証する方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

  • 『Oracle Database Net Services管理者ガイド』


セキュリティで保護されていないリモート接続

セキュリティで保護されていない接続で、権限を持つユーザーとしてOracle Databaseに接続するには、パスワード・ファイルによる認証を受ける必要があります。パスワード・ファイル認証を使用すると、SYSDBAまたはSYSOPERシステム権限を付与されたデータベース・ユーザー名を追跡管理するために、パスワード・ファイルが使用されます。この認証方式については、「パスワード・ファイル認証の使用」を参照してください。

ローカル接続およびセキュリティで保護されたリモート接続

ローカル接続またはセキュリティで保護されたリモート接続で、権限を持つユーザーとしてOracle Databaseに接続するには、次の2通りの方法があります。

  • データベースにパスワード・ファイルがあり、ユーザーがSYSDBAまたはSYSOPERシステム権限を付与されている場合は、パスワード・ファイルを使用して接続し、認証を受けることができます。

  • サーバーでパスワード・ファイルを使用していない場合や、ユーザーにSYSDBAおよびSYSOPER権限が付与されていないためにパスワード・ファイルにアクセスできない場合は、オペレーティング・システム認証を使用できます。ほとんどのオペレーティング・システムでは、データベース管理者の認証には、データベース管理者のオペレーティング・システム・ユーザー名を特別なグループ(通常は、OSDBAというグループ)に配置する必要があります。このグループのユーザーには、SYSDBA権限が付与されます。類似グループのOSOPERは、ユーザーにSYSOPER権限を付与する場合に使用します。

オペレーティング・システム認証の使用

ここでは、オペレーティング・システムを使用した管理者の認証方法について説明します。

OSDBAとOSOPER

2つの特別なオペレーティング・システム・グループのいずれかにメンバーシップがあると、DBAは、データベースのユーザー名とパスワードを使用するかわりに、オペレーティング・システムを経由してデータベースに対する認証を行うことができます。このことはオペレーティング・システム認証と呼ばれます。一般的に、これらのオペレーティング・システム・グループはOSDBAおよびOSOPERと呼ばれます。各グループはデータベースのインストール・プロセスで作成され、特定の名前が割り当てられます。デフォルトの名前は、次の表に示すようにオペレーティング・システムによって異なります。

オペレーティング・システム・グループ UNIXユーザー・グループ Windowsユーザー・グループ
OSDBA dba ORA_DBA
OSOPER oper ORA_OPER

Oracle Universal Installerではデフォルトの名前が使用されますが、この名前は上書きできます。上書きする理由の1つは、同じホスト・コンピュータ上で複数のインスタンスが実行されている場合です。各インスタンスのプリンシパルDBAを異なるユーザーにする場合は、各インスタンスに対して異なるOSDBAグループを作成することによって、各インスタンスのセキュリティを高めることができます。たとえば、同じホスト上の2つのインスタンスについて、1つ目のインスタンスのOSDBAグループの名前をdba1とし、2つ目のインスタンスのOSDBAの名前をdba2にできます。1人目のDBAはdba1のみのメンバーとし、2人目のDBAはdba2のみのメンバーとします。これにより、オペレーティング・システム認証を使用すると、各DBAは割り当てられたインスタンスに対してのみ接続できます。

OSDBAまたはOSOPERグループでのメンバーシップは、データベースへの接続に次のように影響します。

  • データベースへの接続時に、OSDBAグループに属するユーザーがAS SYSDBAを指定した場合、そのユーザーは、SYSDBAシステム権限でデータベースに接続します。

  • データベースへの接続時に、OSOPERグループに属するユーザーがAS SYSOPERを指定した場合、そのユーザーは、SYSOPERシステム権限でデータベースに接続します。

  • これらのオペレーティング・システム・グループに属していないユーザーがSYSDBAまたはSYSOPERとして接続しようとした場合、CONNECTコマンドを発行するとエラーが発生します。


    関連項目:

    OSDBAおよびOSOPERグループの作成方法の詳細は、使用しているオペレーティング・システム固有のOracleマニュアルを参照してください。

オペレーティング・システム認証を使用するための準備

オペレーティング・システムを使用して管理ユーザーを認証するには、次の手順を実行する必要があります。

  1. ユーザーのオペレーティング・システム・アカウントを作成します。

  2. オペレーティング・システムで定義されたOSDBAまたはOSOPERグループにアカウントを追加します。

オペレーティング・システム認証を使用した接続

次のどちらかのSQL*Plusコマンドを入力すると、ユーザーが管理ユーザーとして認証され、ローカル・データベースに接続できます。

CONNECT / AS SYSDBA
CONNECT / AS SYSOPER

セキュリティで保護された接続を介したリモート・オペレーティング・システム認証がサポートされているのは、Windowsプラットフォームのみです。リモート・データベースのネット・サービス名を指定する必要があります。

CONNECT /@net_service_name AS SYSDBA
CONNECT /@net_service_name AS SYSOPER

クライアント・コンピュータとデータベース・ホスト・コンピュータの両方がWindowsドメイン上にあることが必要です。


関連項目:


パスワード・ファイル認証の使用

ここでは、パスワード・ファイル認証を使用した管理ユーザーの認証方法について説明します。

パスワード・ファイル認証を使用するための準備

パスワード・ファイル認証を使用して管理ユーザーを認証するには、次の手順を実行する必要があります。

  1. 作成していない場合は、次のようにORAPWDユーティリティを使用してパスワード・ファイルを作成します。

    ORAPWD FILE=filename ENTRIES=max_users
    

    詳細は、「パスワード・ファイルの作成とメンテナンス」を参照してください。


    注意:

    • Oracle Databaseのインストール・プロセスでDatabase Configuration Assistant(DBCA)を起動した場合は、DBCAによってパスワード・ファイルが作成されます。

    • Oracle Database 11g リリース1からは、IGNORECASE = Yというコマンドライン引数を組み込まないかぎり、パスワード・ファイル内のパスワードは大/小文字が区別されます。


  2. REMOTE_LOGIN_PASSWORDFILE初期化パラメータをEXCLUSIVEに設定します。(この値がデフォルトです。)


    注意:

    REMOTE_LOGIN_PASSWORDFILEは静的な初期化パラメータであるため、変更するにはデータベースを再起動する必要があります。

  3. ユーザーSYS(または管理権限を持つ他のユーザー)としてデータベースに接続します。

  4. データベース内にユーザーが存在しない場合は、ユーザーを作成し、パスワードを割り当てます。

    Oracle Database 11g リリース1からは、データベース・パスワードは大/小文字が区別されることに注意してください。(SEC_CASE_SENSITIVE_LOGON初期化パラメータをFALSEに設定すると、大/小文字の区別を無効にして、リリース11gより前の動作に戻すことができます。)

  5. 次のコマンドを入力して、ユーザーにSYSDBAまたはSYSOPERシステム権限を付与します。

    GRANT SYSDBA to oe;
    

    この文を実行すると、パスワード・ファイルにユーザーが追加され、AS SYSDBAとして接続できるようになります。


    関連項目:

    パスワード・ファイルの作成とメンテナンスの方法は、「パスワード・ファイルの作成とメンテナンス」を参照してください。

パスワード・ファイル認証を使用した接続

SQL*PlusのCONNECTコマンドを使用すると、管理ユーザーが認証され、ローカルまたはリモート・データベースに接続できます。接続時には、ユーザー名とパスワード、およびAS SYSDBAまたはAS SYSOPER句を指定します。Oracle Database 11g リリース1からは、IGNORECASE = Yオプションを指定してパスワード・ファイルを作成しないかぎり、パスワードは大/小文字が区別されます。

たとえば、ユーザーoeSYSDBA権限を付与されているため、次のコマンドで接続できます。

CONNECT oe AS SYSDBA

しかし、ユーザーoeSYSOPER権限を付与されていないため、次のコマンドは失敗します。

CONNECT oe AS SYSOPER

注意:

オペレーティング・システム認証は、パスワード・ファイル認証より優先されます。具体的には、ユーザーがそのオペレーティング・システムのOSDBAまたはOSOPERグループのメンバーであるときに、SYSDBAまたはSYSOPERとして接続すると、指定したユーザー名/パスワードにかかわらず、関連付けられている管理権限で接続されます。

ユーザーがOSDBAグループにもOSOPERグループにも属しておらず、パスワード・ファイルにも指定されていない場合、SYSDBAまたはSYSOPERとして接続しようとすると失敗します。



関連項目:


パスワード・ファイルの作成とメンテナンス

パスワード・ファイル作成ユーティリティORAPWDを使用して、パスワード・ファイルを作成できます。一部のオペレーティング・システムでは、標準インストール時にこのファイルを作成できます。

この項の内容は次のとおりです。

ORAPWDを使用したパスワードの作成

ORAPWDコマンドの構文は次のとおりです。

ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}]

次の表にコマンドの引数がまとめられています。

引数 説明
FILE パスワード・ファイルに割り当てる名前。完全なパスを指定する必要があります。ファイル名のみを指定した場合、ファイルはカレント・ディレクトリに書き込まれます。
ENTRIES (オプション)ファイルに指定できる最大エントリ(ユーザー・アカウント)数。
FORCE (オプション)yの場合は、既存のパスワード・ファイルが上書きされます。
IGNORECASE (オプション)yの場合、パスワードは大/小文字が区別されません。

等号(=)文字の前後にスペースは使用できません。

SYSのパスワードの入力を求めるコマンド・プロンプトが表示され、作成されたパスワード・ファイルにそのパスワードが保存されます。

次のコマンドを使用すると、orapworclという名前のパスワード・ファイルが作成されます。このパスワード・ファイルでは、30人までの権限を持つユーザーと各ユーザー固有のパスワードを設定できます。

orapwd FILE=orapworcl ENTRIES=30

ORAPWDコマンドライン引数の説明

次の項では、ORAPWDコマンドライン引数について説明します。

FILE

この引数には、作成するパスワード・ファイルの名前を設定します。ファイルにはフルパス名を指定する必要があります。これは必須の引数です。

パスワード・ファイルに必要なファイル名は、オペレーティング・システムによって異なります。一部のオペレーティング・システムでは、パスワード・ファイルを特定の形式で作成して特定のディレクトリに格納する必要があります。また、環境変数を使用してパスワード・ファイルの名前と位置を指定できるオペレーティング・システムもあります。

表1-1は、UNIX、LinuxおよびWindowsプラットフォームにおいてパスワード・ファイルに必要な名前と場所を示しています。その他のプラットフォームについては、プラットフォーム固有のマニュアルを参照してください。

表1-1 UNIX、LinuxおよびWindowsにおけるパスワード・ファイルに必要な名前と場所

プラットフォーム 必要な名前 必要な場所

UNIXとLinux

orapwORACLE_SID

ORACLE_HOME/dbs

Windows

PWDORACLE_SID.ora

ORACLE_HOME\database


たとえば、SIDがorcldwのデータベース・インスタンスの場合、パスワード・ファイルの名前は、Linuxではorapworcldwとなり、WindowsではPWDorcldw.oraとなります。

Oracle Real Application Clusters環境で、環境変数がパスワード・ファイルのパスに設定される必要があるプラットフォームでは、各インスタンスの環境変数は同じパスワード・ファイルを指し示す必要があります。


注意:

パスワード・ファイルやパスワード・ファイルの位置を特定する環境変数の保護は、システムのセキュリティにとって非常に重要です。パスワード・ファイルや環境変数にアクセスできるユーザーは、接続に対するセキュリティを脅かす潜在的な可能性を持っています。

ENTRIES

この引数には、パスワード・ファイルで受け入れるエントリの数を指定します。この数は、データベースにSYSDBAまたはSYSOPERとして接続できるユーザーの数に対応します。ORAPWDユーティリティでは、オペレーティング・システム・ブロックが一杯になるまでパスワード・エントリの割当てが継続されるため、実際にはユーザー数より多くのエントリを入力できます。たとえば、オペレーティング・システムのブロック・サイズが512バイトの場合は、4つのパスワード・エントリが格納されます。そのため、割り当てられたパスワード・エントリの数は常に4の倍数になります。

パスワード・ファイルにユーザーを追加したり、パスワード・ファイルからユーザーを削除したりすると、エントリは再利用されます。REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEを指定し、ユーザーにSYSDBAおよびSYSOPER権限を付与する場合、この引数は必須です。


注意:

割り当てられたパスワード・エントリ数を超える場合は、新しいパスワード・ファイルを作成する必要があります。この必要が発生しないように、今後必要になると思われるよりも多くのエントリを割り当ててください。

FORCE

この引数をYに設定すると、既存のパスワード・ファイルを上書きできます。同じ名前のパスワード・ファイルがすでに存在している場合に、この引数を省略するかまたはNに設定すると、エラーが返されます。

IGNORECASE

この引数をyに設定すると、パスワードは大/小文字が区別されません。つまり、ログイン時にユーザーが指定するパスワードとパスワード・ファイル内のパスワードを比較するときに、大/小文字は無視されます。


関連項目:

パスワードの大/小文字区別の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

パスワード・ファイルの共有と無効化

初期化パラメータREMOTE_LOGIN_PASSWORDFILEを使用して、パスワード・ファイルが複数のOracle Databaseインスタンス間で共有されるかどうかを制御します。このパラメータを使用して、パスワード・ファイル認証を無効にすることもできます。REMOTE_LOGIN_PASSWORDFILEで認識される値は、次のとおりです。

  • NONE: このパラメータをNONEに設定すると、Oracle Databaseはパスワード・ファイルが存在しない場合と同じように動作します。つまり、セキュリティで保護されていない接続では、権限付きの接続は許可されません。

  • EXCLUSIVE: (デフォルト) EXCLUSIVEのパスワード・ファイルは、1つのデータベースの1つのインスタンスのみが使用できます。EXCLUSIVEのファイルのみ変更を行うことができます。EXCLUSIVEのパスワード・ファイルを使用すると、ユーザーの追加、変更および削除を行えます。また、ALTER USERコマンドを使用して、SYSのパスワードを変更できます。

  • SHARED: SHAREDパスワード・ファイルは、同じサーバーで稼働している複数のデータベース、またはOracle Real Application Clusters(Oracle RAC)データベースの複数のインスタンスで使用できます。SHAREDパスワード・ファイルは変更できません。したがって、SHAREDパスワード・ファイルにはユーザーを追加できません。ユーザーを追加しようとしたり、SYSのパスワードあるいはSYSDBAまたはSYSOPER権限のあるユーザーのパスワードを変更しようとすると、エラーが生成されます。REMOTE_LOGIN_PASSWORDFILEEXCLUSIVEに設定されている間に、SYSDBAまたはSYSOPERシステム権限を必要とするすべてのユーザーをパスワード・ファイルに追加する必要があります。すべてのユーザーを追加した後で、REMOTE_LOGIN_PASSWORDFILESHAREDに変更すると、ファイルを共有できます。

    このオプションは、複数のデータベースまたはOracle RACデータベースを管理する場合に役立ちます。

REMOTE_LOGIN_PASSWORDFILEEXCLUSIVEまたはSHAREDに設定されているときに、パスワード・ファイルが欠落している場合は、REMOTE_LOGIN_PASSWORDFILENONEに設定した場合と同じです。


注意:

REMOTE_LOGIN_PASSWORDFILESHAREDに設定されている場合、SYSのパスワードは変更できません。パスワードを変更しようとすると、エラー・メッセージが発行されます。

管理者パスワードとデータ・ディクショナリとの同期の維持

REMOTE_LOGIN_PASSWORDFILE初期化パラメータをNONEからEXCLUSIVEまたはSHAREDに変更した場合、または別のSYSパスワードを使用してパスワード・ファイルを再作成した場合、データ・ディクショナリ内のパスワードとSYSユーザーのパスワード・ファイルが同じになるようにする必要があります。

SYSパスワードを同期化するには、ALTER USER文を使用してSYSパスワードを変更します。ALTER USER文により、ディクショナリとパスワード・ファイルのパスワードは更新されて同期化されます。

SYSDBAまたはSYSOPER権限を使用してログインするSYS以外のユーザーのパスワードを同期化するには、次に示すように、ユーザーの権限を取り消して再度付与する必要があります。

  1. SYSDBA権限を付与されているすべてのユーザーを特定します。

    SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSDBA='TRUE';
    
  2. これらのユーザーのSYSDBA権限を取り消して再度付与します。

    REVOKE SYSDBA FROM non-SYS-user;
    GRANT SYSDBA TO non-SYS-user;
    
  3. SYSOPER権限を付与されているすべてのユーザーを特定します。

    SELECT USERNAME FROM V$PWFILE_USERS WHERE USERNAME != 'SYS' AND SYSOPER='TRUE';
    
  4. これらのユーザーのSYSOPER権限を取り消して再度付与します。

    REVOKE SYSOPER FROM non-SYS-user;
    GRANT SYSOPER TO non-SYS-user;
    

パスワード・ファイルへのユーザーの追加

ユーザーにSYSDBAまたはSYSOPER権限を付与すると、そのユーザーの名前と権限情報がパスワード・ファイルに追加されます。データベースにEXCLUSIVEパスワード・ファイルがない場合、つまり、初期化パラメータREMOTE_LOGIN_PASSWORDFILENONEまたはSHAREDであるか、パスワード・ファイルが欠落している場合は、これらの権限を付与しようとするとエラーが発行されます。

ユーザーがこの2つの権限のうち1つでも持っている間は、そのユーザーの名前がパスワード・ファイルに残っています。これらの権限を両方とも取り消すと、Oracle Databaseによって、そのユーザーはパスワード・ファイルから削除されます。

パスワード・ファイルを作成した新規ユーザーの追加方法

パスワード・ファイルを作成して新規ユーザーを追加するには、次の手順を実行します。

  1. 「ORAPWDを使用したパスワードの作成」に記載されている指示に従って、パスワード・ファイルを作成します。

  2. REMOTE_LOGIN_PASSWORDFILE初期化パラメータをEXCLUSIVEに設定します。(デフォルト値。)


    注意:

    REMOTE_LOGIN_PASSWORDFILEは静的な初期化パラメータであるため、変更するにはデータベースを再起動する必要があります。

  3. 次の例に示すように、SYSDBA権限で接続し、プロンプトが表示されたらSYSのパスワードを入力します。

    CONNECT SYS AS SYSDBA
    
  4. 必要であれば、インスタンスを起動してデータベースを作成します。または、既存のデータベースをマウントしてオープンします。

  5. 必要に応じて、ユーザーを登録します。DBA自身、および必要に応じて他のユーザーにSYSDBAまたはSYSOPER権限を付与します。この後の「SYSDBAおよびSYSOPER権限の付与と取消し」を参照してください。

SYSDBAおよびSYSOPER権限の付与と取消し

データベースでEXCLUSIVEパスワード・ファイルを使用している場合は、次の例に示すように、GRANT文を使用して、ユーザーにSYSDBAまたはSYSOPERシステム権限を付与します。

GRANT SYSDBA TO oe;

ユーザーのSYSDBAまたはSYSOPERシステム権限を取り消すには、次のようにREVOKE文を使用します。

REVOKE SYSDBA FROM oe;

SYSDBASYSOPERは最も強力なデータベース権限であるため、GRANT文でWITH ADMIN OPTIONは使用しません。つまり、権限受領者が、さらに別のユーザーにSYSDBAまたはSYSOPER権限を付与することはできません。現在SYSDBAとして接続しているユーザーのみが、別のユーザーのSYSDBAまたはSYSOPERシステム権限を付与したり取り消すことができます。ロールはデータベースが起動してから使用できるようになるため、これらの権限はロールには付与できません。SYSDBAおよびSYSOPERデータベース権限と、オペレーティング・システムのロールを混同しないでください。


関連項目:

システム権限の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

パスワード・ファイル・メンバーの表示

SYSDBASYSOPERSYSASMのいずれかのシステム権限を付与されているユーザーを確認するには、V$PWFILE_USERSビューを使用します。このビューで表示される列は、次のとおりです。

説明
USERNAME パスワード・ファイルで認識されるユーザー名。
SYSDBA この列の値がTRUEの場合、そのユーザーはSYSDBAシステム権限でログインできます。
SYSOPER この列の値がTRUEの場合、そのユーザーはSYSOPERシステム権限でログインできます。
SYSASM この列の値がTRUEの場合、そのユーザーはSYSASMシステム権限でログインできます。


注意:

SYSASMは、Oracle Automatic Storage Managementインスタンスにのみ有効です。

パスワード・ファイルのメンテナンス

この項の内容は、次のとおりです。

  • パスワード・ファイルがいっぱいになった場合の、パスワード・ファイルのユーザー数の追加

  • パスワード・ファイルの削除

パスワード・ファイルのユーザー数の追加

ユーザーにシステム権限SYSDBAまたはSYSOPERを付与しようとしたときに、ファイルが満杯であるためにエラーが出力された場合は、よりサイズの大きいデータベース・パスワード・ファイルを作成し、ユーザーに再度権限を付与する必要があります。

パスワード・ファイルの置換

パスワード・ファイルを置換するには、次の手順を実行します。

  1. V$PWFILE_USERSビューを問い合せて、どのユーザーがSYSDBAまたはSYSOPER権限を持っているかを確認します。

  2. 既存のパスワード・ファイルを削除します。

  3. 「ORAPWDを使用したパスワードの作成」の指示に従って、ORAPWDユーティリティを使用してパスワード・ファイルを新しく作成します。ENTRIESパラメータには、必要と思われる数よりも大きい数を指定してください。

  4. 「パスワード・ファイルへのユーザーの追加」の指示に従います。

パスワード・ファイルの削除

ユーザー認証にパスワード・ファイルを使用する必要がなくなったと判断した場合は、パスワード・ファイルを削除して、REMOTE_LOGIN_PASSWORDFILE初期化パラメータを必要に応じてNONEにリセットできます。このファイルを削除した後は、オペレーティング・システムによって認証されたユーザーのみがSYSDBAまたはSYSOPERデータベース管理の操作を実行できます。

データ・ユーティリティ

Oracle Databaseのデータのメンテナンスに役立つOracleユーティリティが用意されています。

SQL*Loader

SQL*Loaderは、Oracle Databaseのデータベース管理者とその他のユーザーの両方が使用します。これは、標準的なオペレーティング・システム・ファイル(テキスト形式やCデータ形式のファイルなど)からデータベース表にデータをロードします。

エクスポート・ユーティリティとインポート・ユーティリティ

データ・ポンプ・ユーティリティを使用すると、データをアーカイブしたり、Oracle Database間でデータを移動できます。また、従来のインポート(IMP)およびエクスポート(EXP)ユーティリティを使用して、以前のリリースとの間でデータをインポートおよびエクスポートできます。


関連項目:

これらのユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください。