| Oracle Database 管理者ガイド 11gリリース1(11.1) E05760-03 |
|
この章の内容は次のとおりです。
ユーザーのタイプとその役割および責任は、データベース・サイトによって異なります。小規模のサイトでは、1名のデータベース管理者を配置して、アプリケーション開発者およびユーザー向けのデータベースを管理できます。大規模なサイトでは、データベース管理者の役割を複数の人および複数の専門グループに分割する必要があります。
各データベースには、少なくとも1名のDBAが必要です。Oracle Databaseシステムは規模が大きく、多数のユーザーによって使用される可能性があります。したがって、1名の担当者ではデータベースを管理できないため、複数のDBAでグループを編成して役割を分担します。
DBAが担当するタスクは次のとおりです。
サイトによっては、データベースに1名以上のセキュリティ管理者が必要です。セキュリティ管理者は、ユーザーの登録、データベースに対するユーザー・アクセスの制御と監視およびシステム・セキュリティのメンテナンスを実施します。したがって、サイトにセキュリティ管理者が別にいる場合、DBAはこれらの業務に対する役割を持ちません。セキュリティ管理者の業務の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
サイトによっては、1名以上のネットワーク管理者がいる場合があります。たとえば、ネットワーク管理者は、Oracle Net ServicesなどのOracleネットワーク製品を管理します。ネットワーク管理者の業務の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。
アプリケーション開発者は、データベース・アプリケーションを設計し、実装します。アプリケーション開発者が担当するタスクは、次のとおりです。
アプリケーション開発者は、これらのタスクの一部をDBAと協力して実施する場合があります。アプリケーション開発タスクの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。
Oracle Databaseのサイトでは、特定のアプリケーションを管理するために1名以上のアプリケーション管理者が必要な場合があります。アプリケーションごとに専門の管理者を置く場合があります。
データベース・ユーザーは、アプリケーションまたはユーティリティを介してデータベースと対話します。一般ユーザーが担当するタスクは、次のとおりです。
次のタスクは、Oracle Databaseを設計、実装およびメンテナンスするためのアプローチの優先度を表しています。
タスク2: Oracle Databaseソフトウェアのインストール
次の項で、これらのタスクについて説明します。
使用可能なコンピュータ・リソースを、Oracle Databaseとそのアプリケーションで最大限に活用するための評価を行います。この評価では、次のような情報を明らかにする必要があります。
データベース管理者は、Oracle Databaseサーバーのソフトウェアとすべてのフロントエンド・ツール、およびデータベースにアクセスするデータベース・アプリケーションをインストールします。分散処理環境インストールでは、データベースが中核となるコンピュータ(データベース)によって制御され、データベース・ツールとアプリケーションがリモート・マシン(クライアント)で実行される場合があります。このような場合は、Oracle Databaseを実行するコンピュータに、リモート・マシンを接続するために必要なOracle Netコンポーネントもインストールする必要があります。
インストールするソフトウェアの詳細は、「Oracle Databaseソフトウェアのリリースの識別」を参照してください。
DBAは、次のことを計画する必要があります。
重要なことは、データベースの論理記憶域構造が、システムのパフォーマンスと様々なデータベース管理操作にどのように影響を及ぼすかについて計画することです。たとえば、表領域を構成するデータファイルの数、各表領域に格納される情報のタイプ、およびデータファイルの物理的な格納先ディスク・ドライブについて、表領域を作成する前に把握しておく必要があります。データベース構造の論理記憶域全体を計画する際は、実際にデータベースを作成し、稼働したときに、この構造によって生じる影響を考慮します。次の項目について、データベースの論理記憶域構造が及ぼす影響を検討してください。
データベース・オブジェクトのリレーショナル設計と、各オブジェクトの記憶特性について計画します。オブジェクトを作成する前に、オブジェクトと各オブジェクトの物理記憶域間の関連について計画を立てることによって、1つの単位としてのデータベースのパフォーマンスを直接制御できます。データベースの拡張計画についても必ず検討してください。
分散データベース環境では、この計画段階が非常に重要です。頻繁にアクセスされるデータの物理的な位置が、アプリケーションのパフォーマンスに大きな影響を及ぼします。
計画段階中に、データベースのバックアップ計画を作成します。バックアップの効率を改善するために、必要に応じて論理記憶域やデータベースの設計を変更します。
リレーショナル・データベース設計および分散データベース設計については、このマニュアルでは取り扱っていません。このような設計上の問題は、業界標準として認められている資料を参照してください。
データベースの論理記憶域構造、オブジェクトおよび整合性制約の作成方法は、第II部「Oracle Databaseの構造と記憶域」および第III部「スキーマ・オブジェクト」を参照してください。
データベース設計が完了すると、データベースを作成し、オープンできます。データベースを作成するには、Database Configuration Assistant(DBCA)を使用してインストール時に作成する方法と、データベースを作成するためのスクリプトを用意する方法があります。
データベースの作成方法については第2章「Oracle Databaseの作成および構成」を、データベース起動時のガイドラインについては第3章「起動と停止」を参照してください。
データベース構造の作成後、データベースに対して予定していたバックアップ計画を実行します。追加のREDOログ・ファイルを作成し、データベース全体の最初のバックアップ(オンラインまたはオフライン)を作成して、その後の定期的なデータベース・バックアップをスケジュールします。
データベース構造のバックアップが完了した後、Oracleのライセンス契約に従ってデータベースのユーザーを登録し、登録したユーザーに対して適切な権限とロールを付与できます。このタスクのガイドラインについては、第6章「ユーザーの管理とデータベースのセキュリティ保護」を参照してください。
データベースを作成して起動し、システム・ユーザーを登録した後、必要なすべての表領域を作成して、計画したデータベースの論理構造を実装できます。表領域の作成を完了すると、データベース・オブジェクトを作成できます。
データベースの論理記憶域構造とオブジェクトの作成方法は、第II部「Oracle Databaseの構造と記憶域」および第III部「スキーマ・オブジェクト」を参照してください。
データベースがすべて実装されたときに、再度バックアップを作成します。定期的にバックアップを作成するようにスケジュールし、また、データベース構造の変更を実装した直後にも必ずデータベースのバックアップを作成するようにします。
データベースのパフォーマンスの最適化は、DBAの日常的な作業の1つです。Oracle Databaseでは、DBAが各種ユーザー・グループへのリソースの割当てを制御できるように、データベース・リソース管理機能が提供されています。データベース・リソース・マネージャについては、第25章「Oracle Database Resource Managerを使用したリソース割当ての管理」を参照してください。
インストール後および定期的に、パッチをダウンロードしてインストールします。パッチは単一の暫定パッチおよびパッチ・セット(またはパッチ・リリース)として使用できます。暫定パッチは個々のソフトウェアの不具合を修正するもので、使用中のインストールに必要な場合と必要ではない場合があります。パッチ・リリースは、すべての顧客に適用される不具合の修正の集合です。パッチ・リリースにはリリース番号が付けられています。たとえば、Oracle Database 10.2.0.0をインストールした場合、最初のパッチ・リリースのリリース番号は10.2.0.1です。
Oracle Databaseのインストールを正しく構成し、チューニングし、パッチを適用してテストした後、そのインストールを他のホストにロール・アウトする必要がある場合があります。ロール・アウトは、次のような場合に行います。
追加の各ホストでインストール、チューニングおよびパッチ適用を実行するかわりに、テスト済のOracle Databaseインストールを他のホストにクローニングすると、時間を節約でき、不整合をなくすことができます。次の2種類のクローニングを使用できます。
Enterprise ManagerのOracleホームのクローニング・ツールを使用すると、Oracleホームを1つ以上の宛先ホストにクローニングできます。また、提供されているスクリプトのセットとOracle Universal Installerを使用して、Oracleホームを手動でクローニングすることもできます。
Enterprise Managerのデータベースのクローニング・ツールを使用すると、Oracleデータベース・インスタンスを既存のOracleホームにクローニングできます。
Oracle Databaseとのやり取りは主にSQL文を発行して行います。Oracle Databaseでは、データベースの起動と停止およびデータベース設定の変更などのコマンドを含む、SQLのスーパーセットもサポートされています。これらのSQL文やコマンドをOracle Databaseに発行する方法は3つあります。
Oracle Enterprise Manager(Enterprise Manager)を使用すると、使いやすいグラフィカル・インタフェースを使用してデータベースを管理できます。SQL文やコマンドは、Enterprise Managerが内部的に発行します。
詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
開発者はSQL Developerを使用してデータベース・スキーマとアプリケーションの作成およびテストをしますが、SQL Developerはデータベースの管理作業にも使用できます。
詳細は、『Oracle Database 2日で開発者ガイド』を参照してください。
この項では、SQL*Plusを使用してSQL文とコマンドをデータベースに発行する方法を中心に説明します。この項の内容は、次のとおりです。
SQL*PlusはOracleデータベースへの主要なコマンドライン・インタフェースです。SQL*Plusは、データベースの起動と停止、データベース初期化パラメータの設定、ユーザーの作成と管理、データベース・オブジェクト(表や索引など)の作成と変更、データの挿入と更新、SQL問合せの実行などを行うために使用します。
SQL文とコマンドを発行する前に、データベースに接続する必要があります。SQL*Plusでは、ローカル接続またはリモート接続が可能です。ローカル接続とは、SQL*Plusを実行しているのと同じコンピュータで動作しているOracleデータベースに接続することです。リモート接続とは、リモート・コンピュータで動作しているOracleデータベースにネットワークを介して接続することです。そのようなデータベースはリモート・データベースと呼ばれます。Oracle Databaseの完全インストール、Oracle ClientのインストールまたはInstant Clientのインストールを行うと、ローカル・コンピュータにSQL*Plus実行可能ファイルが提供されます。
Oracle Databaseのコンポーネントは、次のとおりです。
SQL*Plusを使用して接続するときには、Oracleインスタンスに接続します。各インスタンスには、システムID(SID)とも呼ばれるインスタンスIDがあります。ホスト・コンピュータには、それぞれに独自のデータ・ファイル・セットを持つ複数のOracleインスタンスが存在する場合があるため、接続するインスタンスを識別する必要があります。ローカル接続の場合は、オペレーティング・システムの環境変数を設定してインスタンスを識別します。リモート接続の場合は、ネットワーク・アドレスとデータ・サービス名を指定してインスタンスを識別します。 ローカル接続とリモート接続のいずれの場合も、環境変数を設定して、SQL*Plusの実行可能ファイルをオペレーティング・システムが検出できるようにし、実行可能ファイルにサポート・ファイルとスクリプトへのパスを設定する必要があります。このため、SQL*Plusを使用してOracleインスタンスに接続するには、次の手順を完了する必要があります。
プラットフォームで必要な処理を実行して、オペレーティング・システムのコマンドを入力できるウィンドウを開きます。
| プラットフォーム | 処理 |
|---|---|
|
UNIXとLinux |
ターミナル・セッションのオープン |
|
Windows |
「コマンド プロンプト」ウィンドウのオープン |
プラットフォームによっては、SQL*Plusを起動する前に、環境変数を設定するか少なくとも正しく設定されていることを確認することが必要な場合があります。
たとえば、ほとんどのプラットフォームでは、ORACLE_SIDとORACLE_HOMEを設定する必要があります。さらに、PATH環境変数にORACLE_HOME/binディレクトリを含めるように設定することもお薦めします。一部のプラットフォームでは、さらに環境変数の設定が必要な場合があります。UNIXおよびLinuxプラットフォームでは、オペレーティング・システムのコマンドを入力して環境変数を設定する必要があります。Windowsプラットフォームでは、Windowsレジストリ内のORACLE_HOMEとORACLE_SIDにOracle Universal Installer(OUI)によって値が自動的に割り当てられます。インストール時にデータベースを作成しなかった場合は、レジストリ内のORACLE_SIDがOUIによって設定されないため、後でデータベースを作成するときに、ORACLE_SID環境変数をコマンド・ウィンドウから設定する必要があります。
UNIXおよびLinuxのインストールには、oraenvとcoraenvの2つのスクリプトが含まれています。このスクリプトを使用すると、これらの環境変数を容易に設定できます。詳細は、『Oracle Database管理者リファレンス for UNIX Systems』を参照してください。
いずれのプラットフォームでも、異なるOracleホームを使用するインスタンス間で切り替える場合は、ORACLE_HOME環境変数を変更する必要があります。同じOracleホームを複数のインスタンスで共有している場合は、インスタンスを切り替えるときにORACLE_SIDのみを変更する必要があります。
環境変数およびインスタンスの切替え方法の詳細は、『Oracle Databaseインストレーション・ガイド』または使用しているオペレーティング・システムの管理ガイドを参照してください。
setenv ORACLE_SID orcl
setenv ORACLE_HOME /u01/app/oracle/product/11.1.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=orcl
例1-2では、ORACLE_HOMEがレジストリに設定されており、ORACLE_SIDは設定されていない(または別のインスタンスに接続するためにORACLE_SIDのレジストリ値を上書きする必要がある)と仮定しています。
Windowsでは、コマンド・プロンプト・ウィンドウで設定した環境変数値でレジストリの値が上書きされます。
SQL*Plusを起動する手順は、次のとおりです。
最初にOracleインスタンスに接続するか別のユーザーとして再接続するには、SQL*PlusのCONNECT文を発行します。CONNECT文の構文は、次のとおりです。
CONN[ECT] [logon] [AS {SYSOPER | SYSDBA}]
logonの構文は、次のとおりです。
{username | /}[@connect_identifier]
usernameを入力すると、パスワードの入力を求めるプロンプトがSQL*Plusによって表示されます。パスワードは入力しても画面には表示されません。
次の表で、CONNECT文の構文の構成要素を説明します。
| 構文の構成要素 | 説明 |
|---|---|
|
|
接続要求の外部認証を要請します。このタイプの認証では、データベース・パスワードは使用されません。最も一般的な形式の外部認証はオペレーティング・システム認証です。この場合、特定のホスト・ユーザー・アカウントでホスト・オペレーティング・システムにログインしたことによって、データベース・ユーザーが認証されます。外部認証は、Oracleウォレットやネットワーク・サービスで実行することもできます。 詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。「オペレーティング・システム認証の使用」も参照してください。 |
|
|
|
|
|
有効なデータベース・ユーザー名。 |
|
|
リモート接続用のOracle Net接続識別子。正確な構文はOracle Netの構成によって異なります。省略すると、SQL*Plusはローカル・インスタンスへの接続を試みます。 一般的な接続識別子はnet service nameです。この識別子は、Oracle Net接続記述子(ネットワーク・アドレスとデータベース・サービス名)の別名です。通常、この別名はローカル・コンピュータのtnsnames.oraファイルで解決されますが、他の方法でも解決できます。 接続識別子の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
|
|
代替方法として、簡易接続の構文を接続識別子で使用できます。簡易接続では、クライアント(ローカル)コンピュータでOracle Net Servicesを設定しなくても、すぐにTCP/IP接続が可能になります。 接続識別子の簡易接続の構文は、次のとおりです。 host[:port][/service_name] 各項目の意味は次のとおりです。
簡易接続の詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。 |
次の簡単な例では、ユーザーSYSTEMでローカル・データベースに接続します。SQL*Plusによって、ユーザーSYSTEMのパスワードの入力が求められます。
connect system例 1-4
次の例では、SYSDBA権限のユーザーSYSでローカル・データベースに接続します。SQL*Plusによって、ユーザーSYSのパスワードの入力が求められます。
connect sys as sysdba
ユーザーSYSとして接続するときには、AS SYSDBAを指定して接続する必要があります。
次の例では、オペレーティング・システム認証を使用してローカルに接続します。
connect /例 1-6
次の例では、オペレーティング・システム認証を使用してSYSDBA権限でローカルに接続します。
connect / as sysdba例 1-7
次の例では、簡易接続の構文を使用し、ユーザーsalesadminとして、ホストdb1.mycompany.comで動作するリモート・データベースに接続します。Oracle Netリスナー(リスナー)は、デフォルト・ポート(1521)でリスニングしています。データベース・サービスは、sales.mycompany.comです。SQL*Plusによって、ユーザーsalesadminのパスワードの入力が求められます。
connect salesadmin@db1.mycompany.com/sales.mycompany.com例 1-8
次の例は、デフォルト・ポート番号ではない1522でリスナーがリスニングしていること以外は例1-7と同じです。
connect salesadmin@db1.mycompany.com:1522/sales.mycompany.com例 1-9
次の例では、ユーザーsalesadminとして、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。SQL*Plusによって、ユーザーsalesadminのパスワードの入力が求められます。
connect salesadmin@sales1例 1-10
次の例では、外部認証を使用して、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。
connect /@sales1例 1-11
次の例では、外部認証を使用してSYSDBA権限で、ネット・サービス名sales1によって指定されたデータベース・サービスにリモート接続します。
connect /@sales1 as sysdba
|
関連項目:
|
Oracle Databaseは継続的に開発が進められ、メンテナンスが必要なため、定期的に新リリースが作成されています。すべての顧客が、新リリースを最初に利用したり、既存のリリースに対する特定のメンテナンスを必要とするわけではありません。この結果、複数の製品リリースが同時に存在することになります。
特定のリリースを完全に識別するには、5つの番号が必要です。以降の項では、各番号の意味について説明します。
Oracleで使用されているリリースの命名体系を理解するために、Oracle Databaseのリリース番号「リリース10.1.0.1.0」を例として説明します。
1桁目が最も一般的な識別子です。この番号は、重要な新機能が含まれる、ソフトウェアの主な新規バージョンを表します。
2桁目は、メンテナンス・リリース・レベルを表します。新機能がいくつか含まれている場合もあります。
3桁目には、Oracle Application Server(OracleAS)のリリース・レベルが反映されます。
4桁目では、コンポーネント固有のリリース・レベルが識別されます。この桁の番号は、パッチ・セットや暫定リリースなどに応じてコンポーネントごとに異なる場合があります。
5桁目では、プラットフォーム固有のリリースが識別されます。通常、これはパッチ・セットです。異なるプラットフォームに同等のパッチ・セットが必要な場合、この数字は影響を受けるプラットフォーム間で同じになります。
現在インストールされているOracle Databaseのリリースを識別し、使用している他のデータベース・コンポーネントのリリース・レベルを確認するには、データ・ディクショナリ・ビューPRODUCT_COMPONENT_VERSIONを問い合せます。問合せの例は、次のとおりです(コンポーネント・レベルの情報は、V$VERSIONビューを問い合せて確認することもできます)。他の製品のリリース・レベルは、データベース・サーバーと関係なく増加する場合があります。
COL PRODUCT FORMAT A35 COL VERSION FORMAT A15 COL STATUS FORMAT A15 SELECT * FROM PRODUCT_COMPONENT_VERSION; PRODUCT VERSION STATUS ---------------------------------------- ----------- ----------- NLSRTL 10.2.0.1.0 Production Oracle Database 10g Enterprise Edition 10.2.0.1.0 Prod PL/SQL 10.2.0.1.0 Production ...
オラクル社にソフトウェアの問題を報告する際は、この問合せの結果を伝えることが重要です。
Oracle Database管理者の管理タスクを実行するには、データベースとそのデータベースが稼働するサーバーのオペレーティング・システムで特定の権限が必要です。DBAアカウントへのアクセスは厳しく管理する必要があります。
この項の内容は、次のとおりです。
データベースに対する管理業務の多くを実行するには、オペレーティング・システム・コマンドを実行できる必要があります。Oracle Databaseが稼働するオペレーティング・システムによって異なりますが、オペレーティング・システムにアクセスするには、オペレーティング・システム・アカウント(ID)が必要になります。その場合、そのオペレーティング・システム・アカウントに対しては、他のデータベース・ユーザーには不要なオペレーティング・システム権限やアクセス権(Oracle Databaseソフトウェアのインストールの実行など)が必要になります。Oracle Databaseファイルを自分のアカウント内に格納する必要はありませんが、それらに対するアクセス権は必要です。
Oracle Databaseのインストール時には、次の2つの管理ユーザー・アカウントが自動的に作成されます。
SYS(デフォルトのパスワード: CHANGE_ON_INSTALL)
SYSTEM(デフォルトのパスワード: MANAGER)
Oracle Universal Installer(OUI)およびDatabase Configuration Assistant(DBCA)では、
データベースを手動で作成する場合は、これらのデフォルト・パスワードを使用しないで、
注意:
SYSおよびSYSTEMのパスワードの入力が要求され、それぞれデフォルトのパスワードである"change_on_install"または"manager"は受け入れられません。
SYSとSYSTEMのパスワードをデータベースの作成時に指定することをお薦めします。詳細は、「データベースの保護: ユーザーSYSおよびSYSTEMのパスワードの指定」を参照してください。
日常的な管理タスクを実施するときに使用する管理者ユーザーを最低1つ追加作成し、そのユーザーに適切な管理ロールを付与してください。これらの目的のためにSYSおよびSYSTEMを使用しないでください。
Oracle Databaseを作成すると、ユーザーSYSが自動的に作成され、DBAロールが付与されます。
データベースのデータ・ディクショナリの実表とビューはすべて、SYSスキーマに格納されます。この実表とビューは、Oracle Databaseの操作にとって非常に重要です。データ・ディクショナリの整合性を維持するために、SYSスキーマ内の表はデータベースによってのみ操作されます。ユーザーやDBAはそれらの表を修正したり、ユーザーSYSのスキーマ内に表を作成しないでください。(ただし、必要に応じてデータ・ディクショナリ設定の記憶域パラメータを変更することは可能です)。
ほとんどのデータベース・ユーザーに対して、SYSアカウントによるOracle Databaseへの接続を禁止する必要があります。
Oracle Databaseを作成すると、ユーザーSYSTEMが自動的に作成され、DBAロールが付与されます。
このユーザー名SYSTEMを使用して、管理情報を表示する追加表とビュー、および各種のOracle Databaseのオプションとツール製品で使用される内部表とビューが作成されます。管理ユーザー以外のユーザーに関係する表の格納に、SYSTEMスキーマを使用しないでください。
事前に定義されたDBAロールは、Oracle Databaseのインストールで自動的に作成されます。このロールには、ほとんどのデータベース・システム権限が含まれています。このため、DBAロールは実際のDBAにのみ付与してください。
|
注意:
DBAロールには、 |
DBAは、データベースの起動や停止などの特別な操作を実行します。これらの操作はDBAのみが実行する必要があるため、DBAのユーザー名には安全性の高い認証方式が必要です。
この項の内容は、次のとおりです。
管理者が基本的なデータベース操作を実行するために必要な管理権限は、SYSDBAおよびSYSOPERという2つの特別なシステム権限によって付与されます。必要な認可レベルに応じて、どちらか一方の権限をDBAに付与する必要があります。
SYSDBAおよびSYSOPERシステム権限で許可されている操作は、次のとおりです。
これらの権限の使用を許可する方法は、使用する認証方式によって異なります。
SYSDBAまたはSYSOPER権限で接続した場合は、一般的にユーザー名に対応付けられているスキーマではなく、デフォルトのスキーマで接続します。デフォルトのスキーマは、SYSDBAの場合はSYS、SYSOPERの場合は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: 表またはビューが存在しません。
SYSDBAで接続しているため、ユーザーoeは現在SYSスキーマを参照していますが、表はoeスキーマに作成されています。
DBAは、他のユーザーと同様に(アカウント・パスワードを使用して)、データベースのデータ・ディクショナリを介して認証できます。Oracle Database 11g リリース1からは、データベース・パスワードは大/小文字が区別されることに注意してください(SEC_CASE_SENSITIVE_LOGON初期化パラメータをFALSEに設定すると、大/小文字の区別を無効にして、リリース11gより前の動作に戻すことができます)。
通常のデータ・ディクショナリ認証に加えて、SYSDBAまたはSYSOPER権限のあるDBAの認証には、次の方法を使用できます。
これらの方法は、データベースが起動していない場合、または使用可能でない場合に、DBAを認証するために必要です(データベースが使用可能な場合も使用できます)。
ここからは、オペレーティング・システム認証とパスワード・ファイル認証について説明します。 ネットワーク・ベースの認証を使用してデータベース管理者を認証する方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
データベースと同じマシン上でデータベースをローカルで管理するか、または単一のリモート・クライアントから複数の異なるデータベースを管理するかによって、どちらの認証方式を選択するかが決まります。図1-2は、DBA用に選択できる認証方式を示しています。
リモート・データベース管理の場合は、Oracle Net関連マニュアルを参照して、セキュリティで保護された接続を使用しているかどうかを判断してください。TCP/IPやDECnetなどの最も一般的な接続プロトコルは、セキュリティによって保護されていません。
セキュリティで保護されていない接続で、権限を持つユーザーとしてOracle Databaseに接続するには、パスワード・ファイルによる認証を受ける必要があります。パスワード・ファイル認証を使用すると、SYSDBAまたはSYSOPERシステム権限を付与されたデータベース・ユーザー名を追跡管理するために、パスワード・ファイルが使用されます。 この認証方式については、「パスワード・ファイル認証の使用」を参照してください。
ローカル接続またはセキュリティで保護されたリモート接続で、権限を持つユーザーとしてOracle Databaseに接続するには、次の2通りの方法があります。
SYSDBAまたはSYSOPERシステム権限を付与されている場合は、パスワード・ファイルを使用して接続し、認証を受けることができます。
SYSDBAまたはSYSOPER権限を付与されていないため、パスワード・ファイルに登録されていない場合は、オペレーティング・システム認証を使用できます。ほとんどのオペレーティング・システムでは、データベース管理者のオペレーティング・システム認証のために、データベース管理者のオペレーティング・システム・ユーザー名を特別なグループに登録します。このグループは一般にOSDBAと呼ばれます。そのグループのユーザーには、SYSDBA権限が付与されます。ユーザーにSYSOPER権限を付与するには、同様のグループOSOPERが使用されます。
ここでは、オペレーティング・システムを使用した管理者の認証方法について説明します。
オペレーティング・システム認証を使用する場合は、2つの特別なオペレーティング・システム・グループによってデータベース管理者の接続が制御されます。これらのグループは一般にOSDBAおよびOSOPERと呼ばれます。各グループはデータベースのインストール・プロセスで作成され、特定の名前が割り当てられます。グループの名前は、次の表に示すようにオペレーティング・システムによって異なります。
| オペレーティング・システム・グループ | UNIXユーザー・グループ | Windowsユーザー・グループ |
|---|---|---|
|
OSDBA |
|
|
|
OSOPER |
|
|
Oracle Universal Installerで提示されるデフォルト名は変更できます。OSDBAおよびOSOPERグループは、オペレーティング・システム固有の方法で作成されます。
OSDBAまたはOSOPERグループでのメンバーシップは、データベースへの接続に次のように影響します。
AS SYSDBAを指定した場合、そのユーザーは、SYSDBAシステム権限でデータベースに接続します。
AS SYSOPERを指定した場合、そのユーザーは、SYSOPERシステム権限でデータベースに接続します。
SYSDBAまたはSYSOPERとして接続しようとした場合、CONNECTコマンドを発行するとエラーが発生します。オペレーティング・システムを使用して管理ユーザーを認証するには、次の手順を実行する必要があります。
次のどちらかのSQL*Plusコマンドを入力すると、ユーザーが管理ユーザーとして認証され、ローカル・データベースに接続できます。
CONNECT / AS SYSDBA CONNECT / AS SYSOPER
セキュリティで保護された接続を介したリモート・オペレーティング・システム認証がサポートされているのは、Windowsプラットフォームのみです。リモート・データベースのネット・サービス名を指定する必要があります。
CONNECT /@net_service_name AS SYSDBA CONNECT /@net_service_name AS SYSOPER
クライアント・コンピュータとデータベース・ホスト・コンピュータの両方がWindowsドメイン上にあることが必要です。
ここでは、パスワード・ファイル認証を使用した管理ユーザーの認証方法について説明します。
パスワード・ファイル認証を使用して管理ユーザーを認証するには、次の手順を実行する必要があります。
ORAPWDユーティリティを使用してパスワード・ファイルを作成します。
ORAPWD FILE=filename ENTRIES=max_users
詳細は、「パスワード・ファイルの作成とメンテナンス」を参照してください。
REMOTE_LOGIN_PASSWORDFILE初期化パラメータをEXCLUSIVEに設定します(これはデフォルトです)。SYS(または管理権限を持つ他のユーザー)としてデータベースに接続します。
Oracle Database 11g リリース1からは、データベース・パスワードは大/小文字が区別されることに注意してください(SEC_CASE_SENSITIVE_LOGON初期化パラメータをFALSEに設定すると、大/小文字の区別を無効にして、リリース11gより前の動作に戻すことができます)。
SYSDBAまたはSYSOPERシステム権限を付与します。
GRANT SYSDBA to oe;
この文を実行すると、パスワード・ファイルにユーザーが追加され、AS SYSDBAとして接続できるようになります。
SQL*PlusのCONNECTコマンドを使用すると、管理ユーザーが認証され、ローカルまたはリモート・データベースに接続できます。接続時には、ユーザー名とパスワード、およびAS SYSDBAまたはAS SYSOPER句を指定します。Oracle Database 11g リリース1からは、IGNORECASE = Yオプションを指定してパスワード・ファイルを作成しないかぎり、パスワードは大/小文字が区別されます。
たとえば、ユーザーoeはSYSDBA権限を付与されているため、次のコマンドで接続できます。
CONNECT oe AS SYSDBA
しかし、ユーザーoeはSYSOPER権限を付与されていないため、次のコマンドは失敗します。
CONNECT oe AS SYSOPER
パスワード・ファイル作成ユーティリティORAPWDを使用して、パスワード・ファイルを作成できます。一部のオペレーティング・システムでは、標準インストール時にこのファイルを作成できます。
この項の内容は、次のとおりです。
ORAPWDコマンドの構文は次のとおりです。
ORAPWD FILE=filename [ENTRIES=numusers] [FORCE={Y|N}] [IGNORECASE={Y|N}] [NOSYSDBA={Y|N}]
次の表にコマンドの引数がまとめられています。
等号(=)文字の前後にスペースは使用できません。
SYSのパスワードの入力を求めるコマンド・プロンプトが表示され、作成されたパスワード・ファイルにそのパスワードが保存されます。
次のコマンドを使用すると、orapworclという名前のパスワード・ファイルが作成されます。このパスワード・ファイルでは、30人までの権限を持つユーザーと各ユーザー固有のパスワードを設定できます。
orapwd FILE=orapworcl ENTRIES=30
次の項では、ORAPWDコマンドライン引数について説明します。
この引数には、作成するパスワード・ファイルの名前を設定します。ファイルにはフルパス名を指定する必要があります。ファイル名のみを指定した場合、ファイルはカレント・ディレクトリに書き込まれます。このファイルの内容は暗号化されているため、ユーザーは直接読むことができません。これは必須の引数です。
パスワード・ファイルで許可されているファイル名のタイプは、オペレーティング・システムによって異なります。一部のオペレーティング・システムでは、パスワード・ファイルを特定の形式で作成して特定のディレクトリに格納する必要があります。また、環境変数を使用してパスワード・ファイルの名前と位置を指定できるオペレーティング・システムもあります。UnixおよびLinuxオペレーティング・システムの場合の名前と位置に関する情報は、『Oracle Database管理者リファレンス for UNIX Systems』を参照してください。Windowsの場合は、『Oracle Databaseプラットフォーム・ガイド for Microsoft Windows』を参照してください。その他のオペレーティング・システムについては、使用しているオペレーティング・システムのマニュアルを参照してください。
Oracle Real Application Clustersを使用して複数のOracle Databaseインスタンスを稼働している場合は、各インスタンスの環境変数が同じパスワード・ファイルを指している必要があります。
この引数には、パスワード・ファイルで受け入れるエントリの数を指定します。この数は、データベースにSYSDBAまたはSYSOPERとして接続できるユーザーの数に対応します。ORAPWDユーティリティでは、オペレーティング・システム・ブロックがいっぱいになるまでパスワード・エントリの割当てが継続されるため、実際にはユーザー数より多くのエントリを入力できます。たとえば、オペレーティング・システムのブロック・サイズが512バイトの場合は、4つのパスワード・エントリが格納されます。そのため、割り当てられたパスワード・エントリの数は常に4の倍数になります。
パスワード・ファイルにユーザーを追加したり、パスワード・ファイルからユーザーを削除したりすると、エントリは再利用されます。REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVEを指定し、ユーザーにSYSDBAおよびSYSOPER権限を付与する場合、この引数は必須です。
この引数をYに設定すると、既存のパスワード・ファイルを上書きできます。同じ名前のパスワード・ファイルがすでに存在している場合に、この引数を省略するかまたはNに設定すると、エラーが返されます。
この引数をyに設定すると、パスワードは大/小文字が区別されません。つまり、ログイン時にユーザーが指定するパスワードとパスワード・ファイル内のパスワードを比較するときに、大/小文字は無視されます。
パスワード・ファイルを作成する他に、初期化パラメータREMOTE_LOGIN_PASSWORDFILEを適切な値に設定する必要があります。認識される値は、次のとおりです。
NONE: このパラメータをNONEに設定すると、Oracle Databaseはパスワード・ファイルが存在しない場合と同じように動作します。つまり、セキュリティで保護されていない接続では、権限付きの接続は許可されません。
EXCLUSIVE: (デフォルト)EXCLUSIVEパスワード・ファイルは、1つのデータベースの1つのインスタンスでのみ使用できます。EXCLUSIVEファイルのみ更新可能です。EXCLUSIVEパスワード・ファイルでは、ユーザーを追加、変更および削除できます。また、ALTER USERコマンドを使用してSYSパスワードを変更できます。
SHARED: SHAREDパスワード・ファイルは、同じサーバーで稼働している複数のデータベース、またはOracle Real Application Clusters(RAC)データベースの複数のインスタンスで使用できます。SHAREDパスワード・ファイルは変更できません。つまり、SHAREDパスワード・ファイルにはユーザーを追加できません。ユーザーを追加しようとしたり、SYSのパスワードあるいはSYSDBAまたはSYSOPER権限のあるユーザーのパスワードを変更しようとすると、エラーが生成されます。REMOTE_LOGIN_PASSWORDFILEがEXCLUSIVEに設定されている間に、SYSDBAまたはSYSOPERシステム権限を必要とするすべてのユーザーをパスワード・ファイルに追加する必要があります。すべてのユーザーを追加した後で、REMOTE_LOGIN_PASSWORDFILEをSHAREDに変更すると、ファイルを共有できます。このオプションは、複数のデータベースまたはRACデータベースを管理する場合に役立ちます。
REMOTE_LOGIN_PASSWORDFILEがEXCLUSIVEまたはSHAREDに設定されているときに、パスワード・ファイルが欠落している場合は、REMOTE_LOGIN_PASSWORDFILEをNONEに設定した場合と同じです。
ユーザーにSYSDBAまたはSYSOPER権限を付与すると、そのユーザーの名前と権限情報がパスワード・ファイルに追加されます。データベースにEXCLUSIVEパスワード・ファイルがない場合、つまり、初期化パラメータREMOTE_LOGIN_PASSWORDFILEがNONEまたはSHAREDであるか、パスワード・ファイルが欠落している場合は、これらの権限を付与しようとするとエラーが発行されます。
ユーザーがこの2つの権限のうち1つでも持っている間は、そのユーザーの名前がパスワード・ファイルに残っています。これらの権限を両方とも取り消すと、Oracle Databaseによって、そのユーザーはパスワード・ファイルから削除されます。
パスワード・ファイルを作成して新規ユーザーを追加するには、次の手順を実行します。
REMOTE_LOGIN_PASSWORDFILE初期化パラメータをEXCLUSIVEに設定します(これはデフォルトです)。SYSDBA権限で接続し、プロンプトが表示されたらSYSのパスワードを入力します。
CONNECT SYS AS SYSDBA
SYSDBAまたはSYSOPER権限を付与します。この後の「SYSDBAおよびSYSOPER権限の付与と取消し」を参照してください。
データベースでEXCLUSIVEパスワード・ファイルを使用している場合は、次の例に示すように、GRANT文を使用して、ユーザーにSYSDBAまたはSYSOPERシステム権限を付与します。
GRANT SYSDBA TO oe;
ユーザーのSYSDBAまたはSYSOPERシステム権限を取り消すには、次のようにREVOKE文を使用します。
REVOKE SYSDBA FROM oe;
SYSDBAとSYSOPERは最も強力なデータベース権限であるため、WITH ADMIN OPTIONは、GRANT文で使用されません。つまり、権限受領者が別のユーザーにSYSDBAまたはSYSOPER権限を付与することはできません。現在SYSDBAとして接続しているユーザーのみが、別のユーザーにSYSDBAまたはSYSOPERシステム権限を付与できます。また、別のユーザーのシステム権限を取り消すこともできます。この2つの権限は、ロールには付与できません。ロールはデータベースを起動しないかぎり使用できないためです。SYSDBAとSYSOPERのデータベース権限とオペレーティング・システム・ロールを混同しないでください。
データベースのSYSDBAまたはSYSOPERシステム権限を付与されているユーザーを確認するには、V$PWFILE_USERSビューを使用します。このビューで表示される列は、次のとおりです。
| 列 | 説明 |
|---|---|
|
|
パスワード・ファイルで認識されるユーザー名。 |
|
|
この列の値が |
|
|
この列の値が |
この項の内容は、次のとおりです。
ユーザーにSYSDBAまたはSYSOPERシステム権限を付与しようとしたときに、パスワード・ファイルが満杯(ORA-01996)というエラーが出力された場合は、よりサイズの大きいパスワード・ファイルを作成し、ユーザーに再度権限を付与する必要があります。
パスワード・ファイルを置換するには、次の手順を実行します。
V$PWFILE_USERSビューを問い合せて、どのユーザーがSYSDBAまたはSYSOPER権限を持っているかを確認します。
ORAPWDユーティリティを使用してパスワード・ファイルを新しく作成します。ENTRIESパラメータには、必要と思われる数よりも大きい数を指定してください。
ユーザー認証にパスワード・ファイルを使用する必要がなくなったと判断した場合は、パスワード・ファイルを削除して、REMOTE_LOGIN_PASSWORDFILE初期化パラメータを必要に応じてNONEにリセットできます。このファイルを削除した後は、オペレーティング・システムによって認証されたユーザーのみがSYSDBAまたはSYSOPERデータベース管理の操作を実行できます。
Oracle Databaseのデータのメンテナンスに役立つOracleユーティリティが用意されています。
SQL*Loaderは、データベース管理者とOracle Databaseの他のユーザーの双方によって使用されます。それは、オペレーティング・システムの標準ファイル(テキストやCデータ形式のファイルなど)からデータベース表にデータをロードします。
データ・ポンプ・ユーティリティを使用すると、データをアーカイブしたり、Oracle Databaseの既存のデータを他へ移動することができます。従来のインポート・ユーティリティを使用して以前のリリースからデータをインポートすることも可能です。従来のエクスポート・ユーティリティは、バージョン11gから通常の使用ではサポートされなくなりました。特殊な状況での使用のみにとどめることをお薦めします。