7 ユーザー・アカウントおよびセキュリティの管理

この章では、Oracle Enterprise Manager Database Express (EM Express)を使用してユーザー・アカウントを作成および管理する方法について説明します。内容は次のとおりです。

7.1 ユーザー・アカウントについて

データベースにアクセスするユーザーに対して、ユーザー・アカウントを作成し、適切なデータベースへのアクセス権限をこれらのアカウントに付与する必要があります。ユーザー・アカウントはユーザー名で識別されます。次のユーザー属性を定義します。
  • 認証方式

  • データベース認証パスワード

  • 永続および一時データ記憶域のデフォルト表領域

  • 表領域の割当て制限

  • アカウント・ステータス(ロックまたはロック解除)

  • パスワード・ステータス(有効または無効)

ユーザー・アカウントを作成すると、ユーザー名、パスワード、アカウント用のデフォルト表領域を割り当てるのみでなく、次の手順を実行する必要があります。

  • アカウントに適切なシステム権限、オブジェクト権限およびロールを付与します。

  • ユーザーがデータベース・オブジェクトを作成する場合、オブジェクトが作成される各表領域のユーザー・アカウントに領域使用量の割当て制限を設定します。

各ユーザーには、担当する作業に必要な権限のみを付与する(それ以上は付与しない)ことをお薦めします。たとえば、データベース・アプリケーション開発者には、表、索引、ビューおよびストアド・プロシージャを作成および変更する権限が必要ですが、表領域を削除またはデータベースをリカバリする権限は必要ありません。データベース管理のためのユーザー・アカウントを作成し、一部の管理権限のみをそれらのアカウントに付与することができます。

また、アプリケーションからのみ使用できるユーザー・アカウントを作成することもできます。このアカウントでログインできるユーザーはいませんが、アプリケーションがこのアカウントを使用してデータベースに接続し、ユーザーがアプリケーションにログインします。このタイプのユーザー・アカウントでは、アプリケーション・ユーザーがデータベースに直接ログインして、不測の事態が発生することを防止します。詳細は、ユーザー権限およびロールについてを参照してください。

ユーザー・アカウントを作成すると、そのユーザーのためのスキーマも同時に作成されます。スキーマは、表やビュー、トリガーなどの、データベース・オブジェクトの論理的なコンテナです。スキーマ名はユーザー名と同一で、ユーザーが所有するオブジェクトを参照するときに確実に使用できます。たとえば、hr.employeesは、hrスキーマでemployeesという名前の表を参照します。(employees表はhrによって所有されます。)データベース・オブジェクトおよびスキーマ・オブジェクトという用語は同じ意味で使用されます。

ユーザーを削除する場合は、同時にすべてのスキーマ・オブジェクトを削除するか、別の操作によってスキーマ・オブジェクトを事前に削除しておく必要があります。

事前定義されたユーザー・アカウント

データベースには、作成したユーザー・アカウントに加えて、インストール時に自動的に作成された複数のユーザー・アカウントが含まれます。

すべてのデータベースには、管理アカウントSYSSYSTEMおよびDBSNMPが含まれています。管理アカウントは高度な権限を持つアカウントであり、データベースの起動と停止、データベース・メモリーと記憶域の管理、データベース・ユーザーの作成と管理などの管理タスクを実行する権限のあるユーザーのみに必要です。Oracle Enterprise Manager Database Express (EM Express)にログインする場合は、SYSまたはSYSTEMを使用します。Database Configuration Assistant(DBCA)でデータベースを作成する際に、これらのアカウントのパスワードを割り当てます。これらのアカウントは削除することができません。

すべてのデータベースには、個別のOracle Databaseの機能またはコンポーネントが固有のスキーマを保持できるように自動的に作成される内部のアカウントも含まれます。これらのアカウントを権限のないアクセスから保護するために、これらは最初にロックされ、これらのパスワードは期限切れになります(ロックされたアカウントはログインを無効化するアカウントです)。内部アカウントを削除したり、内部アカウントを使用してデータベースにログインする必要はありません。

また、データベースのインストール時にデータベースにサンプル・スキーマを作成するオプションを選択した場合は、データベースにはサンプル・スキーマが含まれています。サンプル・スキーマは、連結されたスキーマのセットで、共通のデータベース・タスクに関するOracleドキュメントおよび資料を表示できます。また、このスキーマを使用して、本番データを危険にさらさずに試験を行えます。

各サンプル・スキーマには関連付けられたユーザー・アカウントがあります。たとえば、hrユーザー・アカウントはhrスキーマを所有します。このスキーマには人事管理アプリケーションの簡単な表のセットがあります。サンプル・スキーマのアカウントは、最初はロックされていて、パスワードが期限切れになっています。データベース管理者は、これらのアカウントのロックを解除しパスワードを割り当てます。

関連項目:

7.1.1 CDBの共通性の概要

マルチテナント・コンテナ・データベース(CDB)では、共通性の基本原則は、既存および将来のどのコンテナにおいても共通の現象が同じであるということです。CDBにおいて「共通」とは「すべてのコンテナに共通」という意味です。一方、ローカルな現象は、厳密に既存の1つのコンテナに限定されます。

この共通性の原則の当然の結果として、共通ユーザーのみが、共通現象の存在を変更できることになります。もっと正確に言えば、ルートに接続した共通ユーザーのみが、共通ユーザーまたは共通ロールのCDB全体にわたる属性を作成、無効化または変更できます。

関連項目:

7.1.1.1 CDBの共通ユーザー

共通ユーザーは、ルートと、既存および将来のすべてのプラガブル・データベース(PDB)で同じIDを持つデータベース・ユーザーです。どの共通ユーザーも、ルートに接続し、ルートと権限を持つすべてのPDBで操作を実行できます。

すべての共通ユーザーは、Oracle提供またはユーザー作成のいずれかです。Oracle提供の共通ユーザーの例は、SYSSYSTEMです。

共通ユーザーには、次の特徴があります。

  • 共通ユーザーは、CREATE SESSION権限を持つどのコンテナ(CDB$ROOTも含む)にもログインできます。

    共通ユーザーは、すべてのコンテナで同じ権限を持つ必要はありません。たとえば、c##dbaユーザーは、ルートおよび1つのPDBでセッション作成の権限を持っているが、別のPDBではセッション作成の権限を持っていないという場合があります。適切な権限を持つ共通ユーザーはコンテナの切替えができるため、ルートの共通ユーザーはPDBを管理できます。

  • ユーザー作成のすべての共通ユーザーの名前は、必ずc##またはC##の文字で始まります。(Oracle提供の共通ユーザー名にはこの制限がありません。)

    ローカル・ユーザー名でc##またはC##の文字で始まる名前はありません。

  • 共通ユーザー名で使用できるのは、ASCIIまたはEBCDIC文字のみです。

  • すべての共通ユーザーには、すべてのコンテナにわたって一意の名前が付けられます。

    共通ユーザーはルートに常駐しますが、同じIDを持つどのPDBにも接続できる必要があります。

  • 共通ユーザーのスキーマは、各コンテナで異なる可能性があります。

    たとえば、c##dbaは複数のコンテナに対して権限を持つ共通ユーザーで、これらの各コンテナのc##dbaスキーマには、異なるオブジェクトが含まれる場合があります。

関連項目:

7.1.1.2 CDBのローカル・ユーザー
ローカル・ユーザーとは、共通ではなく、1つのプラガブル・データベース(PDB)でのみ操作が可能なユーザーです。ローカル・ユーザーには、次の特徴があります。
  • ローカル・ユーザーは、特定のPDB固有で、このPDB内でスキーマを所有します。

  • ローカル・ユーザーは、ルートでは作成できません。

  • あるPDBのローカル・ユーザーは、別のPDBまたはルートにはログインできません。

  • ローカル・ユーザーには、c##またはC##の文字で始まる名前を付けることはできません。

  • ローカル・ユーザーの名前は、PDB内でのみ一意である必要があります。

  • ユーザー名とそのユーザーのスキーマが含まれているPDBにより、一意のローカル・ユーザーが決まります。たとえば、repというローカル・ユーザーとスキーマが、hrpdbというPDBに存在することができます。repという完全に独立したローカル・ユーザーとスキーマが、salespdbというPDBに存在することができます。

  • ローカル・ユーザーが共通スキーマのオブジェクトにアクセスできるかどうかは、それらのユーザー権限によって決まります。

    たとえば、c##dba共通ユーザーは、hrpdb PDB上のc##dbaスキーマで表を作成できます。c##dbaがこの表で必要な権限をローカルのhrユーザーに付与しなければ、hrはこの表にアクセスできません。

関連項目:

7.2 ユーザー権限およびロールについて

ユーザー権限は基本レベルのデータベース・セキュリティを提供します。ユーザー権限はデータへのユーザーのアクセスの制御およびユーザーが拡張できるSQL文の種類の制限をするように設計されています。ユーザーを作成する場合は、権限を付与してユーザーのデータベースへの接続を有効化、問合せの実行と更新の作成、スキーマ・オブジェクトの作成などを行います。

ユーザー権限の主なタイプは次のとおりです

  • システム権限: システム権限は、ユーザーが特定のアクションまたは特定の種類のスキーマ・オブジェクトでアクションを実行できるようにする権限です。たとえば、CREATE TABLEシステム権限はユーザーと関連付けられたスキーマで表の作成を、CREATE USERシステム権限はユーザーにデータベース・ユーザーの作成を可能にします。

  • オブジェクト権限: オブジェクト権限は、固有のスキーマ・オブジェクトに対して特定のアクションを実行する権限です。各タイプのスキーマ・オブジェクトごとに、異なるオブジェクト権限があります。例として、EMPLOYEES表から行を選択する権限、またはDEPARTMENTS表から行を削除する権限などがあります。

ロールを使用すると、権限の管理はより簡単になります。ロールは関連する権限のグループ名が付けられます。ユーザーはロールを作成し、ロールにシステムおよびオブジェクト権限を付与し、その後ユーザーにロールを付与できます。また、他のロールにロールを付与することもできます。スキーマ・オブジェクトとは異なり、ロールはいずれのスキーマにも含まれません。

表7-1に、Oracle Databaseで事前定義され広く使用されている3つのロールを示します。この3つのロールは、ユーザーを作成する際、または作成後にいつでも付与できます。

表7-1 Oracle Databaseの事前定義ロール

ロール名 説明

CONNECT

ユーザーのデータベースへの接続を可能にします。このロールをデータベース・アクセスが必要なユーザーまたはアプリケーションに付与します。

RESOURCE

そのユーザーに関連付けられたスキーマで特定タイプのスキーマ・オブジェクトの作成、変更および削除を可能にします。このロールは開発者やスキーマ・オブジェクトの作成が必要なその他のユーザーにのみ付与されます。このロールにより、オブジェクト・システムの作成権限のサブセットが付与されます。たとえば、CREATE TABLEシステム権限は付与されますが、CREATE VIEW権限は付与されません。付与できる権限は、CREATE CLUSTERCREATE INDEXTYPECREATE OPERATORCREATE PROCEDURECREATE SEQUENCECREATE TABLECREATE TRIGGERCREATE TYPEのみです。

DBA

ユーザーの作成および権限の付与、ロールの作成および付与、あらゆるスキーマでのスキーマ・オブジェクトの作成、変更および削除などを含むほとんどの管理機能をユーザーが実行することを可能にします。これはすべてのシステム権限を付与しますが、データベース・インスタンスの起動または停止の権限は含まれません。この権限はデフォルトでSYSおよびSYSTEMユーザーに付与されます。

関連項目:

7.2.1 CDBの共通ロールおよびローカル・ロールの概要

Oracle提供のロールはいずれも共通です。Oracle提供のスクリプトでは、Oracle提供のユーザーおよびロールに付与されるすべての権限またはロールは共通に付与されますが、例外は、システム権限が共通ロールPUBLICに対してローカルに付与される場合です。ユーザー作成のロールは、ローカルまたは共通のいずれかです。

関連項目:

マルチテナント・コンテナ・データベース(CDB)のPUBLICの権限付与の詳細は、Oracle Multitenant管理者ガイドを参照してください

7.2.1.1 CDBの共通ロール

共通ロールは、ルートと既存および将来のすべてのプラガブル・データベース(PDB)に存在するデータベース・ロールです。共通ロールは、コンテナ間の操作に便利で、共通ユーザーがすべてのコンテナでロールを持つことを保証します。

すべての共通ロールは、ユーザー作成かOracle提供のいずれかです。Oracleから提供されるすべての事前定義ロールは共通ロールです(DBAPUBLICなど)。ユーザー作成の共通ロールの名前は、C##またはc##の文字で始まり、ASCIIまたはEBCDIC文字しか使用できません。たとえば、マルチテナント・コンテナ・データベース(CDB)管理者が共通ユーザーc##dbaを作成し、このユーザーにDBAロールを共通に付与すると、c##dbaが既存および将来のすべてのPDBでDBAロールを持つようになります。

ユーザーは、次の基準を満たした場合にのみ、共通ロールで、そのロールに共通の権限を付与するなどの共通の操作を実行できます。

  • ユーザーは、その現在のコンテナがルートである共通ユーザーです。

  • ユーザーには、共通に付与されたSET CONTAINER権限があり、これはその権限がすべてのコンテナで適用されることを意味します。

  • ユーザーには、指定した操作を実行する能力を制御する権限があり、この権限は共通に付与されています。

たとえば、共通ロールを作成するには、共通ユーザーに共通に付与されたCREATE ROLE権限とSET CONTAINER権限が必要です。Oracle Enterprise Manager Database Express (EM Express)を使用して作成される共通ロールは、ルート内で作成する必要があります。

関連項目:

7.2.1.2 PDBのローカル・ロール

ローカル・ロールは単一のプラガブル・データベース(PDB)内にのみ存在します。これは、非CDBのロールが非CDB内にのみ存在するのと同様です。ローカル・ロールには、そのロールが存在するコンテナで適用されるロールおよび権限のみを含めることができます。

同じマルチテナント・コンテナ・データベース(CDB)内のPDBには、同じ名前のローカル・ロールが含まれる可能性があります。たとえば、ユーザー作成のロールpdbadminは、hrpdbsalespdbのどちらのPDBにも存在する可能性があります。これらのロールは、別々の非CDBにあるかのように、互いにまったく関係ありません。

Oracle Enterprise Manager Database Express (EM Express)を使用して作成されるローカル・ロールは、使用先のPDB内で作成する必要があります。

関連項目:

ローカル・ロールの管理方法の詳細は、Oracle Multitenant管理者ガイドを参照してください

7.2.2 CDBでの権限およびロール付与の概要

非CDBの場合と同様、マルチテナント・コンテナ・データベース(CDB)内のユーザーは、ロールおよび権限を付与できます。CDBにおける主な違いは、ローカルに付与されるロールおよび権限と、共通に付与されるロールおよび権限とが区別されることです。ローカルに付与された権限またはロールは、それが付与されたコンテナでのみ実行可能です。共通に付与された権限またはロールは、既存および将来のどのコンテナにおいても実行可能です。

ユーザーおよびロールは、共通の場合もローカルの場合もあります。ただし、権限は、それ自体は共通でもローカルでもありません。ユーザーがCONTAINER=CURRENT句を使用してローカルに権限を付与した場合、権限受領者は現行コンテナ内でのみ実行可能な権限を持ちます。ユーザーがCONTAINER=ALL句を使用して共通に権限を付与した場合、権限受領者は既存および将来のコンテナ内で実行可能な権限を持ちます。

注意:

Oracle Enterprise Manager Database Express (EM Express)を使用してCDBで権限またはロールを付与する場合、その権限またはロールが共通に付与されるものか、ローカルに付与されるものかは、権限が付与されるコンテナによって決まります。

たとえば、EM Expressを使用してルートに権限を付与すると、権限は共通に付与されるので、権限受領者は既存および将来のすべてのコンテナ内でその権限を行使できます。EM Expressを使用してプラガブル・データベース(PDB)内で権限を付与する場合、この権限はローカルに付与される権限であり、権限受領者はそのPDB内でのみ行使できます。

CDBでは、付与の行為は、ローカルであろうと共通であろうと、どれも特定のコンテナ内で起こります。付与の基本原則は、次のとおりです。

  • 共通およびローカルのどちらの現象も、ローカルに付与および受領できます。

  • 共通に付与または受領できるのは、共通の現象のみです。

ローカルのユーザー、ロールおよび権限は、本質的に特定のコンテナに限定されます。したがって、ローカル・ユーザーは、共通のロールおよび権限を付与することはできず、ローカルのロールおよび権限は共通に付与されることはありません。

関連項目:

このような権限付与の原則の詳細は、Oracle Multitenant管理者ガイドを参照してください

7.2.2.1 CDBで共通に付与される権限およびロール

権限および共通ロールは、共通に付与される可能性があります。プラガブル・データベース(PDB)での付与の原則によれば、ユーザーまたはロールは、受領者と付与者がどちらも共通である場合のみ、共通にロールおよび権限を付与される可能性があり、ロールが共通に付与されている場合、ロールそのものが共通であることが必要です。

関連項目:

  • マルチテナント・コンテナ・データベース(CDB)で共通に付与される権限およびロールの詳細と、どの現象に対して共通に付与できるかを示した表は、Oracle Multitenant管理者ガイドを参照してください

  • CDBで共通またはローカルにロールおよび権限を付与する詳細なシナリオは、Oracle Multitenant管理者ガイドを参照してください

7.2.2.2 CDBでローカルに付与される権限およびロール

ロールおよび権限は、受領者、付与者または付与されるロールがローカルか共通かに関係なく、ユーザーおよびロールにローカルに付与できます。

関連項目:

  • マルチテナント・コンテナ・データベース(CDB)でローカルに付与される権限およびロールの詳細と、どの現象に対してローカルに付与できるかを示した表は、Oracle Multitenant管理者ガイドを参照してください

  • CDBで共通またはローカルにロールおよび権限を付与する詳細なシナリオは、Oracle Multitenant管理者ガイドを参照してください

7.3 管理アカウントおよび権限について

管理アカウントおよび管理権限により、ユーザーの管理、データベース・メモリーの管理、データベースの起動および停止などの管理機能を実行できます。

この項では、次の項目について説明します。

7.3.1 SYSおよびSYSTEMユーザー

SYSおよびSYSTEM管理ユーザー・アカウントはOracle Databaseのインストール時に自動的に作成されます。インストールの際に適用したパスワードを使用しても作成できます。どちらも自動的にDBAロールが付与されます。

  • SYS

    このアカウントでは、すべての管理機能を実行できます。データベースのデータ・ディクショナリ用のすべての実表およびベース・ビューはSYSスキーマに保存されます。これらの実表とビューは、Oracle Databaseの操作にとって重要です。データ・ディクショナリの整合性を保持するには、SYSスキーマ内の表をデータベースのみで操作します。すべてのユーザーまたはデータベース管理者による変更は絶対に行わないでください。また、SYSスキーマ内に表を作成しないでください。

    SYSユーザーにはSYSDBA権限が付与され、この権限によりバックアップやリカバリのような高水準な管理タスクを実行できます。

  • SYSTEM

    このアカウントは、次の例外を除いたすべての管理機能を実行します。

    • バックアップとリカバリ

    • データベース・アップグレード

    このアカウントを使用すると日常的な管理タスクは実行できますが、Oracle Databaseを管理するための名前付きユーザー・アカウントを作成して、データベース・アクティビティを監視できるようにすることをお薦めします。

注意:

SYSBACKUPは、バックアップおよびリカバリを実行するために使用する自動的に作成される別のアカウントです。詳細は、バックアップおよびリカバリを実行するためのユーザーの構成を参照してください。

7.3.2 SYSDBAおよびSYSOPERシステム権限

SYSDBAおよびSYSOPERはデータベースの作成、起動、停止、バックアップまたはリカバリなどの高度な管理操作を実行するために必要な管理権限です。SYSDBAシステム権限は、すべての権限を持つデータベース管理者用、SYSOPERシステム権限は、基本的な運用タスクを実行するがユーザー・データを表示する権限は持たないユーザー用です。

SYSDBAおよびSYSOPERは、データベースがオープンでないときもデータベース・インスタンスにアクセスできるシステム権限です。これらの権限の制御は完全にデータベース外で行われています。この制御により、これらの権限のいずれかを付与されている管理者は、データベース・インスタンスに接続してデータベースを起動できます。

SYSDBA権限およびSYSOPER権限は、他の方法では権限が付与されない特定のデータベース操作を実行可能にする接続のタイプと考えることもできます。たとえば、SYSDBA権限がある場合、AS SYSDBAを使用してデータベースに接続できます。

SYSユーザーはインストール後すぐにSYSDBAの権限を自動的に付与されます。SYSユーザーとしてログインする場合、SYSDBAまたはSYSOPERとしてデータベースに接続する必要があります。SYSDBAユーザーとして接続すると、SYSDBA権限が発動され、SYSOPERユーザーとして接続すると、SYSOPER権限が発動されます。EM Expressを使用すると、ユーザーSYSとしてログインし、SYSDBAまたはSYSOPERとして接続できます。

SYSDBAまたはSYSOPER権限で接続すると、通常はユーザー名に関連付けられているスキーマではなく、デフォルトのスキーマで接続が確立されます。このスキーマは、SYSDBAの場合はSYSSYSOPERの場合は、PUBLICです。

注意:

SYSユーザーとして接続する場合、データ・ディクショナリの表における権限は無制限となります。データ・ディクショナリの表を変更しないように注意してください。

関連項目:

SYSDBA権限およびSYSOPER権限で許可された操作は、Oracle Database管理者ガイドを参照

7.4 ロールの管理

ロールは、関連するシステムおよびオブジェクト権限の名前付きグループです。ロールを作成し、ユーザーおよび他のロールに割り当てます。

この項では、次の項目について説明します。

関連項目:

7.4.1 ロールの表示

ロールは、Oracle Enterprise Manager Database Express (EM Express)の「ロール」ページに表示します。

ロールを表示するには、次の手順を実行します。

  1. ロールを管理する権限を持つユーザー・アカウントでEM Expressにログインします。このようなユーザー・アカウントの例はSYSTEMです。

  2. 「セキュリティ」メニューから「ロール」を選択します。

    ロール・ページが表示されます。

  3. 特定のロールの詳細を表示するには、表示するロールの名前を選択し、「アクション」リストから「詳細の表示」を選択します。

    また、ページの「検索」領域を使用して、特定のロールを検索することもできます。「検索」フィールドに、ロールの最初の数文字を入力します。入力すると、表内のロールのリストが、入力した文字を含む名前のロールに制限されます。

    ロールの表示ページが表示されます。このページでは、選択済のロールに付与されたすべての権限およびロールを表示できます。

関連項目:

日常的な管理タスクでのSYSTEMアカウント使用の推奨代替手段の詳細は、SYSおよびSYSTEMユーザーを参照してください

7.4.2 例: ロールの作成

Oracle Enterprise Manager Database Express (EM Express)を使用して、プラガブル・データベース(PDB)内のアプリケーション開発者用のAPPDEVと呼ばれるロールを作成できます。アプリケーション開発者はアプリケーションで使用するスキーマ・オブジェクトの作成、変更および削除を行う必要があるため、APPDEVロールには表7-2に示すシステム権限を含めます。

表7-2 APPDEVロールに付与されたシステム権限

権限 説明

CREATE TABLE

スキーマで表をユーザーが作成、変更および削除することを可能にします。

CREATE VIEW

スキーマでビューをユーザーが作成、変更および削除することを可能にします。

CREATE PROCEDURE

スキーマでプロシージャをユーザーが作成、変更および削除することを可能にします。

CREATE TRIGGER

スキーマでトリガーをユーザーが作成、変更および削除することを可能にします。

CREATE SEQUENCE

スキーマで順序をユーザーが作成、変更および削除することを可能にします。

CREATE SYNONYM

スキーマでシノニムをユーザーが作成、変更および削除することを可能にします。

注意:

自社のアプリケーション開発者にAPPDEVロールを作成する場合、アプリケーション開発者にジョブ機能の実行に必要な権限のみを付与し、それ以上は付与しない、最低限の権限の原則に従う必要があります。そのため、自社のAPPDEVロールに付与する一連の権限は、表7-2APPDEVロールに付与されるシステム権限とは異なる場合があります。

APPDEVロールを作成するには、次のステップを実行します。

  1. EM Expressで、ロールの表示で説明されているとおりに、「ロール」ページに移動します。

  2. 「ロールの作成」をクリックします。

    「ロールの作成」ウィザードが表示され、新規ロール・ページが表示されます。

  3. 「ロール名」フィールドに、APPDEVと入力します。

  4. 右矢印をクリックします。

    権限ページが表示されます。

    左側の使用可能なシステム権限およびロールの表には、ロールに割り当てることができる使用可能なシステム権限が表示されます。ロールは「ロール」列にあるチェック・マークで識別されます。右側の選択したシステム権限およびロールの表には、ロールに現在選択されているシステム権限およびロールが表示されます。いずれかの表の1つ以上のシステム権限またはロールを選択し、適切な矢印ボタンをクリックしてそれらの権限を他の表に移動します。

    システム権限CREATE TABLECREATE VIEWCREATE PROCEDURECREATE TRIGGERCREATE SEQUENCEおよびCREATE SYNONYMを、作成中のAPPDEVロールに対して選択したシステム権限およびロールの表に移動します。

    定義中のAPPDEVロールを付与するユーザーが、選択したシステム権限およびロールの表のシステム権限またはロールを他のユーザーに付与できるようにする場合は、選択したシステム権限およびロールの表で、システム権限またはロールの「WITH ADMIN」オプションを有効にします。

  5. 「OK」をクリックします。

    APPDEVロールは、ロール・ページのデータベース・ロールの表に表示されます。

7.4.3 例: ロールの変更

ロールはOracle Enterprise Manager Database Express (EM Express)を使用して変更できます。たとえば、Oracle Streams Advanced Queuingをアプリケーションで使用すると想定します。その場合、開発者がアプリケーションの開発およびテストにAQ_ADMINISTRATOR_ROLEおよびAQ_USER_ROLEが必要かどうかを決定します。この2つのAdvanced Queuingロールを付与するには、APPDEVロールを編集します。

APPDEVロールを変更するには、次のステップを実行します。

  1. EM Expressで、ロールの表示で説明されているとおりに、「ロール」ページに移動します。

  2. APPDEVロールを選択し、「アクション」メニューから「権限の変更」を選択します。

    権限の変更ページが表示されます。

  3. ロールAQ_ADMINISTRATOR_ROLEおよびAQ_USER_ROLEを、左側の使用可能なシステム権限およびロールの表から右側の選択したシステム権限およびロールの表に移動し、これら2つのロールをAPPDEVロールに付与します。

  4. 「OK」をクリックします。

    確認メッセージが表示されます。

7.4.4 ロールの削除

ロールはOracle Enterprise Manager Database Express (EM Express)を使用して削除できます。ロールを削除する場合、そのロールが現在1人以上のユーザーに付与されていても、EM Expressはロールを削除するため注意が必要です。ロールを削除すると、そのロールを付与されたすべてのユーザーから、そのロールに関連付けられた権限が自動的に削除されます。

ロールを削除するには:

  1. EM Expressで、ロールの表示で説明されているとおりに、「ロール」ページに移動します。

  2. 削除するロールを選択し、「ロールの削除」をクリックします。

    「確認」ページが表示されます。

  3. 「OK」をクリックします。

    確認メッセージはロールが正常に削除されたことを示します。

7.5 データベース・ユーザー・アカウントの管理

この項では、Oracle Enterprise Manager Database Express (EM Express)を使用して、データベースを使用するユーザーおよびアプリケーションのユーザー・アカウントを作成および管理する手順について説明します。次の項目が含まれます。

7.5.1 ユーザー・アカウントの表示

ユーザー・アカウントは、Oracle Enterprise Manager Database Express (EM Express)の「ユーザー」ページに表示します。

ユーザーを表示するには、次の手順を実行します。

  1. ユーザーを管理する権限を持つユーザー・アカウント(SYSTEMなど)でEM Expressにログインします。

  2. 「セキュリティ」メニューから「ユーザー」を選択します。

    ユーザー・ページが表示されます。マルチテナント・コンテナ・データベース(CDB)では、このページの名前は「共通のユーザー」ページです。

  3. 特定のユーザーの詳細を表示するには、次のいずれかを実行します。

    • ユーザー名をクリックします。

    • ユーザー名以外の行内の任意の場所をクリックしてユーザーを選択し、「アクション」メニューから「詳細の表示」を選択します。

    ユーザーの表示ページが表示され、すべてのユーザー属性が表示されます。

関連項目:

日常的な管理タスクでのSYSTEMアカウント使用の推奨代替手段の詳細は、SYSおよびSYSTEMユーザーを参照してください

7.5.2 例: ユーザー・アカウントの作成

Oracle Enterprise Manager Database Express (EM Express)を使用して、Nickという名前のデータベース・アプリケーション開発者用のプラガブル・データベース(PDB)のユーザー・アカウントを作成できます。Nickは開発者であるため、アプリケーションを構築およびテストするために、彼に必要なデータベース権限およびロールを付与する必要があります。また、その表領域でスキーマ・オブジェクトを作成できるように、デフォルト表領域に16MBの領域割当て制限をNickに付与する必要があります。

Nickという名前のユーザーを作成するには、次のステップを実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、「ユーザー」ページに移動します。

  2. 「ユーザー」ページで、「ユーザーの作成」をクリックします。

    「ユーザーの作成」ウィザードが表示され、ユーザー・アカウント・ページが表示されます。

  3. 以下の値を入力します。

    • 「名前」フィールドにNICKと入力します。

    • 認証リストのデフォルト値Passwordを許可します。

      ユーザー認証のその他の拡張方法の詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。

    • 「パスワード」および「パスワードの確認」フィールドに、ユーザーNickのセキュアなパスワードを入力します。

      セキュアなパスワードの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

    • プロファイル・リストで、値DEFAULTを受け入れます。

      この設定によりデフォルトのパスワード・ポリシーがユーザーNickに割り当てられます。

      詳細は、データベースのパスワード・ポリシーの設定を参照してください。

    • 「パスワードの期限切れ」オプションを有効にします。このオプションがユーザー作成時に有効になっていると、ユーザーは自分のアカウントに初めてログインするときに新しいパスワードを作成する必要があります。

    • 「アカウントがロック済」は選択しないでください。

      ユーザー・アカウントを使用されないように後でロックできます。ユーザー・アカウントの削除によりユーザーが所有するすべてのスキーマ・オブジェクトも同時に削除されてしまうのを防ぐため、一時的にユーザー・アカウントへのアクセスを拒否するにはユーザー・アカウントを削除せずにロックします。

  4. 右矢印ボタンをクリックします。

    「表領域」ページが表示されます。

  5. 以下の値を入力します。

    • 「デフォルト表領域」フィールドで、USERS表領域を選択します。

      Nickが作成するすべてのスキーマ・オブジェクトは、他を指定しないかぎりUSERS表領域に作成されます。「デフォルト表領域」フィールドを空白のままにすると、Nickは新しくインストールするデータベースのデフォルト表領域としてUSERSを割り当てられます。USERS表領域の詳細は、表領域についてを参照してください。

    • 「一時表領域」フィールドで、TEMP表領域を選択します。

      「一時表領域」フィールドを空白のままにすると、Nickは新しくインストールするデータベースのデフォルト一時表領域としてTEMPを割り当てられます。TEMP表領域の詳細は、表領域についてを参照してください。

  6. 右矢印ボタンをクリックします。

    権限ページが表示されます。

  7. 例: ユーザー・アカウントへの権限およびロールの付与の手順に従って、ユーザーに、ロール、システム権限およびオブジェクト権限を付与します。

  8. 例: ユーザー・アカウントへの表領域の割当て制限の割当ての説明に従って、16MBの割当て制限をUSERS表領域に割り当てます。

7.5.3 既存のユーザー・アカウントの複製による新規ユーザー・アカウントの作成

既存のユーザー・アカウントと属性が同じユーザー・アカウントを作成する場合は、既存のユーザー・アカウントを複製できます。Oracle Enterprise Manager Database Express (EM Express)を使用して、既存のユーザー・アカウントを複製して新規ユーザー・アカウントを作成します。

既存のユーザー・アカウントを複製して新規ユーザー・アカウントを作成するには、次の手順を実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、「ユーザー」ページに移動します。
  2. 複製するユーザーを選択します。
  3. 「類似作成」をクリックします。
  4. 「ユーザーの作成」ウィザードが表示され、ユーザー・アカウント・ページが表示されます。

    新しいユーザーの作成を終了するには、例: ユーザー・アカウントの作成の手順3から8を実行します。

7.5.4 例: ユーザー・アカウントへの権限およびロールの付与

Oracle Enterprise Manager Database Express (EM Express)を使用して、ユーザー・アカウントに権限およびロールを付与できます。

たとえば、Nickという名前のアプリケーション開発者用のNICKという名前のユーザー・アカウントを作成または変更すると想定します。Nickはデータベース・アプリケーション開発者であるため、自身のスキーマでデータベース・オブジェクトを作成できるように、APPDEVロールをNICKに付与します(例: ロールの作成APPDEVロールは作成済です)。また、データベースに接続できるようにもするため、CREATE SESSIONシステム権限を付与します。さらに、Nickは人事管理アプリケーションを開発するため、Oracle Databaseで提供されるhrサンプル・スキーマにある表を表示できるように、hrサンプル・スキーマにあるすべての表に対する READオブジェクト権限をNickに付与します。Oracle Databaseで提供されるサンプル・スキーマには、例およびデモに使用するための架空のデータが含まれているため、NICKにOracle Databaseで提供されるhrサンプル・スキーマへのアクセス権を付与することは、機密データへのアクセス権を付与することではありません。次の表は、NICKに付与される権限およびロールを示しています。

権限付与タイプ 権限またはロール名

ロール

APPDEV

システム権限

CREATE SESSION

オブジェクト権限

Oracle Databaseで提供されるhrサンプル・スキーマにあるすべての表に対するREAD

次の例は、Nickのユーザー・アカウントの作成中であることを想定しています。また、この例ではNickに権限またはロールをまだ付与していないとします。

Nickという名前のユーザーに権限およびロールを付与するには、次のステップを実行します。

  1. EM Expressの「権限」ページで、左側の使用可能なシステム権限およびロールの表で、APPDEVロールおよびCREATE SESSIONシステム権限を検索して選択し、右矢印ボタンを使用してそれらを右側の選択したシステム権限およびロールの表に移動します。

  2. 「OK」をクリックします。

    確認メッセージが表示され、ユーザーNickが作成されます。

  3. ユーザー・アカウントの表示に従って、ユーザーNickの「ユーザーの表示」ページに移動します。

  4. 「オブジェクト権限」サブタブをクリックします。

    オブジェクト権限サブページが表示されます。

  5. 「付与」ボタンをクリックします。

    「オブジェクト権限の付与」ウィザードが表示され、スキーマおよびオブジェクト・タイプの選択ページが表示されます。

  6. 「スキーマ」リストでHRを選択し、「オブジェクト・タイプ」リストでTablesを選択します。

    この例では、ユーザーNICKに、Oracle Databaseで提供されるhrサンプル・スキーマにあるすべての表に対するREADオブジェクト権限が付与されますが、このサンプル・スキーマには、例およびデモのための架空のデータが含まれています。機密データへのアクセス権は付与されません。

  7. 右矢印ボタンをクリックします。

    オブジェクトの選択ページが表示されます。

  8. すべての表を、左側の使用可能なオブジェクトの表から右側の選択したオブジェクトの表に移動し、それらの表をユーザーNickが使用できるようにします。

  9. 右矢印ボタンをクリックします。

    オブジェクト権限の付与ページが表示されます。

  10. 「権限」リストのREAD権限を選択し、NICKに、Oracle Databaseで提供されるhrサンプル・スキーマにあるすべての表に対するREAD権限を付与します。

  11. 「OK」をクリックし、新しいオブジェクト権限の付与を保存します。

    確認メッセージが表示されます。

7.5.5 例: ユーザー・アカウントへの表領域の割当て制限の割当て

Nickという名前のユーザー・アカウントを作成または変更すると想定します。Oracle Enterprise Manager Database Express (EM Express)を使用して、デフォルトの表領域でNickに領域使用量割当てとして16MBを割り当てることができます。

Nickが表領域にオブジェクトを作成できるように、デフォルト表領域にNickの表領域の割当て制限を割り当てる必要があります。(これは他の表領域にNickがオブジェクトを作成する場合も同様です。)Nickに特定の表領域を割り当てた後は、Nickの全オブジェクトが消費する領域の合計は、その表領域内で割当て制限を超えることはできません。UNLIMITEDの割当て制限を割り当てることもできます。

次の例は、Nickのユーザー・アカウントの作成中またはアカウントの編集中であることを想定しています。また、この例では、Nickには表領域の割当て制限が指定されていないものとします。

Nickという名前のユーザーに表領域の割当て制限を割り当てるには、次のステップを実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、ユーザーNickの「ユーザーの表示」ページに移動します。

  2. 「割当て制限」サブページを選択します。

    ユーザーNickはどの表領域でも割当て制限を持っていないことを示している割当て制限サブページが表示されます。

  3. USERS表領域を選択し、「編集」をクリックします。

    割当ての変更ページが表示されます。

  4. 「割当て制限」フィールドに16Mと入力し、ユーザーNickのUSERS表領域に16MBの割当て制限を割り当てます。

    「割当て制限」フィールドに値を入力すると、EM Expressでは、選択した表領域に対する割当て制限を変更する際に、その値をデータベース・ブロック数の倍数に丸めます。たとえば、データベースで8Kサイズのデータベース・ブロックが使用されており、「割当て制限」フィールドに値10Kを入力した場合、EM Expressでは表領域に対する割当て制限を変更する際に、10Kを16K (2ブロック)に丸めます。

  5. 「OK」をクリックし、新しい割当て制限の割当てを保存します。

    確認メッセージが表示されます。

7.5.6 例: ユーザー・アカウントの変更

Oracle Enterprise Manager Database Express (EM Express)を使用して、ユーザーNickの割当て制限をデフォルトの表領域USERSで削除できます。そのためには、ユーザーNickのアカウントを変更する必要があります。

Nickという名前のユーザーを変更するには、次のステップを実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、「ユーザー」ページに移動します。

  2. ユーザー・アカウントNICKを選択し、「アクション」メニューから「詳細の表示」を選択します。

    「権限およびロール」サブページを含むユーザーの表示ページが表示されます。

  3. 「割当て制限」サブタブをクリックします。

    「割当て制限」サブページが表示されます。

  4. 表領域USERSを選択し、「編集」をクリックします。

    割当ての変更ページが表示されます。

  5. 「割当て制限」フィールドに、「無制限」を入力します。

  6. 「OK」をクリックします。

    確認メッセージが表示されます。

7.5.7 ユーザー・アカウントのロックおよびロック解除

特定のユーザー・アカウントに対してデータベースへのアクセスを一時的に拒否するには、ユーザー・アカウントをロックします。そのユーザーが接続しようとしても、データベースによってエラー・メッセージが表示され、接続は許可されません。そのユーザーに対して再度データベースへのアクセスを許可する場合は、ユーザー・アカウントのロックを解除します。Oracle Enterprise Manager Database Express (EM Express)を使用して、ユーザー・アカウントをロックおよびロック解除できます。

ユーザー・アカウントをロックまたはロック解除するには、次のステップを実行します。

  1. EM Expressで、「ユーザー・アカウントの表示」トピックに従って、「ユーザー」ページに移動します。

  2. 目的のユーザー・アカウントをクリックします。

  3. 「アクション」メニューから「アカウントの変更」を選択します。

    アカウントの変更ページが表示されます。

  4. 次のいずれかの操作を行います。

    • アカウントをロックするには、「アカウントがロック済」オプションを有効にして、「OK」をクリックします。

    • アカウントのロックを解除するには、「アカウントがロック済」オプションを無効にして、「OK」をクリックします。

7.5.8 ユーザー・パスワードの期限切れ

ユーザー・パスワードはOracle Enterprise Manager Database Express (EM Express)を使用して期限切れにすることができます。 パスワードの期限が切れた場合、ユーザーは次回ログイン時にパスワードを変更するよう求められます。次の場合にパスワードの期限が切れます。
  • ユーザーのパスワードが漏洩した場合。

  • セキュリティ・ポリシーが表示され、定期的なパスワード変更を求める場合。

    注意:

    一定期間後にパスワードの期限を自動的に無効にする設定ができます。詳細は、データベースのパスワード・ポリシーの設定を参照してください。

  • ユーザーがパスワードを忘れた場合。

    3番目の場合、ユーザー・アカウントを変更し、新規の一時パスワードを割り当て、パスワードを無効にします。一時パスワードでログインすると、新しいパスワードを選択するように要求されます。

ユーザーのパスワードを期限切れにするには、次のステップを実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、「ユーザー」ページに移動します。

  2. 目的のユーザー・アカウントをクリックします。

  3. 「アクション」メニューから「アカウントの変更」を選択します。

    アカウントの変更ページが表示されます。

  4. 「パスワードの期限切れ」を有効にして、「OK」をクリックします。

7.5.9 例: ユーザー・アカウントの削除

ユーザー・アカウントはOracle Enterprise Manager Database Express (EM Express)を使用して削除できます。Nickという名前のユーザーが他の部門に移動したと想定します。今後データベースにアクセスする必要がなくなるので、このユーザー・アカウントを削除します。

ユーザー・アカウントを削除するときには、そのユーザーが所有しているすべてのスキーマ・オブジェクトも削除されるため、注意が必要です。スキーマ・オブジェクトを残したままで、ユーザーがデータベースにログインできないようにするには、ユーザー・アカウントをロックします。ユーザー・アカウントのロックおよびロック解除を参照してください。

Nickという名前のユーザーを削除するには、次のステップを実行します。

  1. EM Expressで、ユーザー・アカウントの表示に従って、「ユーザー」ページに移動します。

  2. ユーザー・アカウントNickを選択し、「ユーザーの削除」をクリックします。「カスケード」オプションを選択すると、ユーザーNickのアカウントが削除される前に、Nickのスキーマ内のすべてのオブジェクトが削除されます。

    「確認」ページが表示されます。

  3. 、「OK」をクリックして、ユーザー・アカウントの削除を確認します。

7.6 データベースのパスワード・ポリシーの設定

この項では、データベース内のすべてのユーザー・アカウントにパスワード・ポリシーを設定するためのバックグラウンド情報および手順について説明します。次の項目が含まれます。

7.6.1 パスワード・ポリシーについて

ユーザー・アカウントを作成すると、デフォルト・パスワード・ポリシーがそのユーザー・アカウントに割り当てられます。新規にインストールされたデータベースに対するこのデフォルト・パスワード・ポリシーには、次の指定があります。
  • ユーザー・アカウントのパスワードは180日で自動的に期限切れとなります。

  • パスワードの期限切れの7日後にユーザー・アカウントがロックされます。

  • 10回ログインに失敗すると、ユーザー・アカウントが1日ロックされます。

デフォルト・パスワード・ポリシーは、プロファイルと呼ばれるデータベース・オブジェクトを使用してユーザー・アカウントに割り当てられます。各ユーザー・アカウントにプロファイルが割り当てられ、そのプロファイルには、パスワード・ポリシーを説明する複数の属性があります。データベースにはDEFAULTという名前のデフォルト・プロファイルがあり、ユーザー・アカウントを作成する際に、他のプロファイルを指定しないかぎり、そのデフォルト・プロファイルがユーザー・アカウントに対して割り当てられます。

データベース・セキュリティを向上させるには、パスワード・ポリシーに厳しい制約を設ける必要がある場合があります。たとえば、パスワードの期限を70日に設定したり、ログインに3回失敗すると、ユーザー・アカウントがロックされるように設定することもできます。(ユーザー・アカウントのログインの失敗は、アカウントのパスワードとしてユーザーが不正なものを入力した場合に発生します。)また、パスワードを推定してシステムに入ろうとする侵入者から、十分に保護するために、パスワードを複雑に設定するように要求することもできます。たとえば、パスワードに少なくとも1文字の数字および1文字の句読点が含まれるように指定できます。

DEFAULTプロファイルのパスワード関連属性を変更することによって、データベース内のすべてのユーザー・アカウントのパスワード・ポリシーを変更します。

注意:

異なるユーザー・アカウントに異なるパスワード・ポリシーを使用することもできます。これを行うには、複数のプロファイルを作成し、各プロファイルにそれぞれパスワード関連の属性を設定し、異なるユーザー・アカウントに異なるプロファイルを割り当てます。この手順についてはこの項では説明しません。

関連項目:

7.6.2 デフォルト・パスワード・ポリシーの変更

プロファイル名DEFAULTのパスワード関連属性を変更し、すべてのデータベース・ユーザー・アカウントのデフォルトのパスワード・ポリシーを変更します。Oracle Enterprise Manager Database Express (EM Express)を使用して、デフォルトのパスワード・ポリシーを変更できます。

デフォルト・パスワード・ポリシーを変更するには、次のステップを実行します。

  1. デフォルト・パスワード・ポリシーを管理する権限を持つユーザー・アカウントでEM Expressにログインします。このようなユーザー・アカウントの例はSYSTEMです。

  2. 「セキュリティ」メニューで「プロファイル」を選択します。

    プロファイル・ページが表示されます。

    注意:

    EM Expressを使用してマルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)を管理する場合、CDBではプロファイルはPDBレベルにあるため、「プロファイル」オプションはPDBレベルでのみ使用できます。

  3. DEFAULTと呼ばれるプロファイルを選択し、「アクション」メニューから「プロファイルの変更」を選択します。

    「プロファイルの変更」ウィザードが表示され、一般ページが表示されます。

  4. 右矢印ボタンをクリックします。

    パスワード・ページが表示されます。

  5. 必要に応じてフィールド値を変更します。各フィールドの横にある下矢印をクリックし、選択のリストを表示します。リストから値を選択するか、値を入力します。

  6. 「OK」をクリックして、変更を保存します。

    確認メッセージが表示されます。

関連項目:

7.7 ユーザー・アカウントおよびセキュリティの管理: Oracle by Example Series

Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。

ユーザー・アカウントおよびセキュリティの管理に関するOBEを参照するには、ご使用のWebブラウザで次のURLを入力します。

https://apexapps.oracle.com/pls/apex/f?p=44785:24:::NO:24:P24_CONTENT_ID:16830