7 ユーザー・アカウントおよびセキュリティの管理
7.1 ユーザー・アカウントについて
-
認証方式
-
データベース認証パスワード
-
永続および一時データ記憶域のデフォルト表領域
-
表領域の割当て制限
-
アカウント・ステータス(ロックまたはロック解除)
-
パスワード・ステータス(有効または無効)
ユーザー・アカウントを作成すると、ユーザー名、パスワード、アカウント用のデフォルト表領域を割り当てるのみでなく、次の手順を実行する必要があります。
-
アカウントに適切なシステム権限、オブジェクト権限およびロールを付与します。
-
ユーザーがデータベース・オブジェクトを作成する場合、オブジェクトが作成される各表領域のユーザー・アカウントに領域使用量の割当て制限を設定します。
各ユーザーには、担当する作業に必要な権限のみを付与する(それ以上は付与しない)ことをお薦めします。たとえば、データベース・アプリケーション開発者には、表、索引、ビューおよびストアド・プロシージャを作成および変更する権限が必要ですが、表領域を削除またはデータベースをリカバリする権限は必要ありません。データベース管理のためのユーザー・アカウントを作成し、一部の管理権限のみをそれらのアカウントに付与することができます。
また、アプリケーションからのみ使用できるユーザー・アカウントを作成することもできます。このアカウントでログインできるユーザーはいませんが、アプリケーションがこのアカウントを使用してデータベースに接続し、ユーザーがアプリケーションにログインします。このタイプのユーザー・アカウントでは、アプリケーション・ユーザーがデータベースに直接ログインして、不測の事態が発生することを防止します。詳細は、「ユーザー権限およびロールについて」を参照してください。
ユーザー・アカウントを作成すると、そのユーザーのためのスキーマも同時に作成されます。スキーマは、表やビュー、トリガーなどの、データベース・オブジェクトの論理的なコンテナです。スキーマ名はユーザー名と同一で、ユーザーが所有するオブジェクトを参照するときに確実に使用できます。たとえば、hr.employees
は、hr
スキーマでemployees
という名前の表を参照します。(employees
表はhr
によって所有されます。)データベース・オブジェクトおよびスキーマ・オブジェクトという用語は同じ意味で使用されます。
ユーザーを削除する場合は、同時にすべてのスキーマ・オブジェクトを削除するか、別の操作によってスキーマ・オブジェクトを事前に削除しておく必要があります。
事前定義されたユーザー・アカウント
データベースには、作成したユーザー・アカウントに加えて、インストール時に自動的に作成された複数のユーザー・アカウントが含まれます。
すべてのデータベースには、管理アカウントSYS
、SYSTEM
およびDBSNMP
が含まれています。管理アカウントは高度な権限を持つアカウントであり、データベースの起動と停止、データベース・メモリーと記憶域の管理、データベース・ユーザーの作成と管理などの管理タスクを実行する権限のあるユーザーのみに必要です。Oracle Enterprise Manager Database Express (EM Express)にログインする場合は、SYS
またはSYSTEM
を使用します。Database Configuration Assistant(DBCA)でデータベースを作成する際に、これらのアカウントのパスワードを割り当てます。これらのアカウントは削除または名前変更しないでください。
すべてのデータベースには、個別のOracle Databaseの機能またはコンポーネントが固有のスキーマを保持できるように自動的に作成される内部のアカウントも含まれます。これらのアカウントを権限のないアクセスから保護するために、これらは最初にロックされ、これらのパスワードは期限切れになります(ロックされたアカウントはログインを無効化するアカウントです)。内部アカウントを削除したり、内部アカウントを使用してデータベースにログインする必要はありません。
また、データベースのインストール時にデータベースにサンプル・スキーマを作成するオプションを選択した場合は、データベースにはサンプル・スキーマが含まれています。サンプル・スキーマは、連結されたスキーマのセットで、共通のデータベース・タスクに関するOracleドキュメントおよび資料を表示できます。また、このスキーマを使用して、本番データを危険にさらさずに試験を行えます。
各サンプル・スキーマには関連付けられたユーザー・アカウントがあります。たとえば、hr
ユーザー・アカウントはhr
スキーマを所有します。このスキーマには人事管理アプリケーションの簡単な表のセットがあります。サンプル・スキーマのアカウントは、最初はロックされていて、パスワードが期限切れになっています。データベース管理者は、これらのアカウントのロックを解除しパスワードを割り当てます。
関連項目:
-
日常的な管理タスクでの
SYSTEM
アカウント使用の推奨代替手段の詳細は、「SYSおよびSYSTEMユーザー」を参照してください -
サンプル・スキーマの詳細は、『Oracle Databaseサンプル・スキーマ』を参照してください。
-
データベース・セキュリティの概要は、『Oracle Database概要』を参照してください
7.1.1 CDBの共通性について
この共通性の原則の当然の結果として、共通ユーザーのみが、共通現象の存在を変更できることになります。もっと正確に言えば、ルートに接続した共通ユーザーのみが、共通ユーザーまたは共通ロールのCDB全体にわたる属性を作成、無効化または変更できます。
関連項目:
-
CDBおよびPDBの概要は、Oracle Multitenant管理者ガイドを参照してください
-
CDBおよびPDBの管理の詳細は、Oracle Multitenant管理者ガイドを参照してください
7.1.1.1 CDBの共通ユーザー
共通ユーザーは、ルートと、既存および将来のすべてのプラガブル・データベース(PDB)で同じIDを持つデータベース・ユーザーです。どの共通ユーザーも、ルートに接続し、ルートと権限を持つすべてのPDBで操作を実行できます。
すべての共通ユーザーは、Oracle提供またはユーザー作成のいずれかです。Oracle提供の共通ユーザーの例は、SYS
やSYSTEM
です。
共通ユーザーには、次の特徴があります。
-
共通ユーザーは、
CREATE SESSION
権限を持つどのコンテナ(CDB$ROOT
も含む)にもログインできます。共通ユーザーは、すべてのコンテナで同じ権限を持つ必要はありません。たとえば、
c##dba
ユーザーは、ルートおよび1つのPDBでセッション作成の権限を持っているが、別のPDBではセッション作成の権限を持っていないという場合があります。適切な権限を持つ共通ユーザーはコンテナの切替えができるため、ルートの共通ユーザーはPDBを管理できます。 -
ユーザー作成のすべての共通ユーザーの名前は、必ず
c##
またはC##
の文字で始まります。(Oracle提供の共通ユーザー名にはこの制限がありません。)ローカル・ユーザー名で
c##
またはC##
の文字で始まる名前はありません。 -
共通ユーザー名で使用できるのは、ASCIIまたはEBCDIC文字のみです。
-
すべての共通ユーザーには、すべてのコンテナにわたって一意の名前が付けられます。
共通ユーザーはルートに常駐しますが、同じIDを持つどのPDBにも接続できる必要があります。
-
共通ユーザーのスキーマは、各コンテナで異なる可能性があります。
たとえば、
c##dba
は複数のコンテナに対して権限を持つ共通ユーザーで、これらの各コンテナのc##dba
スキーマには、異なるオブジェクトが含まれる場合があります。
関連項目:
-
マルチテナント・コンテナ・データベース(CDB)内の共通ユーザーの詳細は、Oracle Multitenant管理者ガイドを参照してください
-
共通アカウントとローカル・アカウントの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください
7.1.1.2 CDBのローカル・ユーザー
-
ローカル・ユーザーは、特定のPDB固有で、このPDB内でスキーマを所有します。
-
ローカル・ユーザーは、ルートでは作成できません。
-
あるPDBのローカル・ユーザーは、別のPDBまたはルートにはログインできません。
-
ローカル・ユーザーには、
c##
またはC##
の文字で始まる名前を付けることはできません。 -
ローカル・ユーザーの名前は、PDB内でのみ一意である必要があります。
-
ユーザー名とそのユーザーのスキーマが含まれているPDBにより、一意のローカル・ユーザーが決まります。たとえば、
rep
というローカル・ユーザーとスキーマが、hrpdb
というPDBに存在することができます。rep
という完全に独立したローカル・ユーザーとスキーマが、salespdb
というPDBに存在することができます。 -
ローカル・ユーザーが共通スキーマのオブジェクトにアクセスできるかどうかは、それらのユーザー権限によって決まります。
たとえば、
c##dba
共通ユーザーは、hrpdb
PDB上のc##dba
スキーマで表を作成できます。c##dbaがこの表で必要な権限をローカルのhr
ユーザーに付与しなければ、hr
はこの表にアクセスできません。
関連項目:
-
ローカル・ユーザーの詳細は、Oracle Multitenant管理者ガイドを参照してください
-
2つPDBのローカル・ユーザーが関係するシナリオの詳細は、Oracle Multitenant管理者ガイドを参照してください
-
ローカル・アカウントの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください
7.2 ユーザー権限およびロールについて
-
システム権限: システム権限は、ユーザーが特定のアクションまたは特定の種類のスキーマ・オブジェクトでアクションを実行できるようにする権限です。たとえば、
CREATE TABLE
システム権限はユーザーと関連付けられたスキーマで表の作成を、CREATE USER
システム権限はユーザーにデータベース・ユーザーの作成を可能にします。 -
オブジェクト権限: オブジェクト権限は、固有のスキーマ・オブジェクトに対して特定のアクションを実行する権限です。各タイプのスキーマ・オブジェクトごとに、異なるオブジェクト権限があります。例として、
EMPLOYEES
表から行を選択する権限、またはDEPARTMENTS
表から行を削除する権限などがあります。
ロールを使用すると、権限の管理はより簡単になります。ロールは関連する権限のグループ名が付けられます。ユーザーはロールを作成し、ロールにシステムおよびオブジェクト権限を付与し、その後ユーザーにロールを付与できます。また、他のロールにロールを付与することもできます。スキーマ・オブジェクトとは異なり、ロールはいずれのスキーマにも含まれません。
表7-1に、Oracle Databaseで事前定義され広く使用されている3つのロールを示します。この3つのロールは、ユーザーを作成する際、または作成後にいつでも付与できます。
表7-1 Oracle Databaseの事前定義ロール
注意:
これらのロールに依存せずに、データベース・セキュリティ用に独自のロールを設計することをお薦めします。これらのロールは、将来のリリースのOracle Databaseでは自動生成されない可能性があります。
関連項目:
-
「ロールの管理」
-
システム権限、オブジェクト権限、および事前定義されたロールの詳細は、Oracle Database SQL言語リファレンスを参照
-
データベース・セキュリティの概要は、『Oracle Database概要』を参照してください
7.2.1 CDBの共通ロールおよびローカル・ロールについて
PUBLIC
に対してローカルに付与される場合です。ユーザー作成のロールは、ローカルまたは共通のいずれかです。
関連項目:
マルチテナント・コンテナ・データベース(CDB)のPUBLIC
の権限付与の詳細は、Oracle Multitenant管理者ガイドを参照してください
7.2.1.1 CDBの共通ロール
共通ロールは、ルートと既存および将来のすべてのプラガブル・データベース(PDB)に存在するデータベース・ロールです。共通ロールは、コンテナ間の操作に便利で、共通ユーザーがすべてのコンテナでロールを持つことを保証します。
すべての共通ロールは、ユーザー作成かOracle提供のいずれかです。Oracleから提供されるすべての事前定義ロールは共通ロールです(DBA
やPUBLIC
など)。ユーザー作成の共通ロールの名前は、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)を使用して作成される共通ロールは、ルート内で作成する必要があります。
関連項目:
-
CDBで共通に付与されるロールおよび権限の詳細は、Oracle Multitenant管理者ガイドを参照してください
-
共通ロールの管理方法の詳細は、Oracle Multitenant管理者ガイドを参照してください
7.2.1.2 PDBのローカル・ロール
ローカル・ロールは単一のプラガブル・データベース(PDB)内にのみ存在します。これは、非CDBのロールが非CDB内にのみ存在するのと同様です。ローカル・ロールには、そのロールが存在するコンテナで適用されるロールおよび権限のみを含めることができます。
同じマルチテナント・コンテナ・データベース(CDB)内のPDBには、同じ名前のローカル・ロールが含まれる可能性があります。たとえば、ユーザー作成のロールpdbadmin
は、hrpdb
とsalespdb
のどちらの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
の場合はSYS
、SYSOPER
の場合は、PUBLIC
です。
関連項目:
SYSDBA
権限およびSYSOPER
権限で許可された操作は、Oracle Database管理者ガイドを参照
7.4 ロールの管理
ロールは、関連するシステムおよびオブジェクト権限の名前付きグループです。ロールを作成し、ユーザーおよび他のロールに割り当てます。
この項では、次の項目について説明します。
関連項目:
-
ユーザー・セキュリティ、ロールおよび権限の管理の詳細は、『Oracle Database 2日でセキュリティ・ガイド』を参照してください
7.4.1 ロールの表示
ロールは、Oracle Enterprise Manager Database Express (EM Express)の「ロール」ページに表示します。
ロールを表示するには、次の手順を実行します。
-
ロールを管理する権限を持つユーザー・アカウントでEM Expressにログインします。このようなユーザー・アカウントの例は
SYSTEM
です。 -
「セキュリティ」メニューから「ロール」を選択します。
ロール・ページが表示されます。
-
特定のロールの詳細を表示するには、表示するロールの名前を選択し、「アクション」リストから「詳細の表示」を選択します。
また、ページの「検索」領域を使用して、特定のロールを検索することもできます。「検索」フィールドに、ロールの最初の数文字を入力します。入力すると、表内のロールのリストが、入力した文字を含む名前のロールに制限されます。
ロールの表示ページが表示されます。このページでは、選択済のロールに付与されたすべての権限およびロールを表示できます。
関連項目:
日常的な管理タスクでのSYSTEM
アカウント使用の推奨代替手段の詳細は、「SYSおよびSYSTEMユーザー」を参照してください
7.4.2 例: ロールの作成
APPDEV
と呼ばれるロールを作成できます。アプリケーション開発者はアプリケーションで使用するスキーマ・オブジェクトの作成、変更および削除を行う必要があるため、APPDEV
ロールには表7-2に示すシステム権限を含めます。
表7-2 APPDEVロールに付与されたシステム権限
権限 | 説明 |
---|---|
|
スキーマで表をユーザーが作成、変更および削除することを可能にします。 |
|
スキーマでビューをユーザーが作成、変更および削除することを可能にします。 |
|
スキーマでプロシージャをユーザーが作成、変更および削除することを可能にします。 |
|
スキーマでトリガーをユーザーが作成、変更および削除することを可能にします。 |
|
スキーマで順序をユーザーが作成、変更および削除することを可能にします。 |
|
スキーマでシノニムをユーザーが作成、変更および削除することを可能にします。 |
注意:
自社のアプリケーション開発者にAPPDEV
ロールを作成する場合、アプリケーション開発者にジョブ機能の実行に必要な権限のみを付与し、それ以上は付与しない、最低限の権限の原則に従う必要があります。そのため、自社のAPPDEV
ロールに付与する一連の権限は、表7-2
のAPPDEVロールに付与されるシステム権限とは異なる場合があります。
APPDEVロールを作成するには、次のステップを実行します。
-
EM Expressで、「ロールの表示」で説明されているとおりに、「ロール」ページに移動します。
-
「ロールの作成」をクリックします。
「ロールの作成」ウィザードが表示され、新規ロール・ページが表示されます。
-
「ロール名」フィールドに、
APPDEV
と入力します。 -
右矢印をクリックします。
権限ページが表示されます。
左側の使用可能なシステム権限およびロールの表には、ロールに割り当てることができる使用可能なシステム権限が表示されます。ロールは「ロール」列にあるチェック・マークで識別されます。右側の選択したシステム権限およびロールの表には、ロールに現在選択されているシステム権限およびロールが表示されます。いずれかの表の1つ以上のシステム権限またはロールを選択し、適切な矢印ボタンをクリックしてそれらの権限を他の表に移動します。
システム権限
CREATE TABLE
、CREATE VIEW
、CREATE PROCEDURE
、CREATE TRIGGER
、CREATE SEQUENCE
およびCREATE SYNONYM
を、作成中のAPPDEV
ロールに対して選択したシステム権限およびロールの表に移動します。定義中の
APPDEV
ロールを付与するユーザーが、選択したシステム権限およびロールの表のシステム権限またはロールを他のユーザーに付与できるようにする場合は、選択したシステム権限およびロールの表で、システム権限またはロールの「WITH ADMIN」オプションを有効にします。 -
「OK」をクリックします。
APPDEV
ロールは、ロール・ページのデータベース・ロールの表に表示されます。
7.4.3 例: ロールの変更
AQ_ADMINISTRATOR_ROLE
およびAQ_USER_ROLE
が必要かどうかを決定します。この2つのAdvanced Queuingロールを付与するには、APPDEV
ロールを編集します。
APPDEVロールを変更するには、次のステップを実行します。
-
EM Expressで、「ロールの表示」で説明されているとおりに、「ロール」ページに移動します。
-
APPDEV
ロールを選択し、「アクション」メニューから「権限の変更」を選択します。権限の変更ページが表示されます。
-
ロール
AQ_ADMINISTRATOR_ROLE
およびAQ_USER_ROLE
を、左側の使用可能なシステム権限およびロールの表から右側の選択したシステム権限およびロールの表に移動し、これら2つのロールをAPPDEV
ロールに付与します。 -
「OK」をクリックします。
確認メッセージが表示されます。
7.4.4 ロールの削除
ロールを削除するには:
-
EM Expressで、「ロールの表示」で説明されているとおりに、「ロール」ページに移動します。
-
削除するロールを選択し、「ロールの削除」をクリックします。
「確認」ページが表示されます。
-
「OK」をクリックします。
確認メッセージはロールが正常に削除されたことを示します。
7.5 データベース・ユーザー・アカウントの管理
関連項目:
7.5.1 ユーザー・アカウントの表示
ユーザー・アカウントは、Oracle Enterprise Manager Database Express (EM Express)の「ユーザー」ページに表示します。
ユーザーを表示するには、次の手順を実行します。
-
ユーザーを管理する権限を持つユーザー・アカウント(
SYSTEM
など)でEM Expressにログインします。 -
「セキュリティ」メニューから「ユーザー」を選択します。
ユーザー・ページが表示されます。マルチテナント・コンテナ・データベース(CDB)では、このページの名前は「共通のユーザー」ページです。
-
特定のユーザーの詳細を表示するには、次のいずれかを実行します。
-
ユーザー名をクリックします。
-
ユーザー名以外の行内の任意の場所をクリックしてユーザーを選択し、「アクション」メニューから「詳細の表示」を選択します。
ユーザーの表示ページが表示され、すべてのユーザー属性が表示されます。
-
関連項目:
日常的な管理タスクでのSYSTEM
アカウント使用の推奨代替手段の詳細は、「SYSおよびSYSTEMユーザー」を参照してください
7.5.2 例: ユーザー・アカウントの作成
Nickという名前のユーザーを作成するには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」に従って、「ユーザー」ページに移動します。
-
「ユーザー」ページで、「ユーザーの作成」をクリックします。
「ユーザーの作成」ウィザードが表示され、ユーザー・アカウント・ページが表示されます。
-
以下の値を入力します。
-
「名前」フィールドに
NICK
と入力します。 -
認証リストのデフォルト値
Password
を許可します。ユーザー認証のその他の拡張方法の詳細は、Oracle Databaseセキュリティ・ガイドを参照してください。
-
「パスワード」および「パスワードの確認」フィールドに、ユーザーNickのセキュアなパスワードを入力します。
セキュアなパスワードの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
-
プロファイル・リストで、値
DEFAULT
を受け入れます。この設定によりデフォルトのパスワード・ポリシーがユーザーNickに割り当てられます。
詳細は、「データベースのパスワード・ポリシーの設定」を参照してください。
-
「パスワードの期限切れ」オプションを有効にします。このオプションがユーザー作成時に有効になっていると、ユーザーは自分のアカウントに初めてログインするときに新しいパスワードを作成する必要があります。
-
「アカウントがロック済」は選択しないでください。
ユーザー・アカウントを使用されないように後でロックできます。ユーザー・アカウントの削除によりユーザーが所有するすべてのスキーマ・オブジェクトも同時に削除されてしまうのを防ぐため、一時的にユーザー・アカウントへのアクセスを拒否するにはユーザー・アカウントを削除せずにロックします。
-
-
右矢印ボタンをクリックします。
「表領域」ページが表示されます。
-
以下の値を入力します。
-
「デフォルト表領域」フィールドで、USERS表領域を選択します。
Nickが作成するすべてのスキーマ・オブジェクトは、他を指定しないかぎり
USERS
表領域に作成されます。「デフォルト表領域」フィールドを空白のままにすると、Nickは新しくインストールするデータベースのデフォルト表領域としてUSERS
を割り当てられます。USERS
表領域の詳細は、「表領域について」を参照してください。 -
「一時表領域」フィールドで、TEMP表領域を選択します。
「一時表領域」フィールドを空白のままにすると、Nickは新しくインストールするデータベースのデフォルト一時表領域として
TEMP
を割り当てられます。TEMP
表領域の詳細は、「表領域について」を参照してください。
-
-
右矢印ボタンをクリックします。
権限ページが表示されます。
-
「例: ユーザー・アカウントへの権限およびロールの付与」の手順に従って、ユーザーに、ロール、システム権限およびオブジェクト権限を付与します。
-
「例: ユーザー・アカウントへの表領域の割当て制限の割当て」の説明に従って、16MBの割当て制限を
USERS
表領域に割り当てます。
7.5.3 既存のユーザー・アカウントの複製による新規ユーザー・アカウントの作成
既存のユーザー・アカウントと属性が同じユーザー・アカウントを作成する場合は、既存のユーザー・アカウントを複製できます。Oracle Enterprise Manager Database Express (EM Express)を使用して、既存のユーザー・アカウントを複製して新規ユーザー・アカウントを作成します。
既存のユーザー・アカウントを複製して新規ユーザー・アカウントを作成するには、次の手順を実行します。
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
に付与される権限およびロールを示しています。
権限付与タイプ | 権限またはロール名 |
---|---|
ロール |
|
システム権限 |
|
オブジェクト権限 |
Oracle Databaseで提供される |
次の例は、Nickのユーザー・アカウントの作成中であることを想定しています。また、この例ではNickに権限またはロールをまだ付与していないとします。
Nickという名前のユーザーに権限およびロールを付与するには、次のステップを実行します。
-
EM Expressの「権限」ページで、左側の使用可能なシステム権限およびロールの表で、
APPDEV
ロールおよびCREATE SESSION
システム権限を検索して選択し、右矢印ボタンを使用してそれらを右側の選択したシステム権限およびロールの表に移動します。 -
「OK」をクリックします。
確認メッセージが表示され、ユーザーNickが作成されます。
-
「ユーザー・アカウントの表示」に従って、ユーザーNickの「ユーザーの表示」ページに移動します。
-
「オブジェクト権限」サブタブをクリックします。
オブジェクト権限サブページが表示されます。
-
「付与」ボタンをクリックします。
「オブジェクト権限の付与」ウィザードが表示され、スキーマおよびオブジェクト・タイプの選択ページが表示されます。
-
「スキーマ」リストで
HR
を選択し、「オブジェクト・タイプ」リストでTablesを選択します。この例では、ユーザー
NICK
に、Oracle Databaseで提供されるhr
サンプル・スキーマにあるすべての表に対するREAD
オブジェクト権限が付与されますが、このサンプル・スキーマには、例およびデモのための架空のデータが含まれています。機密データへのアクセス権は付与されません。 -
右矢印ボタンをクリックします。
オブジェクトの選択ページが表示されます。
-
すべての表を、左側の使用可能なオブジェクトの表から右側の選択したオブジェクトの表に移動し、それらの表をユーザーNickが使用できるようにします。
-
右矢印ボタンをクリックします。
オブジェクト権限の付与ページが表示されます。
-
「権限」リストの
READ
権限を選択し、NICK
に、Oracle Databaseで提供されるhr
サンプル・スキーマにあるすべての表に対するREAD
権限を付与します。 -
「OK」をクリックし、新しいオブジェクト権限の付与を保存します。
確認メッセージが表示されます。
7.5.5 例: ユーザー・アカウントへの表領域の割当て制限の割当て
Nickという名前のユーザー・アカウントを作成または変更すると想定します。Oracle Enterprise Manager Database Express (EM Express)を使用して、デフォルトの表領域でNickに領域使用量割当てとして16MBを割り当てることができます。
Nickが表領域にオブジェクトを作成できるように、デフォルト表領域にNickの表領域の割当て制限を割り当てる必要があります。(これは他の表領域にNickがオブジェクトを作成する場合も同様です。)Nickに特定の表領域を割り当てた後は、Nickの全オブジェクトが消費する領域の合計は、その表領域内で割当て制限を超えることはできません。UNLIMITED
の割当て制限を割り当てることもできます。
次の例は、Nickのユーザー・アカウントの作成中またはアカウントの編集中であることを想定しています。また、この例では、Nickには表領域の割当て制限が指定されていないものとします。
Nickという名前のユーザーに表領域の割当て制限を割り当てるには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」に従って、ユーザーNickの「ユーザーの表示」ページに移動します。
-
「割当て制限」サブページを選択します。
ユーザーNickはどの表領域でも割当て制限を持っていないことを示している割当て制限サブページが表示されます。
-
USERS
表領域を選択し、「編集」をクリックします。割当ての変更ページが表示されます。
-
「割当て制限」フィールドに16Mと入力し、ユーザーNickのUSERS表領域に16MBの割当て制限を割り当てます。
「割当て制限」フィールドに値を入力すると、EM Expressでは、選択した表領域に対する割当て制限を変更する際に、その値をデータベース・ブロック数の倍数に丸めます。たとえば、データベースで8Kサイズのデータベース・ブロックが使用されており、「割当て制限」フィールドに値10Kを入力した場合、EM Expressでは表領域に対する割当て制限を変更する際に、10Kを16K (2ブロック)に丸めます。
-
「OK」をクリックし、新しい割当て制限の割当てを保存します。
確認メッセージが表示されます。
7.5.6 例: ユーザー・アカウントの変更
Oracle Enterprise Manager Database Express (EM Express)を使用して、ユーザーNickの割当て制限をデフォルトの表領域USERS
で削除できます。そのためには、ユーザーNickのアカウントを変更する必要があります。
Nickという名前のユーザーを変更するには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」に従って、「ユーザー」ページに移動します。
-
ユーザー・アカウント
NICK
を選択し、「アクション」メニューから「詳細の表示」を選択します。「権限およびロール」サブページを含むユーザーの表示ページが表示されます。
-
「割当て制限」サブタブをクリックします。
「割当て制限」サブページが表示されます。
-
表領域
USERS
を選択し、「編集」をクリックします。割当ての変更ページが表示されます。
-
「割当て制限」フィールドに、「無制限」を入力します。
-
「OK」をクリックします。
確認メッセージが表示されます。
7.5.7 ユーザー・アカウントのロックおよびロック解除
ユーザー・アカウントをロックまたはロック解除するには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」トピックに従って、「ユーザー」ページに移動します。
-
目的のユーザー・アカウントをクリックします。
-
「アクション」メニューから「アカウントの変更」を選択します。
アカウントの変更ページが表示されます。
-
次のいずれかの操作を行います。
-
アカウントをロックするには、「アカウントがロック済」オプションを有効にして、「OK」をクリックします。
-
アカウントのロックを解除するには、「アカウントがロック済」オプションを無効にして、「OK」をクリックします。
-
7.5.8 ユーザー・パスワードの期限切れ
-
ユーザーのパスワードが漏洩した場合。
-
セキュリティ・ポリシーが表示され、定期的なパスワード変更を求める場合。
注意:
一定期間後にパスワードの期限を自動的に無効にする設定ができます。詳細は、「データベースのパスワード・ポリシーの設定」を参照してください。
-
ユーザーがパスワードを忘れた場合。
3番目の場合、ユーザー・アカウントを変更し、新規の一時パスワードを割り当て、パスワードを無効にします。一時パスワードでログインすると、新しいパスワードを選択するように要求されます。
ユーザーのパスワードを期限切れにするには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」に従って、「ユーザー」ページに移動します。
-
目的のユーザー・アカウントをクリックします。
-
「アクション」メニューから「アカウントの変更」を選択します。
アカウントの変更ページが表示されます。
-
「パスワードの期限切れ」を有効にして、「OK」をクリックします。
7.5.9 例: ユーザー・アカウントの削除
ユーザー・アカウントを削除するときには、そのユーザーが所有しているすべてのスキーマ・オブジェクトも削除されるため、注意が必要です。スキーマ・オブジェクトを残したままで、ユーザーがデータベースにログインできないようにするには、ユーザー・アカウントをロックします。「ユーザー・アカウントのロックおよびロック解除」を参照してください。
Nickという名前のユーザーを削除するには、次のステップを実行します。
-
EM Expressで、「ユーザー・アカウントの表示」に従って、「ユーザー」ページに移動します。
-
ユーザー・アカウントNickを選択し、「ユーザーの削除」をクリックします。「カスケード」オプションを選択すると、ユーザーNickのアカウントが削除される前に、Nickのスキーマ内のすべてのオブジェクトが削除されます。
「確認」ページが表示されます。
-
、「OK」をクリックして、ユーザー・アカウントの削除を確認します。
7.6 データベースのパスワード・ポリシーの設定
7.6.1 パスワード・ポリシーについて
-
ユーザー・アカウントのパスワードは180日で自動的に期限切れとなります。
-
パスワードの期限切れの7日後にユーザー・アカウントがロックされます。
-
10回ログインに失敗すると、ユーザー・アカウントが1日ロックされます。
デフォルト・パスワード・ポリシーは、プロファイルと呼ばれるデータベース・オブジェクトを使用してユーザー・アカウントに割り当てられます。各ユーザー・アカウントにプロファイルが割り当てられ、そのプロファイルには、パスワード・ポリシーを説明する複数の属性があります。データベースにはDEFAULT
という名前のデフォルト・プロファイルがあり、ユーザー・アカウントを作成する際に、他のプロファイルを指定しないかぎり、そのデフォルト・プロファイルがユーザー・アカウントに対して割り当てられます。
データベース・セキュリティを向上させるには、パスワード・ポリシーに厳しい制約を設ける必要がある場合があります。たとえば、パスワードの期限を70日に設定したり、ログインに3回失敗すると、ユーザー・アカウントがロックされるように設定することもできます。(ユーザー・アカウントのログインの失敗は、アカウントのパスワードとしてユーザーが不正なものを入力した場合に発生します。)また、パスワードを推定してシステムに入ろうとする侵入者から、十分に保護するために、パスワードを複雑に設定するように要求することもできます。たとえば、パスワードに少なくとも1文字の数字および1文字の句読点が含まれるように指定できます。
DEFAULT
プロファイルのパスワード関連属性を変更することによって、データベース内のすべてのユーザー・アカウントのパスワード・ポリシーを変更します。
注意:
異なるユーザー・アカウントに異なるパスワード・ポリシーを使用することもできます。これを行うには、複数のプロファイルを作成し、各プロファイルにそれぞれパスワード関連の属性を設定し、異なるユーザー・アカウントに異なるプロファイルを割り当てます。この手順についてはこの項では説明しません。
関連項目:
-
パスワード・プロファイルの作成例は、『Oracle Databaseセキュリティ・ガイド』を参照してください
-
SQL文
CREATE PROFILE
の詳細は、『Oracle Database SQL言語リファレンス』を参照してください
7.6.2 デフォルト・パスワード・ポリシーの変更
DEFAULT
のパスワード関連属性を変更し、すべてのデータベース・ユーザー・アカウントのデフォルトのパスワード・ポリシーを変更します。Oracle Enterprise Manager Database Express (EM Express)を使用して、デフォルトのパスワード・ポリシーを変更できます。デフォルト・パスワード・ポリシーを変更するには、次のステップを実行します。
-
デフォルト・パスワード・ポリシーを管理する権限を持つユーザー・アカウントでEM Expressにログインします。このようなユーザー・アカウントの例は
SYSTEM
です。 -
「セキュリティ」メニューで「プロファイル」を選択します。
プロファイル・ページが表示されます。
注意:
EM Expressを使用してマルチテナント・コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)を管理する場合、CDBではプロファイルはPDBレベルにあるため、「プロファイル」オプションはPDBレベルでのみ使用できます。
-
DEFAULT
と呼ばれるプロファイルを選択し、「アクション」メニューから「プロファイルの変更」を選択します。「プロファイルの変更」ウィザードが表示され、一般ページが表示されます。
-
右矢印ボタンをクリックします。
パスワード・ページが表示されます。
-
必要に応じてフィールド値を変更します。各フィールドの横にある下矢印をクリックし、選択のリストを表示します。リストから値を選択するか、値を入力します。
-
「OK」をクリックして、変更を保存します。
確認メッセージが表示されます。
関連項目:
-
日常的な管理タスクでの
SYSTEM
アカウント使用の推奨代替手段の詳細は、「SYSおよびSYSTEMユーザー」を参照してください
7.7 ユーザー・アカウントおよびセキュリティの管理: Oracle by Example Series
Oracle by Example(OBE)には、『Oracle Database 2日でデータベース管理者』に関するシリーズが含まれています。このOBEシリーズでは、この章のタスクを段階的に説明し、注釈付きのスクリーンショットを使用します。
-
ロールの管理
-
データベース・ユーザー・アカウントの管理
-
前述のチュートリアルのクリック可能なリストを表示するには、「ユーザー・アカウントおよびセキュリティの管理シリーズ」に移動します。
-
チュートリアル・シリーズを介してシームレスにナビゲートするには、次のリンクにアクセスしてください。
ペイン下部にある「>」ボタンをクリックして、チュートリアル間を移動できます。