この章の内容は次のとおりです。
Oracle Databaseのインストール後、データベースのインストールおよび構成を保護する必要があります。この章のメソッドは、これを行うために一般的に使用される方法(すべてがデータベース・ファイルの特定の領域に対する権限の制限に関連)を示しています。
Oracle Databaseは、いくつかのオペレーティング・システムで使用できます。Oracle Databaseに関する詳細なプラットフォーム固有情報は、次のマニュアルを参照してください。
『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』
『Oracle Database管理者リファレンス for Linux and UNIX-Based Operating Systems』
使用しているプラットフォームの『Oracle Databaseインストレーション・ガイド』
新しいデータベースを作成した場合、Oracle Databaseは次のデフォルトのセキュリティ設定を提供します。
デフォルトの監査設定を有効にします。詳細は、「セキュリティ関連のSQL文および権限に対するデフォルト監査の使用」を参照してください。
新しいパスワードまたは変更したパスワードの厳しい制約を作成します。新しいパスワードの要件については、「パスワードの作成要件」を参照してください。
PUBLICロールからCREATE EXTERNAL JOB権限を削除します。よりセキュリティを強化するために、CREATE EXTERNAL JOB
権限をSYS
、データベース管理者、およびこの権限が必要な信頼できるユーザーにのみ付与します。
セキュリティ関連の初期化パラメータおよびプロファイル・パラメータを設定します。表2-1に、変更されたパラメータ設定を示します。
表2-1 初期化パラメータとプロファイル・パラメータのデフォルトのセキュリティ設定
設定 | 10g のデフォルト | 11g のデフォルト |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
注意: アプリケーションがOracle Database 10g リリース2(10.2)のデフォルトのパスワード・セキュリティ設定を使用している場合、リリース11g のパスワード・セキュリティ設定を使用するようにアプリケーションを変更するまで、Oracle Database 10.2のパスワード・セキュリティ設定に戻すことができます。これには、undopwd.sql スクリプトを実行します。
リリース 11g のパスワード・セキュリティ設定を使用するようにアプリケーションを変更した後、データベースを手動で更新してビジネスのニーズに適したパスワード・セキュリティ構成にするか、
|
ここでは、データ・ディクショナリを保護する方法を説明します。データ・ディクショナリは、スキーマ定義やデフォルト値など、データベースに関する情報を提供する一連のデータベース表です。
この項の内容は次のとおりです。
Oracleデータ・ディクショナリは、データベースに関する情報を提供するデータベース表のセットです。データ・ディクショナリの内容は次のとおりです。
Oracle Databaseユーザーの名前
各ユーザーに付与されている権限とロール
データベース内のすべてのスキーマ・オブジェクトの定義(表、ビュー、索引、クラスタ、シノニム、順序、プロシージャ、ファンクション、パッケージ、トリガーなど)
スキーマ・オブジェクトに割り当てられている容量と現在使用されている容量
列のデフォルト値
整合性制約情報
様々なスキーマ・オブジェクトをアクセスまたは更新した人物などの監査情報
その他の一般的なデータベース情報
ある特定のデータベースのデータ・ディクショナリ表およびビューは、そのデータベースのSYSTEM
表領域に格納されます。ある特定のデータベースのデータ・ディクショナリ表およびビューは、すべてユーザーSYS
によって所有されます。SYSDBA
権限を使用してデータベースに接続すると、データ・ディクショナリに対する完全なアクセス権が許可されます。SYSDBA
権限へのアクセスは、パッチ適用やその他の管理操作などの必要な操作のみに限定することをお薦めします。データ・ディクショナリは、すべてのOracle Databaseの中心です。
データ・ディクショナリの内容は、データ・ディクショナリ・ビューを問い合せることで参照できます(各ビューの説明はOracle Databaseリファレンスを参照)。ただし、データ・ディクショナリのすべてのオブジェクトがユーザーに公開されるわけではありません。なお、データ・ディクショナリ・オブジェクトのサブセット(USER_%
で始まるオブジェクトなど)は、読取り専用としてすべてのデータベース・ユーザーに公開されます。
例2-1に、DICTIONARY
ビューを問い合せることでデータ・ディクショナリに固有のデータベース・ビューのリストを検索する方法を示します。
O7_DICTIONARY_ACCESSIBILITY
初期化パラメータをFALSE
に設定することで、データ・ディクショナリを保護できます。このパラメータにより、ANY
システム権限を持つユーザーがデータ・ディクショナリ(SYS
スキーマ内のオブジェクト)に対してこれらの権限を使用することを防ぎます。
Oracle Databaseでは非常に細かく権限を設定できます。通常ANY
権限と呼ばれる権限は、このような権限の1つであり、一般的にアプリケーション所有者や各データベース管理者にのみ付与されます。たとえば、アプリケーション所有者にDROP ANY TABLE
権限を付与する場合があります。07_DICTIONARY_ACCESSIBILITY
初期化パラメータを有効または無効に設定することで、ANY
権限が偶発的または故意に使用されないように、Oracleデータ・ディクショナリを保護できます。
データ・ディクショナリ保護を有効にするには、次のようにします。
Oracle Enterprise Manager Database Control(Database Control)を起動します。
Database Controlを起動する手順については、『Oracle Database 2日でデータベース管理者』を参照してください。
SYS
としてログインし、SYSDBA
権限で接続します。
ユーザー名: 管理権限を持つユーザーの名前を入力します。この場合は、SYS
と入力します。
パスワード: SYS
ユーザーのパスワードを入力します。
接続モード: リストから「SYSDBA」を選択します。
Oracle Enterprise Managerのデータベースのホームページ(データベースのホームページ)が表示されます。
「サーバー」をクリックして、「サーバー」サブページを表示します。
「データベース構成」セクションで「初期化パラメータ」をクリックします。
「初期化パラメータ」ページが表示されます。
リストで、O7_DICTIONARY_ACCESSIBILITY
を検索します。
「名前」フィールドでO7_
(O
の文字)を入力し、「実行」をクリックします。パラメータ名の最初の数文字を入力できます。この場合、O7_
によってO7_DICTIONARY_ACCESSIBILTY
パラメータが表示されます。
パラメータによっては、「SPFile」サブページの値を変更する必要があります。「SPFile」タブをクリックし、「SPFile」サブページを表示します。
O7_DICTIONARY_ACCESSIBILTY
の値をFALSE
に設定します。
「適用」をクリックします。
Oracle Databaseインスタンスを再起動します。
「データベース・インスタンス」リンクをクリックします。
「ホーム」をクリックしてDatabase Controlのホームページを表示します。
「一般」で「停止」をクリックします。
資格証明の起動/停止ページでは、資格証明を入力します。
詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
完全に停止した後に、「起動」をクリックします。
注意:
|
次のガイドラインに従うことにより、オペレーティング・システム・レベルでOracle Databaseへのアクセスを保護できます。
Oracle Databaseホスト(物理コンピュータ)上のオペレーティング・システム・アカウントの権限(管理、root権限またはDBA)を制限します。ユーザーには、そのタスクの実行に必要な、最低限の権限のみを付与します。
Oracle Databaseホーム(インストール)・ディレクトリおよびそのコンテンツの、デフォルトのファイルおよびディレクトリの権限を変更する権限を制限します。認可されたオペレーティング・システム・ユーザーやOracle所有者でも、オラクル社からの指示がないかぎり、これらの権限を変更してはいけません。
シンボリック・リンクを制限します。データベースへのパスやファイルを作成するときに、ファイルおよびパスのいずれの部分も、信頼できないユーザーにより変更可能ではないことを確認します。ファイルおよびパスのすべてのコンポーネントは、データベース管理者またはrootなどの信頼できるアカウントにより所有されている必要があります。
この推奨は、データ・ファイル、ログ・ファイル、トレース・ファイル、外部表、BFILEなど、すべてのタイプのファイルに適用されます。
多くのOracle Database製品は、Oracle Java Virtual Machine(OJVM)などのランタイム機能を使用します。データベース・ランタイム機能には、すべての権限を割り当てないでください。かわりに、データベースの外部でファイルおよびパッケージを実行する可能性のある機能の明示的なドキュメント・ルート・ファイル・パスに特定の権限を付与します。
次に、個々のファイル(太字)を指定した脆弱なランタイム・コールの例を示します。
call dbms_java.grant_permission('wsmith',
'SYS:java.io.FilePermission','filename','read');
次に、ディレクトリ・パス(太字)を指定して、ディレクトリ内のすべてのファイルを保護する、より適切な(よりセキュアな)ランタイム・コールの例を示します。
call dbms_java.grant_permission('wsmith',
'SYS:java.io.FilePermission','directory_path','read');
表2-2 に、Oracle Databaseのインストール環境と構成を保護するために設定する初期化パラメータを示します。
表2-2 インストール環境と構成のセキュリティに使用される初期化パラメータ
初期化パラメータ | デフォルト設定 | 説明 |
---|---|---|
|
|
リリース番号など、クライアント接続での製品バージョン情報の表示を制御します。侵入者は、データベース・リリース番号を使用して、データベース・ソフトウェアに存在するセキュリティ脆弱性に関する情報を検索できる場合があります。このパラメータを設定することで、詳細な製品バージョンの表示を有効または無効にできます。 このパラメータおよび類似パラメータの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。このパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
|
|
|
関連項目: 初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
ここでは、Database Controlを使用して初期化パラメータの値を変更する方法を説明します。使用可能な初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。
初期化パラメータ値を変更するには、次のようにします。
Database Controlを起動します。
SYSDBA
権限を持つユーザーSYS
としてログインします。
ユーザー名: SYS
パスワード: パスワードを入力します。
接続モード: SYSDBA
「サーバー」をクリックして、「サーバー」サブページを表示します。
「データベース構成」セクションで「初期化パラメータ」をクリックします。
「初期化パラメータ」ページが表示されます。
「名前」フィールドに、変更するパラメータの名前を入力し、「実行」をクリックします。
たとえば、SEC_RETURN_SERVER_RELEASE_NUMBER
パラメータを検索する場合は、SEC_RETURN
と入力します。または、パラメータのリストを下にスクロールして、変更するパラメータを検索できます。
パラメータによっては、「SPFile」サブページの値を変更する必要があります。「SPFile」タブをクリックし、「SPFile」サブページを表示します。
「値」フィールドで、新しい値を入力するか、リストが存在する場合はリストから選択します。
「適用」をクリックします。
パラメータが静的な場合は、Oracle Databaseインスタンスを再起動します。
初期化パラメータが静的かどうかを調べるには、『Oracle Databaseリファレンス』の説明を確認してください。サマリー表の変更可能設定が「いいえ」の場合は、データベース・インスタンスを再起動する必要があります。
「データベース・インスタンス」リンクをクリックします。
「ホーム」をクリックしてDatabase Controlのホームページを表示します。
「一般」で「停止」をクリックします。
資格証明の起動/停止ページでは、資格証明を入力します。
詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
完全に停止した後に、「起動」をクリックします。