| Oracle Database 2日でデータベース管理者 11g リリース1(11.1) E05759-03 |
|
この章では、ユーザー・アカウントを作成および管理する方法について説明します。内容は次のとおりです。
データベースにアクセスするユーザーに対して、ユーザー・アカウントを作成し、適切なデータベースへのアクセス権限をこれらのアカウントに付与する必要があります。ユーザー・アカウントはユーザー名で識別されます。次のユーザー属性を定義します。
ユーザー・アカウントを作成すると、ユーザー名、パスワード、アカウント用のデフォルト表領域を割り当てるのみでなく、次の手順を実行する必要があります。
各ユーザーには、担当する作業に必要な権限のみを付与する(それ以上は付与しない)ことをお薦めします。たとえば、データベース・アプリケーション開発者には、表、索引、ビューおよびストアド・プロシージャを作成および変更する権限が必要ですが、表領域を削除またはデータベースをリカバリする権限は必要ありません。データベース管理のためのユーザー・アカウントを作成し、一部の管理権限のみをそれらのアカウントに付与することができます。また、アプリケーションからのみ使用できるユーザー・アカウントを作成することもできます。このアカウントでログインできるユーザーはいませんが、アプリケーションがこのアカウントを使用してデータベースに接続し、ユーザーがアプリケーションにログインします。これにより、アプリケーション・ユーザーがデータベースに直接ログインして、不測の事態が発生することを防止します。詳細は、「ユーザー権限およびロールについて」を参照してください。
ユーザー・アカウントを作成すると、ユーザーのためのスキーマも同時に作成されます。スキーマは、表やビュー、トリガーなどの、データベース・オブジェクトの論理的なコンテナです。スキーマ名はユーザー名と同一で、ユーザーが所有するオブジェクトを参照するときに確実に使用できます。たとえば、hr.employeesはhrスキーマ内のemployees表を参照します(employees表はhrによって所有されています)。データベース・オブジェクトおよびスキーマ・オブジェクトという用語は交換可能な用語です。
ユーザーを削除する場合は、同時にすべてのスキーマ・オブジェクトを削除するか、別の操作によってスキーマ・オブジェクトを事前に削除しておく必要があります。
データベースには、作成したユーザー・アカウントに加えて、インストール時に自動的に作成されたユーザー・アカウントが多数含まれます。
すべてのデータベースには、管理アカウントSYS、SYSTEM、SYSMANおよびDBSNMPが含まれています。管理アカウントは高度な権限を持つアカウントであり、データベースの起動および停止、データベース・メモリーおよび記憶域の管理、データベース・ユーザーの作成および管理などの管理タスクを実行する権限のあるユーザーのみが使用できます。Oracle Enterprise Manager Database Control(Database Control)にログインする場合は、SYS、SYSTEMまたはSYSMANを使用します。Database Controlの管理エージェントは、DBSNMPアカウントを使用してデータベースの監視および管理を行います。Database Configuration Assistant(DBCA)でデータベースを作成する際に、これらのアカウントのパスワードを割り当てます。これらのアカウントは削除することができません。
すべてのデータベースには、個別のOracle Databaseの機能またはコンポーネントが固有のスキーマを保持できるように自動的に作成される内部のアカウントも含まれています。例としては、Oracle Ultra Searchで使用するWKSYSアカウントを挙げることができます。すべてのOracle Ultra Searchデータベース・オブジェクトは、WKSYSスキーマにインストールされます。これらのアカウントは、不正アクセスから保護するため、最初はロックされ、パスワードは期限切れになっています(ロックされたアカウントはログインが無効なアカウントです)。内部アカウントは削除できません。また、これらのアカウントを使用してデータベースにログインすることはできません。
データベースにはサンプル・スキーマが含まれています。これは、連結されたスキーマのセットで、共通のデータベース・タスクに関するOracleドキュメントおよび資料を表示できます。また、このスキーマを使用して、本番データを危険にさらさずに試験を行えます。各サンプル・スキーマには関連付けられたユーザー・アカウントがあります。たとえば、hrユーザー・アカウントはhrスキーマを所有します。このスキーマには人事管理アプリケーションの簡単な表のセットがあります。サンプル・スキーマのアカウントは、最初はロックされていて、パスワードが期限切れになっています。データベース管理者は、これらのアカウントのロックを解除しパスワードを割り当てる責任があります。
|
参照:
|
ユーザー権限は基本レベルのデータベース・セキュリティを提供します。ユーザー権限はデータへのユーザーのアクセスの制御およびユーザーが拡張できるSQL文の種類の制限をするように設計されています。ユーザーを作成する場合は、権限を付与してユーザーのデータベースへの接続を有効化、問合せの実行と更新の作成、スキーマ・オブジェクトの作成などを行います。ユーザー権限には次の主な2つのタイプがあります。
CREATE TABLEシステム権限はユーザーと関連付けられたスキーマで表の作成を、CREATE USERシステム権限はユーザーにデータベース・ユーザーの作成を可能にします。
EMPLOYEES表から行を選択する権限、またはDEPARTMENTS表から行を削除する権限などがあります。
ロールを使用すると、権限の管理はより簡単になります。ロールは関連する権限のグループ名が付けられます。ユーザーはロールを作成し、ロールにシステムおよびオブジェクト権限を付与し、その後ユーザーにロールを付与できます。また、他のロールにロールを付与することもできます。スキーマ・オブジェクトとは異なり、ロールはいずれのスキーマにも含まれません。
表7-1に、Oracle Databaseで事前に定義され、広く使用されている3つのロールを示します。この3つのロールは、ユーザーを作成する際、または作成後にいつでも付与できます。
|
参照:
|
管理アカウントおよび管理権限により、ユーザーの管理、データベース・メモリーの管理、データベースの起動および停止などの管理機能を実行できます。
この項の内容は次のとおりです。
次の管理ユーザー・アカウントはOracle Databaseをインストール時に自動的に作成されます。インストールの際に適用したパスワードを使用しても作成できます。どちらも自動的にDBAロールが付与されます。
SYSTEMこのアカウントは、次の例外を除いたすべての管理機能を実行します。
通常の管理タスクを実行するには、このアカウントでログインすることをお薦めします。
SYSこのアカウントでは、すべての管理機能を実行できます。データベースのデータ・ディクショナリ用のすべての実表およびベース・ビューはSYSスキーマに保存されます。これらの実表およびベース・ビューはOracle Databaseを操作する際に重要となります。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。すべてのユーザーまたはデータベース管理者による変更は絶対に行わないでください。また、SYSスキーマ内に表を作成しないでください。
SYSユーザーにはSYSDBA権限が付与され、この権限によりバックアップやリカバリのような高水準な管理タスクを実行できます。
SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。
SYSDBAおよびSYSOPERは、データベースがオープンでないときもデータベース・インスタンスにアクセスできるシステム権限です。これらの権限の制御は完全にデータベース外で行われています。これによりデータベース・インスタンスと接続するこれらの権限の1つを付与されている管理者はデータベースを起動できます。
SYSDBA権限およびSYSOPER権限は、他の方法では権限が付与されない特定のデータベース操作を実行可能にする接続のタイプと考えることもできます。たとえば、SYSDBA権限がある場合、AS SYSDBAを使用してデータベースに接続できます。
SYSユーザーには、インストール時にSYSDBA権限が自動的に付与されます。SYSユーザーでログインすると、SYSDBAとしてデータベースに接続することになります。SYSDBAユーザーとして接続すると、SYSDBA権限が発動されます。Oracle Enterprise Manager Database Controlでは、SYSDBAとして接続しないと、SYSユーザーとしてログインできません。
SYSDBAまたはSYSOPER権限で接続すると、通常ユーザー名に関連付けられているスキーマではなくデフォルトのスキーマで接続が確立されます。このスキーマは、SYSDBAの場合はSYS、SYSOPERの場合は、PUBLICです。
ロールは、関連するシステムおよびオブジェクト権限の名前付きグループです。ロールを作成し、ユーザーおよび他のロールに割り当てます。
この項の内容は次のとおりです。
ロールは、Oracle Enterprise Manager Database Control(Database Control)のロール・ページで確認できます。
SYSTEMです。詳細は、「データベースのホームページのアクセス」を参照してください。
ロール・ページが表示されます。
表示するロールが見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
ロールを選択し、「表示」をクリックします。
ロールの表示ページが表示されます。このページでは、選択済のロールに付与されたすべての権限およびロールを表示できます。
アプリケーション開発者にAPPDEVと呼ばれるロールを作成すると想定します。アプリケーション開発者はアプリケーションで使用するスキーマ・オブジェクトの作成、変更および削除を行う必要があるため、表7-2にあるシステム権限を含むAPPDEVロールを作成します。
ロールの作成ページが表示されます。
APPDEVと入力します。
このロールに対するシステム権限の表にはまだ行は含まれません。
システム権限の変更ページが表示されます。
システム権限サブページに戻り、選択済のシステム権限が表示されます。この時点で、「ロール」をクリックしてAPPDEVロールにその他のロールを割り当てます。または「オブジェクト権限」をクリックしてAPPDEVロールにオブジェクト権限を割り当てます。
APPDEVロールはデータベース・ロール表に表示されます。
Oracle Streams Advanced Queuingをアプリケーションで使用すると想定します。その場合、開発者がアプリケーションの開発およびテストにAQ_ADMINISTRATOR_ROLEおよびAQ_USER_ROLEが必要かどうかを決定します。この2つのAdvanced Queuingロールを付与するには、APPDEVロールを編集する必要があります。
APPDEVロールを選択し、「編集」をクリックします。ロールの編集ページが表示されます。
ロールの変更ページが表示されます。
AQ_ADMINISTRATOR_ROLEおよびAQ_USER_ROLEロールをダブルクリックし、「選択したロール」リストに追加します。
ロール・サブページに戻ります。APPDEVロールに付与された選択したロールが表示されます。
APPDEVロールが正常に変更されたことを含む更新メッセージが表示されます。
ロールを削除する場合は、そのロールが現在1人あるいは複数のユーザーに付与されていても、Database Controlによってロールが削除されるため注意が必要です。ロールを削除する前に、そのロールが付与されているユーザーがいないかどうかを確認します。ロールを削除すると、そのロールを付与されたすべてのユーザーから、そのロールに関連付けられた権限が自動的に削除されます。
該当するロールが見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
ロールを選択できます。
選択したロールが付与されたユーザーを表示したレポートが表示されます。
確認ページが表示されます。
確認メッセージはロールが正常に削除されたことを示します。
この項では、データベースのユーザーおよびアプリケーションのユーザー・アカウントを作成し管理する方法を提供します。内容は次のとおりです。
ユーザー・アカウントは、Oracle Enterprise Manager Database Control(Database Control)のユーザー・ページで確認できます。
SYSTEMです。詳細は、「データベースのホームページのアクセス」を参照してください。
ユーザー・ページが表示されます。
表示するユーザーが見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
ユーザーを選択し、「表示」をクリックします。
ユーザーの表示ページが表示され、すべてのユーザー属性が表示されます。
「firesign007」というパスワードで、Nickという名前のデータベース・アプリケーション開発者用のユーザー・アカウントを作成すると想定します。Nickは開発者であるため、アプリケーションを構築およびテストするために、彼に必要なデータベース権限およびロールを付与する必要があります。また、彼の表領域でスキーマ・オブジェクトを作成できるようにデフォルト表領域に10MBの領域割当て制限を付与する必要があります。
ユーザーの作成ページが表示されます。一般サブページが表示されます。
NICKと入力します。
DEFAULTを許可します。これによりデフォルトのパスワード・ポリシーがユーザーNickに割り当てられます。詳細は、「データベースのパスワード・ポリシーの設定」を参照してください。
Passwordを許可します。認証方法の詳細は、『Oracle Database 2日でセキュリティ・ガイド』を参照してください。
USERS表領域を選択し、「選択」をクリックします。Nickが作成するすべてのスキーマ・オブジェクトは、他を指定しないかぎりUSERS表領域に作成されます。「デフォルト表領域」フィールドを空白のままにしてある場合、Nickは新しくインストールするデータベースのUSERSのデフォルト表領域を割り当てられます。USERS表領域の詳細は、「表領域について」を参照してください。
TEMP表領域を選択し、「選択」をクリックします。「一時表領域」フィールドが空白の場合、nickは新しくインストールされたデータベースのTEMPというデフォルト一時表領域に割り当てられます。TEMP表領域の詳細は、「表領域について」を参照してください。
ユーザー・アカウントを使用されないように後でロックできます。ユーザー・アカウントの削除によりユーザーが所有するすべてのスキーマ・オブジェクトも同時に削除されてしまうのを防ぐため、一時的にユーザー・アカウントへのアクセスを拒否するにはユーザー・アカウントを削除せずにロックします。
USERS表領域に割り当てます。
既存のユーザー・アカウントと同様の属性のユーザー・アカウントを作成する場合は、既存のユーザー・アカウントを複製します。
ユーザーの作成ページが表示されます。このページには複製されたユーザーとして同じ属性を持った新しいユーザーが表示されます。
「アクション」リストは他のアクションへのショートカットおよびユーザーの作成に使用されるSQLコマンドを表示する方法を示します。
Nickという名前のユーザー・アカウントの作成および変更を行うと想定します。Nickはデータベース・アプリケーション開発者であり、自身のスキーマでデータベース・オブジェクトを作成できるように、APPDEVロールを付与する必要があります(「例: ロールの作成」でAPPDEVロールを作成済です)。また、自身のスキーマ以外のスキーマで表やビューを作成できるようにする場合は、CREATE ANY TABLEおよびCREATE ANY VIEWのシステム権限を付与します。また、Nickが人事管理アプリケーションの開発者である場合は、hrサンプル・スキーマにある表を例として使用できるように、これらの表のSELECTオブジェクト権限を付与する必要もあります。最後に、データベース・オブジェクトの作成および管理用のGraphical User Interfaceを使用できるDatabase Controlへのログインを可能にするため、SELECT ANY DICTIONARYシステム権限を付与する必要があります。次の表は、Nickに付与する権限およびロールを示しています。
| 権限付与タイプ | 権限またはロール名 |
|---|---|
|
システム権限 |
|
|
オブジェクト権限 |
|
|
ロール |
|
次の例はNickのユーザー・アカウントの作成およびアカウントの編集のプロセスがすでに終わったと想定しています。つまり、ユーザーの作成ページへすでにアクセスし、一般サブページで必要なすべてのフィールドを入力し(「例: ユーザー・アカウントの作成」を参照)、またはNickの修正のためユーザーの編集ページへアクセスした(「例: ユーザー・アカウントの変更」を参照)とします。また、この例ではNickに権限またはロールをまだ付与していないとします。
ロール・サブページはNickに割り当てたCONNECTロールを表示します。Database Controlは作成したすべてのユーザーにこのロールを自動的に割り当てます(選択した「デフォルト」チェック・ボックスはCONNECTロールがNickのデフォルト・ロールであることを示しています。これはNickがログインするたびに自動的に有効になるということです)。
ロールの変更ページが表示されます。
APPDEVロールの場所を指定し、ダブルクリックして「選択したロール」リストに追加し、「OK」をクリックします。ユーザーの作成ページまたはユーザーの編集ページに戻ります。Nickに付与したCONNECTおよびAPPDEVロールが表示されます。
システム権限の変更ページが表示されます。
CREATE ANY TABLE、CREATE ANY VIEWおよびSELECT ANY DICTIONARY権限の場所を指定し、それぞれをダブルクリックして「選択したシステム権限」リストに追加し、「OK」をクリックします。ユーザーの作成ページまたはユーザーの編集ページに戻ります。新しい追加されたシステム権限が表示されます。
表オブジェクト権限の追加ページが表示されます。
表オブジェクトの選択ダイアログ・ボックスが表示されます。
HRを選択し、「実行」をクリックします。hrスキーマのすべての表が表示されます。
「表オブジェクトの選択」ダイアログ・ボックスが閉じると、表オブジェクト権限の追加ページ上の「表オブジェクトの選択」フィールドに、hrスキーマ内のすべての表の名前が表示されます。
SELECT権限をダブルクリックして「選択した権限」リストに移動し、「OK」をクリックします。ユーザーの作成ページまたはユーザーの編集ページに戻ります。ユーザーNickに付与されたすべてのhr表に対するSELECTオブジェクト権限が表示されます。
Nickという名前のユーザー・アカウントを作成、変更しているとします。Nickのデフォルト表領域に10MBの領域使用量の割当て制限を配分します。
Nickが表領域にオブジェクトを作成できるように、デフォルト表領域上にNickの表領域の割当て制限を割り当てる必要があります(これは他の表領域にオブジェクトを作成する場合も同様です)。Nickに特定の表領域を割り当てた後は、Nickの全オブジェクトが消費する領域の合計は、その表領域内で割当て制限を超えることはできません。UNLIMITEDの割当て制限を割り当てることもできます。
次の例は、Nickのユーザー・アカウントの作成およびアカウントの編集を行っている途中であるとします。つまり、ユーザーの作成ページから、一般サブページのすべての必要なフィールドを入力したか(「例: ユーザー・アカウントの作成」を参照)、またはNickのユーザーの編集ページ(「例: ユーザー・アカウントの変更」を参照)を使用したことがあるとします。また、この例では、Nickには表領域の割当て制限が指定されていないものとします。
ユーザーNickはどの表領域でも割当て制限を持っていないことを示している割当て制限サブページが表示されます。
「割当て制限」列でリストからValueを選択します。
「値」列に、10を入力します。
ユーザーNickのデフォルトの表領域であるUSERSの割当て制限を削除すると想定します。そのためには、ユーザーNickのアカウントを変更する必要があります。
Nickというユーザー名が見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
Nickのユーザー・アカウントを選択し、「編集」をクリックします。
ユーザーの編集ページが表示され、Nickの一般属性が表示されます。
「割当て制限」列でリストから「無制限」を選択し、「適用」をクリックします。ユーザーNickが正常に変更されたことを示すメッセージが表示されます。
特定のユーザー・アカウントに対してデータベースへのアクセスを一時的に拒否するには、ユーザー・アカウントをロックします。そのユーザーが接続しようとしても、データベースによってエラー・メッセージが表示され、接続は許可されません。そのユーザーに対して再度データベースへのアクセスを許可する場合は、ユーザー・アカウントのロックを解除します。
対象のユーザー・アカウントが見つからない場合は、他のページに存在する可能性があります。この場合は、「次へ」ボタンをクリックして他のページを表示するか、ページの「検索」領域を使用して、対象のユーザー・アカウントを検索します。
確認メッセージが表示されます。
パスワードの期限が切れた場合、ユーザーは次回ログイン時にパスワードを変更するよう求められます。次の場合にパスワードの期限が切れます。
3番目の場合、ユーザー・アカウントを変更し、新規の一時パスワードを割り当て、パスワードを無効にします。一時パスワードでログインすると、新しいパスワードを選択するように要求されます。
該当するユーザー・アカウントが見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
ユーザー・アカウントを選択できます。
確認メッセージが表示されます。
Nickという名前のユーザーが他の部門に移動したと想定します。今後データベースにアクセスする必要がなくなるので、Nickという名前のユーザーのアカウントを削除します。
ユーザー・アカウントを削除するときには、そのユーザーが所有しているすべてのスキーマ・オブジェクトも削除されるため、注意が必要です。スキーマ・オブジェクトを残したままで、ユーザーがデータベースにログインできないようにするには、ユーザー・アカウントをロックします。「ユーザー・アカウントのロックおよびロック解除」を参照してください。
ユーザー・アカウントNickが見つからない場合、他のページに存在する可能性があります。この場合、次のいずれかの操作を行います。
Nickのユーザー・アカウントを選択し、「削除」をクリックします。
確認ページが表示されます。
この項では、データベース内のすべてのユーザー・アカウントに対してパスワード・ポリシーを設定する際の前提知識と手順を説明します。内容は次のとおりです。
ユーザー・アカウントを作成すると、デフォルト・パスワード・ポリシーが割り当てられます。新規にインストールされたデータベースに対するこのデフォルト・パスワード・ポリシーには、次の指定があります。
デフォルト・パスワード・ポリシーはプロファイルと呼ばれるデータベース・オブジェクトを使用してユーザー・アカウントに割り当てられます。各ユーザー・アカウントにプロファイルが割り当てられ、そのプロファイルには、パスワード・ポリシーの指定とともに、多くの属性があります。データベースにはDEFAULTという名前のデフォルト・プロファイルがあり、ユーザー・アカウントを作成する際に、他のプロファイルを指定しないかぎり、そのデフォルト・プロファイルがユーザー・アカウントに対して割り当てられます。
データベース・セキュリティを向上させるには、パスワード・ポリシーに厳しい制約を設ける必要がある場合があります。たとえば、パスワードの期限を70日に設定したり、また3回ログインに失敗すると、ユーザー・アカウントがロックされるように設定することが可能です(ユーザー・アカウントのログインの失敗は、ユーザーが不正なパスワードをアカウントに入力した場合に発生します)。また、パスワードを推定してシステムに入ろうとする侵入者から、十分に保護するために、パスワードを複雑に設定するように要求することもできます。たとえば、パスワードに少なくとも1文字の数字および1文字の句読点が含まれるように指定できます。
DEFAULTプロファイルのパスワード関連属性を変更することによって、データベース内のすべてのユーザー・アカウントのパスワード・ポリシーを変更します。
プロファイル名DEFAULTのパスワード関連属性を変更し、すべてのデータベース・ユーザー・アカウントのデフォルトのパスワード・ポリシーを変更します。
詳細は、「データベースのホームページのアクセス」を参照してください。
プロファイル・ページが表示されます。
DEFAULTと呼ばれるプロファイルを選択し、「編集」をクリックします。プロファイルの編集ページが表示されます。
Oracle by Example(OBE)には、このマニュアルに関するシリーズが含まれています。このOBEでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。
ユーザーに関するOBEを参照するには、ご使用のブラウザで次のURLを指定します。
http://www.oracle.com/technology/obe/11gr1_2day_dba/users/users.htm
|
![]() Copyright © 2004, 2008, Oracle Corporation. All Rights Reserved. |
|