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. |
|