Oracle® Database Vault

管理者ガイド

11gリリース2(11.2)

B56297-10(原本部品番号:E23090-13)

2016年11月

Oracle Database Vault管理者ガイド, 11gリリース2(11.2)

B56297-10

Copyright © 2006, 2016, Oracle and/or its affiliates. All rights reserved.

原本著者:  Patricia Huey

原本協力者:  Priya Badnar、Tammy Bednar、Tom Best、Ji-won Byun、Ben Chang、Martin Cheng、Chi Ching Chui、Scott Gaetjen、Viksit Gaur、Lijie Heng、Sumit Jeloka、Dominique Jeunot、Terri Keller、Peter Knaggs、Chon Lee、Frank Lee、Paul Needham、Deborah Owens、Yi Ouyang、Hozefa Palitanawala、Robert Pang、Rupa Parameswaran、Gayathri Sairamkrishnan、Vipin Samar、Javed Samuel、James Spiller、Ashwini Supur、Srividya Tata、Kamal Tbeileh、Sudheesh Varma、Peter Wahl、Rodney Ward、Daniel Wong、Aravind Yalamanchi

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、このソフトウェアまたはハードウェアを安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracleおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXはThe Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

例一覧

図一覧

表一覧

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

Oracle Database Vaultの新機能

- Oracle Database 11gリリース2(11.2.0.4)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2(11.2.0.3)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2 (11.2.0.2)で変更されたOracle Database Vaultの機能

- Oracle Database 11gリリース2(11.2.0.2)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2(11.2.0.1)のOracle Database Vaultの新機能

1 Oracle Database Vaultの概要

- Oracle Database Vaultの概要

- Oracle Database Vaultのコンポーネント

- Oracle Database Vaultアクセス制御コンポーネント

- Oracle Database Vault Administrator

- Oracle Database Vault DVSYSおよびDVFスキーマ

- Oracle Database Vault PL/SQLインタフェースおよびパッケージ

- Oracle Database VaultおよびOracle Label SecurityのPL/SQL API

- Oracle Database Vaultレポートおよびモニタリング・ツール

- Oracle Database Vaultのコンプライアンスへの対応

- Oracle Database Vaultの内部関係者への対応

- Oracle Database Vaultによる柔軟なセキュリティ・ポリシーの実現

- Oracle Database Vaultのデータベース統合に関する問題への対応

2 Oracle Database Vaultのインストール後のヒント

- 変更される初期化およびパスワード・パラメータ設定

- Oracle Database Vaultによるユーザー認可の制限

- 職務分離を実施するための新規データベース・ロール

- 既存のユーザーおよびロールから取り消される権限

- 既存のユーザーおよびロールに対して阻止される権限

- Oracle Database VaultがOracle Databaseの監査に与える影響

- AUD$表のSYSスキーマからSYSTEMスキーマへの移動

- AUDIT文の設定の変更

3 Oracle Database Vaultの開始

- Oracle Database Vaultの登録(有効化)

- Oracle Database Vaultの起動

- Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス

- Database ControlからのOracle Database Vaultページへのアクセス

- Grid ControlからのOracle Database Vaultページへのアクセス

- Database ControlからのDatabase Vault Administratorへのアクセス

- Oracle Database Vault Administratorの起動

- クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護

- このチュートリアルの概要

- 手順1: データ・ディクショナリ・レルムへのSYSTEMユーザーの追加

- 手順2: SYSTEMとしてログインしHRスキーマにアクセスする

- 手順3: レルムの作成

- 手順4: HRスキーマのEMPLOYEES表の保護

- 手順5: レルムの認可の作成

- 手順6: レルムのテスト

- 手順7: レポートの実行

- 手順8: このチュートリアルのコンポーネントの削除

4 レルムの構成

- レルムの概要

- デフォルトのレルム

- レルムの作成

- レルムの編集

- レルム・セキュア・オブジェクトの作成

- レルム認可の定義

- レルムの無効化および有効化

- レルムの削除

- レルムの動作

- レルムでの認可の動作

- レルムで保護されたオブジェクトへのアクセスの有効化

- レルムの動作の例

- その他のOracle Database Vaultコンポーネントへのレルムの影響

- レルム設計のガイドライン

- レルムのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

5 ルール・セットの構成

- ルール・セットの概要

- デフォルトのルール・セット

- ルール・セットの作成

- ルール・セットの構成または編集

- ルール・セットに追加するルールの作成

- 新規ルールの作成

- 既存のルールのルール・セットへの追加

- ルール・セットの削除

- ルール・セットの動作

- Oracle Database Vaultによるルールの評価方法

- ルール・セット内でのルールのネスト

- 1人のユーザーを除く全員に適用するルールの作成

- チュートリアル: セキュリティ違反の電子メール・アラートの作成

- このチュートリアルの概要

- 手順1: UTL_MAIL PL/SQLパッケージのインストールおよび構成

- 手順2: 電子メール・セキュリティ・アラートPL/SQLプロシージャの作成

- 手順3: ネットワーク・サービス用のアクセス制御リストの構成

- 手順4: 電子メール・セキュリティ・アラートを使用するためのルール・セットおよびコマンド・ルールの作成

- 手順5: 電子メール・セキュリティ・アラートのテスト

- 手順6: このチュートリアルのコンポーネントの削除

- チュートリアル: 二人制整合性(デュアル・キー・セキュリティ)の構成

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: ユーザーpatch_bossがログインしているかどうかをチェックするファンクションの作成

- 手順3: ユーザーのアクセスを制御するためのルール、ルール・セットおよびコマンド・ルールの作成

- 手順4: ユーザーのアクセスのテスト

- 手順5: このチュートリアルのコンポーネントの削除

- ルール・セット設計のガイドライン

- ルール・セットのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

6 コマンド・ルールの構成

- コマンド・ルールの概要

- デフォルトのコマンド・ルール

- コマンド・ルールで保護できるSQL文

- コマンド・ルールの作成および編集

- コマンド・ルールの削除

- コマンド・ルールの動作

- チュートリアル: ユーザーによる表作成を制御するためのコマンド・ルールの使用方法

- このチュートリアルの概要

- 手順1: ユーザーSCOTTとしての接続と表の作成

- 手順2: DVOWNERまたはDV_ADMINロールを使用した接続とコマンド・ルールの作成

- 手順3: コマンド・ルールのテスト

- 手順4: このチュートリアルのコンポーネントの削除

- コマンド・ルール設計のガイドライン

- コマンド・ルールのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

7 ファクタの構成

- ファクタの概要

- デフォルトのファクタ

- ファクタの作成

- ファクタの編集

- ファクタへのアイデンティティの追加

- ファクタ・アイデンティティの概要

- ファクタ・アイデンティティの作成および構成

- 他のファクタを使用するアイデンティティを構成するためのアイデンティティ・マップの使用方法

- ファクタの削除

- ファクタの動作

- セッション確立時のファクタの処理

- ファクタの取得

- ファクタの設定

- チュートリアル: データベースへの非定型ツール・アクセスの阻止

- このチュートリアルの概要

- 手順1: SCOTTユーザー・アカウントの有効化

- 手順2: Moduleファクタの作成

- 手順3: Limit SQL*Plus Accessルールおよびルール・セットの作成

- 手順4: CONNECTコマンド・ルールの作成

- 手順5: 非定期ツール・アクセス制限のテスト

- 手順6: このチュートリアルのコンポーネントの削除

- チュートリアル: セッション・データに基づくユーザー・アクティビティの制限

- このチュートリアルの概要

- 手順1: 管理者ユーザーの作成

- 手順2: Domainファクタへのアイデンティティの追加

- 手順3: Domainファクタ・アイデンティティのClient_IPファクタへのマップ

- 手順4: 時間を設定するルール・セットの作成およびファクタ・アイデンティティの選択

- 手順5: ルール・セットを使用するコマンド・ルールの作成

- 手順6: ファクタ・アイデンティティの設定のテスト

- 手順7: このチュートリアルのコンポーネントの削除

- ファクタ設計のガイドライン

- ファクタのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

8 Oracle Database Vaultのセキュア・アプリケーション・ロールの構成

- Oracle Database Vaultのセキュア・アプリケーション・ロールの概要

- セキュア・アプリケーション・ロールの作成および編集

- セキュア・アプリケーション・ロールの保護

- セキュア・アプリケーション・ロールの削除

- セキュア・アプリケーション・ロールの動作

- チュートリアル: Database Vaultセキュア・アプリケーション・ロールによるアクセス権限の付与

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: OEユーザー・アカウントの有効化

- 手順3: ルール・セットとそのルールの作成

- 手順4: Database Vaultセキュア・アプリケーション・ロールの作成

- 手順5: セキュア・アプリケーション・ロールへのSELECT権限の付与

- 手順6: Database Vaultセキュア・アプリケーション・ロールのテスト

- 手順7: このチュートリアルのコンポーネントの削除

- セキュア・アプリケーション・ロールのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

9 Oracle Database Vaultとその他のOracle製品の統合

- Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合

- Oracle Database Vaultと透過的データ暗号化の統合

- Oracle Virtual Private Databaseへのファクタの追加

- Oracle Database VaultとOracle Label Securityの統合

- Oracle Database VaultとOracle Label Securityの統合方法

- Oracle Database VaultをOracle Label Securityとともに使用するための要件

- Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法

- チュートリアル: Oracle Database VaultとOracle Label Securityの統合

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: Oracle Label Securityポリシーの作成

- 手順3: OLS認可を制御するためのOracle Database Vaultルールの作成

- 手順4: ルール・セットを使用するためのALTER SYSTEMコマンド・ルールの更新

- 手順5: 認可のテスト

- 手順6: このチュートリアルのコンポーネントの削除

- 関連するレポートおよびデータ・ディクショナリ・ビュー

10 Oracle Database Vault環境でのDBA操作

- Oracle Database VaultのOracle Enterprise Managerとの使用

- Oracle Enterprise ManagerのDatabase Vault AdministratorのURLの設定

- Oracle Database Vaultポリシーの他のデータベースへの伝播

- Oracle Database Vaultポリシーに対するEnterprise Manager Grid Controlアラートの使用

- Enterprise Manager Grid ControlでのOracle Database Vault固有レポートの使用

- Oracle Database Vault環境でのDBSNMPアカウント・パスワードの変更

- Oracle Database Vault環境でのOracle Data Pumpの使用

- Oracle Database Vault環境でのOracle Data Pumpの使用について

- データベース管理者に対するOracle Data Pumpの使用の認可

- Oracle Database Vault環境でのデータのエクスポートまたはインポートのガイドライン

- Data Pumpを使用するデータベース管理者の認可の取消し

- Oracle Database Vault環境でのデータベース・ジョブのスケジュール

- Oracle Database Vault環境でのデータベース・ジョブのスケジュールについて

- ジョブ・スケジュール管理者へのOracle Database Vaultに対する権限の付与

- ジョブ・スケジュール管理者からの権限の取消し

- Oracle Database VaultのOracle Recovery Managerとの使用

- Oracle Database Vault環境でのOracle Streamsの使用

- Oracle Database Vault環境でのXStreamの使用

- Oracle Database Vault環境でのOracle GoldenGateの使用

- Oracle Database Vault環境でのデータ・マスキングの使用

- Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて

- データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加

- マスクする表またはスキーマへのアクセス権のユーザーへの付与

- データ・マスキングの権限を有効にするコマンド・ルールの作成

11 Oracle Database Vaultオブジェクト

- Oracle Database Vaultスキーマ

- DVSYSスキーマ

- DVFスキーマ

- Oracle Database Vaultロール

- Oracle Database Vaultロールの概要

- DV_OWNER Database Vault所有者ロール

- DV_ADMIN Database Vault構成管理者ロール

- DV_MONITOR Database Vault監視ロール

- DV_SECANALYST Database Vaultセキュリティ分析者ロール

- DV_AUDIT_CLEANUP監査証跡クリーンアップ・ロール

- DV_STREAMS_ADMIN Oracle Streams構成ロール

- DV_XSTREAM_ADMIN XStream管理ロール

- DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール

- DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール

- DV_PATCH_ADMIN Database Vaultデータベース・パッチ・ロール

- DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール

- DV_REALM_OWNER Database VaultレルムDBAロール

- DV_REALM_RESOURCE Database Vaultアプリケーション・リソース所有者ロール

- DV_PUBLIC Database Vault PUBLICロール

- Oracle Database Vaultアカウント

12 DBMS_MACADMパッケージの使用方法

- DBMS_MACADMパッケージについて

- DBMS_MACADMのレルム・プロシージャ

- ADD_AUTH_TO_REALMプロシージャ

- ADD_OBJECT_TO_REALMプロシージャ

- CREATE_REALMプロシージャ

- DELETE_AUTH_FROM_REALMプロシージャ

- DELETE_OBJECT_FROM_REALMプロシージャ

- DELETE_REALMプロシージャ

- DELETE_REALM_CASCADEプロシージャ

- RENAME_REALMプロシージャ

- UPDATE_REALMプロシージャ

- UPDATE_REALM_AUTHプロシージャ

- DBMS_MACADMのルール・セット・プロシージャ

- ADD_RULE_TO_RULE_SETプロシージャ

- CREATE_RULEプロシージャ

- CREATE_RULE_SETプロシージャ

- DELETE_RULEプロシージャ

- DELETE_RULE_FROM_RULE_SETプロシージャ

- DELETE_RULE_SETプロシージャ

- RENAME_RULEプロシージャ

- RENAME_RULE_SETプロシージャ

- SYNC_RULESプロシージャ

- UPDATE_RULEプロシージャ

- UPDATE_RULE_SETプロシージャ

- DBMS_MACADMのコマンド・ルール・プロシージャ

- CREATE_COMMAND_RULEプロシージャ

- DELETE_COMMAND_RULEプロシージャ

- UPDATE_COMMAND_RULEプロシージャ

- DBMS_MACADMのファクタ・プロシージャおよびファンクション

- ADD_FACTOR_LINKプロシージャ

- ADD_POLICY_FACTORプロシージャ

- CHANGE_IDENTITY_FACTORプロシージャ

- CHANGE_IDENTITY_VALUEプロシージャ

- CREATE_DOMAIN_IDENTITYプロシージャ

- CREATE_FACTORプロシージャ

- CREATE_FACTOR_TYPEプロシージャ

- CREATE_IDENTITYプロシージャ

- CREATE_IDENTITY_MAPプロシージャ

- DELETE_FACTORプロシージャ

- DELETE_FACTOR_LINKプロシージャ

- DELETE_FACTOR_TYPEプロシージャ

- DELETE_IDENTITYプロシージャ

- DELETE_IDENTITY_MAPプロシージャ

- DROP_DOMAIN_IDENTITYプロシージャ

- GET_INSTANCE_INFOファンクション

- GET_SESSION_INFOファンクション

- RENAME_FACTORプロシージャ

- RENAME_FACTOR_TYPEプロシージャ

- UPDATE_FACTORプロシージャ

- UPDATE_FACTOR_TYPEプロシージャ

- UPDATE_IDENTITYプロシージャ

- DBMS_MACADMのセキュア・アプリケーション・ロール・プロシージャ

- CREATE_ROLEプロシージャ

- DELETE_ROLEプロシージャ

- RENAME_ROLEプロシージャ

- UPDATE_ROLEプロシージャ

- DBMS_MACADMのOracle Label Securityポリシー・プロシージャ

- CREATE_MAC_POLICYプロシージャ

- CREATE_POLICY_LABELプロシージャ

- DELETE_MAC_POLICY_CASCADEプロシージャ

- DELETE_POLICY_FACTORプロシージャ

- DELETE_POLICY_LABELプロシージャ

- UPDATE_MAC_POLICYプロシージャ

- DBMS_MACADMの一般システム・メンテナンス・プロシージャ

- ADD_NLS_DATAプロシージャ

- AUTHORIZE_DATAPUMP_USERプロシージャ

- AUTHORIZE_SCHEDULER_USERプロシージャ

- UNAUTHORIZE_DATAPUMP_USERプロシージャ

- UNAUTHORIZE_SCHEDULER_USERプロシージャ

13 DBMS_MACSEC_ROLESパッケージの使用方法

- DBMS_MACSEC_ROLESパッケージについて

- CAN_SET_ROLEファンクション

- SET_ROLEプロシージャ

14 DBMS_MACUTLパッケージの使用方法

- DBMS_MACUTLパッケージについて

- DBMS_MACUTLの定数

- DBMS_MACUTLの定数のリスト

- DBMS_MACUTLの定数の使用例

- DBMS_MACUTLパッケージのプロシージャおよびファンクション

- CHECK_DVSYS_DML_ALLOWEDプロシージャ

- GET_CODE_VALUEファンクション

- GET_SECONDファンクション

- GET_MINUTEファンクション

- GET_HOURファンクション

- GET_DAYファンクション

- GET_MONTHファンクション

- GET_YEARファンクション

- IS_ALPHAファンクション

- IS_DIGITファンクション

- IS_DVSYS_OWNERファンクション

- IS_OLS_INSTALLEDファンクション

- IS_OLS_INSTALLED_VARCHARファンクション

- USER_HAS_ROLEファンクション

- USER_HAS_ROLE_VARCHARファンクション

- USER_HAS_SYSTEM_PRIVILEGEファンクション

15 Oracle Database Vault PL/SQLインタフェースの使用方法

- Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション

- SET_FACTORプロシージャ

- GET_FACTORファンクション

- GET_TRUST_LEVELファンクション

- GET_TRUST_LEVEL_FOR_IDENTITYファンクション

- ROLE_IS_ENABLEDファンクション

- GET_FACTOR_LABELファンクション

- Oracle Database VaultのPL/SQLファクタ・ファンクション

- F$AUTHENTICATION_METHODファンクション

- F$CLIENT_IPファンクション

- F$DATABASE_DOMAINファンクション

- F$DATABASE_HOSTNAMEファンクション

- F$DATABASE_INSTANCEファンクション

- F$DATABASE_IPファンクション

- F$DATABASE_NAMEファンクション

- F$DOMAINファンクション

- F$ENTERPRISE_IDENTITYファンクション

- F$IDENTIFICATION_TYPEファンクション

- F$LANGファンクション

- F$LANGUAGEファンクション

- F$MACHINEファンクション

- F$NETWORK_PROTOCOLファンクション

- F$PROXY_ENTERPRISE_IDENTITYファンクション

- F$SESSION_USERファンクション

- Oracle Database VaultのPL/SQLルール・ファンクション

- DV_SYSEVENTファンクション

- DV_LOGIN_USERファンクション

- DV_INSTANCE_NUMファンクション

- DV_DATABASE_NAMEファンクション

- DV_DICT_OBJ_TYPEファンクション

- DV_DICT_OBJ_OWNERファンクション

- DV_DICT_OBJ_NAMEファンクション

- DV_SQL_TEXTファンクション

- Oracle Database VaultのPL/SQLパッケージ

16 Oracle Database Vaultのデータ・ディクショナリ・ビュー

- Oracle Database Vaultのデータ・ディクショナリ・ビューについて

- DVSYS.DBA_DV_CODEビュー

- DVSYS.DBA_DV_COMMAND_RULEビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_FACTOR_LINKビュー

- DVSYS.DBA_DV_FACTOR_TYPEビュー

- DVSYS.DBA_DV_IDENTITYビュー

- DVSYS.DBA_DV_IDENTITY_MAPビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.DBA_DV_REALM_AUTHビュー

- DVSYS.DBA_DV_REALM_OBJECTビュー

- DVSYS.DBA_DV_ROLEビュー

- DVSYS.DBA_DV_RULEビュー

- DVSYS.DBA_DV_RULE_SETビュー

- DVSYS.DBA_DV_RULE_SET_RULEビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

17 Oracle Database Vaultの監視

- セキュリティ違反未遂行為

- データベースの構成および構造の変更

- カテゴリ別のセキュリティ・ポリシー変更

- カテゴリ別のセキュリティ・ポリシー変更について

- カテゴリ別のセキュリティ・ポリシー変更の監視手順

- セキュリティ・ポリシー変更の詳細

18 Oracle Database Vaultレポート

- Oracle Database Vaultレポートのカテゴリ

- Oracle Database Vaultレポートを実行できるユーザー

- Oracle Database Vaultレポートの実行方法

- Oracle Database Vaultレポートの生成

- Oracle Database Vault構成の問題のレポート

- 「コマンド・ルール構成の問題」レポート

- 「ファクタ構成の問題」レポート

- 「アイデンティティのないファクタ」レポート

- 「アイデンティティ構成の問題」レポート

- 「レルム認可構成の問題」レポート

- 「ルール・セット構成の問題」レポート

- 「セキュア・アプリケーション構成の問題」レポート

- Oracle Database Vaultの監査レポート

- 「レルムの監査」レポート

- 「コマンド・ルールの監査」レポート

- 「ファクタの監査」レポート

- 「Label Security統合の監査」レポート

- 「コアDatabase Vault監査証跡」レポート

- 「セキュア・アプリケーション・ロールの監査」レポート

- 一般セキュリティ・レポートの生成

- オブジェクト権限レポート

- 「PUBLICでのオブジェクト・アクセス」レポート

- 「PUBLIC以外でのオブジェクト・アクセス」レポート

- 「直接オブジェクト権限」レポート

- 「オブジェクトの依存性」レポート

- データベース・アカウントのシステム権限レポート

- 「データベース・アカウントごとの直接システム権限」レポート

- 「データベース・アカウントごとの直接および間接システム権限」レポート

- 「データベース・アカウントごとの階層システム権限」レポート

- 「データベース・アカウントのANYシステム権限」レポート

- 「権限ごとのシステム権限」レポート

- 機密オブジェクト・レポート

- 「強力なSYSパッケージに対するEXECUTE権限」レポート

- 「機密オブジェクトへのアクセス」レポート

- 「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート

- 「SYSDBA/SYSOPER権限を持つアカウント」レポート

- 権限管理 - サマリー・レポート

- 「権限受領者ごとの権限の配布」レポート

- 「権限受領者、所有者ごとの権限の配布」レポート

- 「権限受領者、所有者、権限ごとの権限の配布」レポート

- 強力なデータベース・アカウントおよびロールのレポート

- 「WITH ADMIN権限の付与」レポート

- 「DBAロールを持つアカウント」レポート

- 「セキュリティ・ポリシー除外」レポート

- 「BECOME USER」レポート

- ALTER SYSTEMまたはALTER SESSIONレポート

- 「パスワード履歴へのアクセス」レポート

- WITH GRANT権限レポート

- 「指定されたロールを持つロールとアカウント」レポート

- 「カタログ・ロールを持つデータベース・アカウント」レポート

- 「AUDIT権限」レポート

- 「OSセキュリティ脆弱性に関する権限」レポート

- 初期化パラメータおよびプロファイルのレポート

- 「セキュリティ関連のデータベース・パラメータ」レポート

- 「リソース・プロファイル」レポート

- 「システム・リソース制限」レポート

- データベース・アカウント・パスワードのレポート

- 「データベース・アカウントのデフォルト・パスワード」レポート

- 「データベース・アカウントのステータス」レポート

- セキュリティ監査レポート: コア・データベース監査レポート

- その他のセキュリティ脆弱性レポート

- 「Javaポリシーの付与」レポート

- 「OSディレクトリ・オブジェクト」レポート

- 「動的SQLに依存するオブジェクト」レポート

- アンラップされたPL/SQLパッケージ本体レポート

- 「ユーザーまたはパスワード表」レポート

- 「表領域割当て制限」レポート

- 「所有者でないオブジェクトのトリガー」レポート

A Oracle Database Vaultの監査

- Oracle Database Vault固有の監査イベント

- Oracle Database Vaultの監査イベント

- Oracle Database Vault監査証跡の書式

- Oracle Database Vault監査証跡のアーカイブおよびパージ

- Oracle Database Vault用に作成されるOracle Database監査設定

B Oracle Database Vaultの無効化および有効化

- Oracle Database Vaultを無効にする必要がある場合

- Oracle Database Vaultが有効か無効かの確認

- 手順1: Oracle Database Vaultの無効化

- 手順2: 必要なタスクの実行

- 手順3: Oracle Database Vaultの有効化

C Oracle Database Vaultのインストール後の手順

- ロケールおよびNLS設定の確認

- Oracle Database Vault Administratorの手動デプロイ

- Database Vault AdministratorのスタンドアロンOC4Jコンテナへのデプロイ

- Database Vault Administratorのデータベース・コンソールOC4Jコンテナへのデプロイ

- Oracle Database Vault Administratorのタイムアウト値の設定

- Oracle Database Vault Administratorのアクセシビリティの有効化

- Oracle Database Vault Administratorのアクセシビリティ・モードの有効化

- Database Vault Administratorのグラフのテキスト説明の提供

- Oracle RACノードでのOracle Database Vaultの構成

- Oracle Database Vaultへの言語の追加

- Oracle Database Vaultのアンインストール

- Oracle Database Vaultの再インストール

D Oracle Database Vaultセキュリティ・ガイドライン

- 職務分離のガイドライン

- Oracle Database Vaultによる職務分離の処理

- Oracle Database Vault環境での分離タスクの定義

- 職務分離マトリクスの作成

- データベース・システムにアクセスするユーザーのタスクの識別および文書化

- Oracle Database管理アカウントの管理

- 一般的な管理目的のためのSYSTEMユーザー・アカウントの使用

- アプリケーション表のためのSYSTEMスキーマの使用

- SYSDBA管理権限の制限

- ルートとオペレーティング・システム・アクセスの管理

- Oracle Database Vaultによって信頼されるアカウントおよびロール

- 信頼できる人物に制限する必要のあるアカウントおよびロール

- オペレーティング・システムのルート・アクセス権を持つユーザーの管理

- Oracleソフトウェア所有者の管理

- SYSDBAアクセスの管理

- SYSOPERアクセスの管理

- Oracle Database Vaultを本番環境で使用するためのガイドライン

- セキュアな構成のガイドライン

- UTL_FILEおよびDBMS_FILE_TRANSFERパッケージのセキュリティの考慮事項

- リサイクルビンのセキュリティの考慮事項

- CREATE ANY JOB権限のセキュリティの考慮事項

- CREATE EXTERNAL JOB権限のセキュリティの考慮事項

- LogMinerパッケージのセキュリティの考慮事項

- ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項

E Oracle Database Vaultのトラブルシューティング

- トレース・ファイルを使用したデータベースのイベントの診断

- トレース・ファイルを使用したOracle Database Vaultイベントの診断について

- Oracle Database Vaultで追跡できるトレース・イベントと追跡できないイベントのタイプ

- Oracle Database Vaultトレース・イベントのレベル

- Oracle Database Vaultトレース・ファイルを有効にしたときのパフォーマンスへの影響

- Oracle Database Vaultトレース・イベントの有効化

- 現在のデータベース・セッションに対するトレース・イベントの有効化

- すべてのデータベース・セッションに対するトレース・イベントの有効化

- Oracle Database Vaultトレース・ファイル・データの検索

- Database Vaultトレース・ファイルのディレクトリの場所の検索

- Linuxのgrepコマンドを使用してトレース・ファイルから文字列を検索

- ADRコマンド・インタプリタ(ADRCI)ユーティリティを使用してトレース・ファイルを問合せ

- Oracle Database Vaultトレース・ファイルの例

- Oracle Database Vaultトレース・イベントの無効化

- 現在のデータベース・セッションに対するトレース・イベントの無効化

- すべてのデータベース・セッションに対するトレース・イベントの無効化

- 一般的な診断のヒント

- Oracle Database Vaultコンポーネントにかかわる構成の問題

索引

例一覧

- 4-1 認可されていないユーザーによる表作成の試行

- 4-2 認可されていないユーザーによるDELETE ANY TABLE権限の使用の試行

- 4-3 認可されたユーザーによるDELETE操作の実行

- 7-1 DVSYS.GET_FACTORを使用したファクタの取得

- 14-1 DBMS_MACUTLの定数を使用したレルムの作成

- 14-2 DBMS_MACUTLの定数を使用したルール・セットの作成

- 14-3 DBMS_MACUTLの定数を使用したファクタの作成

- D-1 CREATE DATABASE LINKへのアクセスを拒否するコマンド・ルールの作成

- D-2 CREATE DATABASE LINKへのアクセスを有効にするコマンド・ルールの作成

- D-3 CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルール

- D-4 既存のALTER SYSTEMコマンド・ルールへのルールの追加

- E-1 低レベルのOracle Database Vaultレルム違反を示すトレース・ファイル

- E-2 高レベルのトレースを有効にしたOracle Database Vault権限

- E-3 レルム保護されたオブジェクトに対する違反の最高レベルのトレース

図一覧

- 1-1 Oracle Database Vaultのセキュリティ

- 3-1 Oracle Database Vault Administratorのホームページ

- 4-1 レルムおよびレルム所有者に対する認可の動作

- 9-1 暗号化されたデータとOracle Database Vault

- 11-1 Oracle Database Vaultロールの分類方法

表一覧

- 1-1 潜在的なセキュリティの脅威に対応している規制

- 2-1 変更されるデータベース初期化パラメータ設定

- 2-2 Oracle Database Vaultで取り消される権限

- 4-1 レルムに関連するレポート

- 4-2 レルムに使用されるデータ・ディクショナリ・ビュー

- 5-1 ルール・セットに関連するレポート

- 5-2 ルールおよびルール・セットに使用されるデータ・ディクショナリ・ビュー

- 6-1 デフォルトのコマンド・ルール

- 6-2 コマンド・ルールに関連するレポート

- 7-1 ファクタおよびアイデンティティに関連するレポート

- 7-2 ファクタおよびファクタ・アイデンティティに使用されるデータ・ディクショナリ・ビュー

- 8-1 セキュア・アプリケーション・ロールに関連するレポート

- 9-1 Oracle Database Vault-Oracle Label Security統合に関連するレポート

- 9-2 Oracle Label Securityに使用されるデータ・ディクショナリ・ビュー

- 11-1 Oracle Database Vaultロールの権限

- 11-2 Oracle Database Vaultで使用されるデータベース・アカウント

- 11-3 Oracle Database Vaultのモデル・データベース・アカウント

- 12-1 DBMS_MACADMのレルム構成プロシージャ

- 12-2 ADD_AUTH_TO_REALMのパラメータ

- 12-3 ADD_OBJECT_TO_REALMのパラメータ

- 12-4 CREATE_REALMのパラメータ

- 12-5 DELETE_AUTH_FROM_REALMのパラメータ

- 12-6 DELETE_OBJECT_FROM_REALMのパラメータ

- 12-7 DELETE_REALMのパラメータ

- 12-8 DELETE_REALM_CASCADEのパラメータ

- 12-9 RENAME_REALMのパラメータ

- 12-10 UPDATE_REALMのパラメータ

- 12-11 UPDATE_REALM_AUTHのパラメータ

- 12-12 DBMS_MACADMのルール・セット構成プロシージャ

- 12-13 ADD_RULE_TO_RULE_SETのパラメータ

- 12-14 CREATE_RULEのパラメータ

- 12-15 CREATE_RULE_SETのパラメータ

- 12-16 DELETE_RULEのパラメータ

- 12-17 DELETE_RULE_FROM_RULE_SETのパラメータ

- 12-18 DELETE_RULE_SETのパラメータ

- 12-19 RENAME_RULEのパラメータ

- 12-20 RENAME_RULE_SETのパラメータ

- 12-21 UPDATE_RULEのパラメータ

- 12-22 UPDATE_RULE_SETのパラメータ

- 12-23 DBMS_MACADMのコマンド・ルール構成プロシージャ

- 12-24 CREATE_COMMAND_RULEのパラメータ

- 12-25 DELETE_COMMAND_RULEのパラメータ

- 12-26 UPDATE_COMMAND_RULEのパラメータ

- 12-27 DBMS_MACADMのファクタ構成プロシージャ

- 12-28 ADD_FACTOR_LINKのパラメータ

- 12-29 ADD_POLICY_FACTORのパラメータ

- 12-30 CHANGE_IDENTITY_FACTORのパラメータ

- 12-31 CHANGE_IDENTITY_VALUEのパラメータ

- 12-32 CREATE_DOMAIN_IDENTITYのパラメータ

- 12-33 CREATE_FACTORのパラメータ

- 12-34 CREATE_FACTOR_TYPEのパラメータ

- 12-35 CREATE_IDENTITYのパラメータ

- 12-36 CREATE_IDENTITY_MAPのパラメータ

- 12-37 DELETE_FACTORのパラメータ

- 12-38 DELETE_FACTOR_LINKのパラメータ

- 12-39 DELETE_FACTOR_TYPEのパラメータ

- 12-40 DELETE_IDENTITYのパラメータ

- 12-41 DELETE_IDENTITY_MAPのパラメータ

- 12-42 DROP_DOMAIN_IDENTITYのパラメータ

- 12-43 GET_INSTANCE_INFOのパラメータ

- 12-44 GET_SESSION_INFOのパラメータ

- 12-45 RENAME_FACTORのパラメータ

- 12-46 RENAME_FACTOR_TYPEのパラメータ

- 12-47 UPDATE_FACTOR

- 12-48 UPDATE_FACTOR_TYPEのパラメータ

- 12-49 UPDATE_IDENTITYのパラメータ

- 12-50 DBMS_MACADMのセキュア・アプリケーション・ロール構成プロシージャ

- 12-51 CREATE_ROLEのパラメータ

- 12-52 DELETE_ROLEのパラメータ

- 12-53 RENAME_ROLEのパラメータ

- 12-54 UPDATE_ROLEのパラメータ

- 12-55 DBMS_MACADMのOracle Label Security構成プロシージャ

- 12-56 CREATE_MAC_POLICYのパラメータ

- 12-57 Oracle Label Securityマージ・アルゴリズム・コード

- 12-58 CREATE_POLICY_LABELのパラメータ

- 12-59 DELETE_MAC_POLICY_CASCADEのパラメータ

- 12-60 DELETE_POLICY_FACTORのパラメータ

- 12-61 DELETE_POLICY_LABELのパラメータ

- 12-62 UPDATE_MAC_POLICY

- 12-63 DBMS_MACADMの無効/有効プロシージャ

- 12-64 ADD_NLS_DATA

- 12-65 AUTHORIZE_DATAPUMP_USER

- 12-66 AUTHORIZE_SCHEDULER_USER

- 12-67 UNAUTHORIZE_DATAPUMP_USER

- 12-68 UNAUTHORIZE_SCHEDULER_USER

- 13-1 DBMS_MACSEC_ROLESのOracle Label Security構成プロシージャ

- 13-2 CAN_SET_ROLEのパラメータ

- 13-3 SET_ROLEのパラメータ

- 14-1 DBMS_MACUTLの定数のリスト

- 14-2 DBMS_MACUTLのユーティリティ・ファンクション

- 14-3 CHECK_DVSYS_DML_ALLOWEDのパラメータ

- 14-4 GET_CODE_VALUEのパラメータ

- 14-5 GET_SECONDのパラメータ

- 14-6 GET_MINUTEのパラメータ

- 14-7 GET_HOURのパラメータ

- 14-8 GET_DAYのパラメータ

- 14-9 GET_MONTHのパラメータ

- 14-10 GET_YEARのパラメータ

- 14-11 IS_ALPHAのパラメータ

- 14-12 IS_DIGITのパラメータ

- 14-13 IS_DVSYS_OWNERのパラメータ

- 14-14 USER_HAS_ROLEのパラメータ

- 14-15 USER_HAS_ROLE_VARCHARのパラメータ

- 14-16 USER_HAS_SYSTEM_PRIVILEGEのパラメータ

- 15-1 DVSYSファンクション

- 15-2 SET_FACTORパラメータ

- 15-3 GET_FACTORパラメータ

- 15-4 GET_TRUST_LEVELのパラメータ

- 15-5 GET_TRUST_LEVEL_FOR_IDENTITYのパラメータ

- 15-6 ROLE_IS_ENABLEDのパラメータ

- 15-7 GET_FACTOR_LABELのパラメータ

- 15-8 インストールされるOracle Database Vaultファクタ・ファンクション

- 15-9 インストールされるOracle Database VaultのPL/SQLルール・セット・ファンクション

- 15-10 Oracle Database Vault AdministratorおよびランタイムのPL/SQLパッケージ

- A-1 Oracle Database Vault監査証跡の書式

- A-2 Oracle Database VaultによりOracle Databaseに追加される監査ポリシーの設定

- D-1 職務分離マトリクスの例

- D-2 アプリケーション保護マトリクスの例

- D-3 信頼できるOracle Database Vaultロールおよび権限

- E-1 Oracle Database Vaultトレース・ファイルの内容

はじめに

『Oracle Database Vault管理者ガイド』では、Oracle Database Vaultを使用したOracleデータベース環境におけるアクセス制御ベースのセキュリティの構成方法について説明します。

この章の内容は次のとおりです。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

対象読者

このマニュアルは、セキュリティ管理者、監査管理者、ラベル管理者、およびOracle Database Vaultの構成を担当するOracleデータベース管理者(DBA)を対象としています。

ドキュメントのアクセシビリティについて

オラクル社のアクセシビリティへの取組みの詳細は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docaccを参照してください。

Oracleサポートへのアクセス

サポートをご購入のOracleのお客様は、My Oracle Supportにアクセスして電子サポートを受けることができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoまたはhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs (聴覚障害者向け)を参照してください。

関連ドキュメント

詳細は、次のマニュアルを参照してください。

- 『Oracle Label Security管理者ガイド』

- 『Oracle Database管理者ガイド』

- 『Oracle Database SQL言語リファレンス』

Oracleドキュメントの検索エンジン

データベース・ドキュメントの検索エンジンにアクセスするには、次の場所を参照してください。

http://tahiti.oracle.com/

Oracle Technology Network (OTN)

リリース・ノート、インストール関連ドキュメント、ホワイト・ペーパーまたはその他の関連ドキュメントは、Oracle Technology Network (OTN)から、無償でダウンロードできます。すでにOTNのユーザー名およびパスワードを取得している場合は、次の場所でOTN Webサイトのドキュメントのセクションに直接接続できます。

http://www.oracle.com/technetwork/index.html

セキュリティ固有の情報は、OTNを参照してください。

http://www.oracle.com/technetwork/topics/security/whatsnew/index.html

このマニュアルを含むOracleマニュアルの最新バージョンは、次の場所を参照してください。

http://www.oracle.com/technetwork/documentation/index.html

Oracle Database Vault固有のサイト

Oracle Database Vaultに関するOTN情報は、次のサイトにアクセスしてください。

http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html

Oracle Database Vaultに関するよくある質問は、次のサイトにアクセスしてください。

http://www.oracle.com/technetwork/database/options/oracle-database-vault-external-faq-2032888.pdf

Oracle Store

印刷されたマニュアルは次の場所のOracle Storeで入手できます。

https://shop.oracle.com

My Oracle Support(以前のOracleMetaLink)

セキュリティ・パッチ、動作保証およびサポート・ナレッジ・ベースについては、次の場所のMy Oracle Supportを参照してください。

https://support.oracle.com

表記規則

このマニュアルでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

Oracle Database Vaultの新機能

この項では、このリリースのOracle DatabaseのOracle Database Vaultの新機能について説明します。

この項の内容は次のとおりです。

- Oracle Database 11gリリース2(11.2.0.4)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2(11.2.0.3)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2 (11.2.0.2)で変更されたOracle Database Vaultの機能

- Oracle Database 11gリリース2(11.2.0.2)のOracle Database Vaultの新機能

- Oracle Database 11gリリース2(11.2.0.1)のOracle Database Vaultの新機能

Oracle Database 11gリリース2(11.2.0.4)のOracle Database Vaultの新機能

この項の内容は次のとおりです。

- Oracle Database Vaultイベントのトレース・ファイルを使用する拡張機能

- Oracle Database Vault監査証跡をクリーニングするための新しいロール

Oracle Database Vaultイベントのトレース・ファイルを使用する拡張機能

Oracle Database 11g リリース2 (11.2.0.3)では、Oracle Database Vaultイベントの診断にトレース・ファイルを使用する拡張機能がありますが、ドキュメントには記載されていません。このトレース・ファイルは、次のアクティビティの実行に役立ちます。

- Database Vaultイベントの成功および失敗の追跡

- 発生する可能性のあるバグなどの問題の診断

詳細は「トレース・ファイルを使用したデータベースのイベントの診断」を参照してください。

Oracle Database Vault監査証跡をクリーニングするための新しいロール

義務がより適切に分離されるように、このリリースでは、DV_AUDIT_CLEANUPロールが導入されています。このロールは、Database Vault監査証跡のクリーニングを担当するユーザーに付与できます。このロールは、統合監査環境には適用されません。

詳細は、「DV_AUDIT_CLEANUP監査証跡クリーンアップ・ロール」を参照してください。

Oracle Database 11gリリース2(11.2.0.3)のOracle Database Vaultの新機能

この項の内容は次のとおりです。

- Oracle Database Vault環境でXStreamをサポートするための新しいロール

- Oracle Database Vault環境でOracle GoldenGateをサポートするための新しいロール

- 非推奨となったDatabase Vault Configuration Assistant

Oracle Database Vault環境でXStreamをサポートするための新しいロール

Oracle Database Vault環境でXStreamを使用するユーザーには、DV_XSTREAM_ADMINロールを付与する必要があります。

詳細は、「DV_XSTREAM_ADMIN XStream管理ロール」を参照してください。

Oracle Database Vault環境でOracle GoldenGateをサポートするための新しいロール

Oracle Database Vault環境でOracle GoldenGateを使用するユーザーには、Oracle GoldenGateの使用方法に応じて次のいずれかのロールを付与する必要があります。

- DV_GOLDENGATE_ADMINロール(Oracle GoldenGateを構成する場合)

- DV_GOLDENGATE_REDO_ACCESSロール(GoldenGateのTRANLOGOPTIONS DBLOGREADERメソッドを使用してREDOログにアクセスする場合)

詳細は、次の各項を参照してください。

- DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール

- DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール

非推奨となったDatabase Vault Configuration Assistant

Database Vault Configuration Assistant (DVCA)は、このリリースから非推奨になりました。DVCAのDatabase Vaultに言語を追加するための機能は、DBMS_MACADM.ADD_NLS_DATAプロシージャに置き換わっています。

詳細は、「Oracle Database Vaultへの言語の追加」を参照してください。

Oracle Database 11gリリース2 (11.2.0.2)で変更されたOracle Database Vaultの機能

この項の内容は次のとおりです。

- Oracle Data Pump EXPおよびIMPユーティリティのサポート終了

Oracle Data Pump EXPおよびIMPユーティリティのサポート終了

このリリース以降、Oracle Data PumpのEXPユーティリティとIMPユーティリティはOracle Database Vault環境で使用できません。

Oracle Database VaultでのOracle Data Pumpの使用の詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

Oracle Database 11gリリース2(11.2.0.2)のOracle Database Vaultの新機能

この項の内容は次のとおりです。

- 以前の値をデフォルトで使用するDBMS_MACADMプロシージャ

以前の値をデフォルトで使用するDBMS_MACADMプロシージャ

次のDBMS_MACADM PL/SQLパッケージ・プロシージャの一部の値のデフォルト設定は、以前の設定に基づいています。

- DBMS_MACADM.UPDATE_REALM

- DBMS_MACADM.UPDATE_REALM_AUTH

- DBMS_MACADM.UPDATE_RULE_SET

- DBMS_MACADM.UPDATE_COMMAND_RULE

- DBMS_MACADM.UPDATE_FACTOR

- DBMS_MACADM.UPDATE_ROLE

たとえば、レルムを作成または更新してレルム・チェックを有効にするとします。DBMS_MACADM.UPDATE_REALMプロシージャを使用してレルムを変更すると、レルム・チェックできるようにenabledパラメータのデフォルトが設定されます。

詳細は、第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

Oracle Database 11gリリース2(11.2.0.1)のOracle Database Vaultの新機能

この項の内容は次のとおりです。

- Oracle Enterprise Managerとの統合

- Oracle Data Pumpのサポート

- Oracle Database Job Schedulerのサポート

- 追加のOracle Database Vaultロール

- 追加のデフォルトのルール・セット

- ルール・セットの作成で使用する失敗コードの範囲の拡張

- Oracle Database Vault PL/SQLパッケージに対する変更

- Oracle Database Vault Configuration Assistantに対する変更

- Oracle Recovery Managerのサポート

- DBMS_RLS PL/SQLパッケージに対するEXECUTE権限のSYS制御

- DVSYSスキーマに対する保護の強化

- OS_AUTHENT_PREFIXパラメータの変更の中止

- ORAPWDのNOSYSDBAパラメータの非推奨

Oracle Enterprise Managerとの統合

Oracle Database Enterprise Manager Database Controlリリース11.2とGrid Controlリリース10.2.0.5の両方から、Oracle Database Vaultの一連の機能を実行できるようになりました。この統合は、Oracle Database Vaultのリリース9.2.0.8、10.2.0.4および11.1.0.7にも適用されます。

Database Controlから、次のタスクを実行できるようになりました。

- Oracle Database Vault対応データベースの監視

- Oracle Database Vaultレポートへのアクセス

Grid Controlから、次のタスクを実行できるようになりました。

- Oracle Database Vaultセキュリティ・ポリシーを複数のデータベース・サーバーに伝播し、エンタープライズ全体で一貫したポリシーを維持

- Oracle Database Vaultで保護されているすべてのサーバーを、単一の集中管理コンソールから管理および監視

- Oracle Database Vaultで保護されているすべてのデータベースへの不正アクション試行時の自動アラート

- Oracle Database Vaultレポートへのアクセス

詳細は、次の各項を参照してください。

- 「Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス」

- 「Oracle Database VaultのOracle Enterprise Managerとの使用」

Oracle Data Pumpのサポート

Oracle Data Pumpユーザーは、Oracle Database Vault環境でデータをエクスポートおよびインポートできるようになりました。

詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

Oracle Database Job Schedulerのサポート

データベース・ジョブのスケジュールを行うユーザーは、Oracle Database Vault環境でこの作業を行うことができるようになりました。

詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

追加のOracle Database Vaultロール

Oracle Database Vaultには、次の新規ロールがあります。

- DV_MONITOR

- DV_STREAMS_ADMIN

- DV_PATCH_ADMIN

詳細は、次の各項を参照してください。

- 「Oracle Database Vaultロールの概要」

- 「DV_MONITOR Database Vault監視ロール」

- 「DV_STREAMS_ADMIN Oracle Streams構成ロール」

- 「DV_PATCH_ADMIN Database Vaultデータベース・パッチ・ロール」

追加のデフォルトのルール・セット

Oracle Database Vaultには、次の追加ルール・セットが用意されています。

- システム・パラメータのファイングレイン・コントロールを許可

- Oracle Data Pump操作を許可

- スケジューラ・ジョブの許可

詳細は、「デフォルトのルール・セット」を参照してください。

ルール・セットの作成で使用する失敗コードの範囲の拡張

ルール・セットの作成で失敗コードを指定する際、負の数値に制限されていましたが、その制限がなくなりました。-20000から-20999および20000から20999の範囲の数値を入力できます。

詳細は、「エラー処理オプション」を参照してください。

Oracle Database Vault PL/SQLパッケージに対する変更

DBMS_MACADMおよびDBMS_MACSEC_ROLES PL/SQLパッケージは、次のように変更されました。

- DBMS_MACADM.CREATE_RULE_SETおよびUPDATE_RULE_SETプロシージャに、新規パラメータis_staticが追加されました。is_staticパラメータは、SQL文によってアクセスされる際に、ルール・セットが評価される頻度を決定します。詳細は、「CREATE_RULE_SETプロシージャ」および「UPDATE_RULE_SETプロシージャ」を参照してください。

- DBMS_MACADMパッケージには次の新規プロシージャが追加されました。

- AUTHORIZE_DATAPUMP_USERは、Oracle Database Vaultが有効な場合に、Oracle Data Pump操作を実行する権限をOracle Data Pumpユーザーに付与します。詳細は、「AUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

- UNAUTHORIZE_DATAPUMP_USERは、AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。詳細は、「UNAUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

- AUTHORIZE_SCHEDULER_USERは、Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。詳細は、「AUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

- UNAUTHORIZE_SCHEDULER_USERは、AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。詳細は、「UNAUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

- DBMS_MACSEC_ROLES.SET_ROLEプロシージャは拡張されました。p_roleパラメータで複数のロールを指定できるようになりました。詳細は、「SET_ROLEプロシージャ」を参照してください。

Oracle Database Vault Configuration Assistantに対する変更

Oracle Database Vault Configuration Assistant(DVCA)は次のように変更されました。

- dbuniquenameパラメータの追加。dbuniquenameパラメータを使用すると、Oracle Databaseにグローバルに一意な名前を指定できます。詳細は、「Oracle Database Vaultへの言語の追加」を参照してください。

- optionracパラメータの削除。optionracパラメータはOracle Real Application Clusters(Oracle RAC)ノードでのOracle Database Vaultの構成に使用されていました。新しい手順では、Oracle RACノードでOracle Database Vaultをより簡単に構成できます。詳細は、「Oracle RACノードでのOracle Database Vaultの構成」を参照してください。

Oracle Recovery Managerのサポート

Oracle Recovery Manager(RMAN)をOracle Database Vault環境で使用できるようになりました。

「Oracle Database VaultのOracle Recovery Managerとの使用」を参照してください。

DBMS_RLS PL/SQLパッケージに対するEXECUTE権限のSYS制御

Oracle Database Vaultの前のリリースでは、SYSユーザーはDBMS_RLS PL/SQLパッケージのEXECUTE権限を他のユーザーに付与する、または取り消すことができませんでした。このリリースから、SYSユーザーはDBMS_RLSのEXECUTE権限を他のユーザーに付与する、または取り消すことができます。

DVSYSスキーマに対する保護の強化

DVSYSを保護スキーマとして保持し続けるために、リサイクルビンが無効な場合でも、このスキーマのオブジェクトを削除できなくなりました。他のレルムのセキュリティを強化するために、リサイクルビンを無効にする必要があります。

「リサイクルビンのセキュリティの考慮事項」を参照してください。

OS_AUTHENT_PREFIXパラメータの変更の中止

Oracle Database Vaultでは、インストール時にOS_AUTHENT_PREFIX初期化パラメータが変更されなくなりました。OS_AUTHENT_PREFIXパラメータのデフォルト値はOPS$です。

このパラメータ詳細は、『Oracle Databaseリファレンス』を参照してください。

ORAPWDのNOSYSDBAパラメータの非推奨

ORAPWDユーティリティのNOSYSDBAパラメータは、このリリースでは非推奨になりました。Oracle Database Vaultで不要になりました。この非推奨の一環として、DVCAユーティリティのlockoutパラメータも非推奨になりました。

1 Oracle Database Vaultの概要

この章の内容は次のとおりです。

- Oracle Database Vaultの概要

- Oracle Database Vaultのコンポーネント

- Oracle Database Vaultのコンプライアンスへの対応

- Oracle Database Vaultの内部関係者への対応

- Oracle Database Vaultによる柔軟なセキュリティ・ポリシーの実現

- Oracle Database Vaultのデータベース統合に関する問題への対応

Oracle Database Vaultの概要

Oracle Database Vaultは、管理アクセス権を持つユーザーを含め、あらゆるユーザーからのOracleデータベースの特定領域へのアクセスを制限します。たとえば、従業員の給与、顧客の医療記録、またはその他の機密情報に対する管理アクセス権を制限できます。

これにより、様々な方法で機密情報へのファイングレインアクセス制御を適用できます。ファイングレイン・アクセス・コントロールを適用することで、Oracle Databaseインスタンスのセキュリティは強化され、特権を持つユーザーからの職務分離に関しては業界標準の対応が可能です。最も重要なのは、ファイングレインアクセス制御により管理権限ユーザーからデータを保護する一方で、管理権限ユーザーによりOracleデータベースを維持できるということです。Oracle Database Vaultは、企業に不可欠なコンポーネントです。

Oracle Database Vaultを使用することで、内部関係者、法令順守要件、および職務分離の実施という、現在も課題である最も難しいセキュリティ問題に対応できます。

Oracle Database Vaultは、個々のOracle Databaseインスタンスのセキュリティを管理するために構成します。Oracle Database Vaultは、Oracle Databaseのスタンドアロン・インストール、複数のOracleホーム、およびOracle Real Application Clusters(Oracle RAC)環境にインストールできます。

Oracle Database Vaultに関するよくある質問は、次のサイトにアクセスしてください。

http://www.oracle.com/technetwork/database/focus-areas/security/dbv-faq-083210.html

Oracle Database Vaultに関するOracle Technology Network(OTN)情報は、次のサイトにアクセスしてください。

http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html

Oracle Database Vaultのコンポーネント

Oracle Database Vaultには次のコンポーネントが含まれます。

- Oracle Database Vaultアクセス制御コンポーネント

- Oracle Database Vault Administrator

- Oracle Database Vault DVSYSおよびDVFスキーマ

- Oracle Database Vault PL/SQLインタフェースおよびパッケージ

- Oracle Database VaultおよびOracle Label SecurityのPL/SQL API

- Oracle Database Vaultレポートおよびモニタリング・ツール

Oracle Database Vaultアクセス制御コンポーネント

Oracle Database Vaultを使用して次のコンポーネントを作成し、データベース・インスタンスのセキュリティを管理できます。

- レルム。レルムとは、保護が必要なデータベース・スキーマ、オブジェクトおよびロールを機能でグループ化したものです。たとえば、会計、販売、人事に関する一連のスキーマ、オブジェクトおよびロールをグループ化できます。これらをレルムにグループ化すると、レルムを使用してシステム権限の利用を特定のアカウントまたはロールに限定することができます。そのため、これらのスキーマ、オブジェクトおよびロールを使用する任意のユーザーで詳細なアクセス制御が可能になります。レルムの詳細は、第4章「レルムの構成」で説明しています。

- コマンド・ルール。コマンド・ルールとは、ユーザーによるSELECT文、ALTER SYSTEM文、データベース定義言語(DDL)文およびデータ操作言語(DML)文などのほぼすべてのSQL文の実行方法を制御するために作成する特別なルールです。文が許可されるかどうかを判断するには、コマンド・ルールをルール・セットとともに使用する必要があります。コマンド・ルールの詳細は、第6章「コマンド・ルールの構成」で説明しています。

- ファクタ。ファクタとは、ユーザー・ロケーション、データベースIPアドレス、セッション・ユーザーなどOracle Database Vaultで認識および保護できる名前付きの変数または属性です。ファクタは、データベースに接続するためのデータベース・アカウントの認可や、データの可視性および管理性を制限するフィルタ・ロジックの作成などのアクティビティに使用できます。各ファクタは1つ以上のアイデンティティを持ちます。アイデンティティは、ファクタの実際の値です。ファクタの取得メソッド、またはそのアイデンティティ・マッピング・ロジックによって、ファクタは複数のアイデンティティを持つ場合があります。ファクタの詳細は、第7章「ファクタの構成」で説明しています。

- ルール・セット。ルール・セットとは、レルム認可、コマンド・ルール、ファクタ割当て、保護アプリケーション・ロールに関連付けることのできる1つ以上のルールの集まりです。ルール・セットは、それに含まれる各ルールと評価タイプ(「すべてのTrue」または「いずれかTrue」)に基づいて、trueまたはfalseに評価されます。ルール・セット内のルールは、trueまたはfalseに評価されるPL/SQL式です。複数のルール・セットに同じルールを作成できます。ルール・セットの詳細は、第5章「ルール・セットの構成」で説明しています。

- セキュア・アプリケーション・ロール。セキュア・アプリケーション・ロールは、Oracle Database Vaultルール・セットの評価に基づいて有効化できる特別なOracle Databaseロールです。セキュア・アプリケーション・ロールの詳細は、第8章「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」で説明しています。

これらのコンポーネントを補強するため、Oracle Database Vaultには一連のPL/SQLインタフェースおよびパッケージが用意されています。「Oracle Database Vault PL/SQLインタフェースおよびパッケージ」で概要を説明しています。第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」では、Oracle Database Vaultに固有のデータ・ディクショナリ・ビューに関して説明します。

一般的に、最初の手順は、保護するデータベース・スキーマまたはデータベース・オブジェクトを含むレルムを作成することです。ルール、コマンド・ルール、ファクタ、アイデンティティ、ルール・セットおよびセキュア・アプリケーション・ロールを作成すると、さらに強固にレルムを保護できます。また、これらのコンポーネントが監視および保護するアクティビティでレポートを実行できます。第3章「Oracle Database Vaultの開始」には、Oracle Database Vaultの基本的な機能を紹介する簡単なチュートリアルが用意されています。第18章「Oracle Database Vaultレポート」では、構成を確認するレポートの実行方法や、Oracle Database Vaultが実行するその他のアクティビティの詳細が説明されています。

Oracle Database Vault Administrator

Oracle Database Vault Administrator(DVA)は、Oracle Database VaultのPL/SQL Application Programming Interface(API)上に作成されたJavaアプリケーションです。このアプリケーションを使用すると、PL/SQLに精通していないセキュリティ管理者でも、わかりやすいインタフェースを使用してアクセス制御ポリシーを構成できます。Oracle Database Vault Administratorには、ベースライン・セキュリティ構成の理解をサポートするセキュリティ関連のレポートが多数用意されています。これらのレポートは、このベースラインからの偏差の特定にも役立ちます。

第4章から第9章では、Oracle Database Vault Administratorを使用して、レルム、コマンド・ルール、ファクタ、ルール・セットおよびセキュア・アプリケーション・ロールに定義されているアクセス制御ポリシーを構成する方法、およびOracle Database Vaultをその他のOracle製品と統合する方法が説明されています。第18章「Oracle Database Vaultレポート」では、Oracle Database Vaultのレポートについて説明しています。

Oracle Database Vault DVSYSおよびDVFスキーマ

Oracle Database Vaultには、OracleデータをOracle Database Vault用に処理する際に必要なデータベース・オブジェクトを保存するDVSYSスキーマが用意されています。このスキーマには、Oracle Database Vaultが使用するロール、ビュー、アカウント、ファンクションおよびその他のデータベース・オブジェクトが含まれます。DVFスキーマには、Oracle Database Vaultアクセス制御構成内に設定されたファクタ値を(実行時に)取得するパブリック・ファンクションが含まれます。

これらのスキーマの詳細は、第11章「Oracle Database Vaultオブジェクト」で説明しています。

Oracle Database Vault PL/SQLインタフェースおよびパッケージ

Oracle Database Vaultには、セキュリティ管理者またはアプリケーション開発者が必要に応じてアクセス制御ポリシーを構成できるよう、PL/SQLインタフェースおよびパッケージが多数用意されています。PL/SQLプロシージャおよびファンクションを使用すると、指定されたデータベース・セッションのコンテキスト内にあるアクセス制御ポリシーの範囲内において、通常のデータベース・アカウントでの操作が可能になります。

詳細は、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」および第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

Oracle Database VaultおよびOracle Label SecurityのPL/SQL API

Oracle Database Vaultには、Oracle Label Securityと統合できるアクセス制御機能があります。Oracle Label Securityデータベース・オプションは、セキュリティ管理者によるLabel Securityポリシーの定義や、その定義のデータベース・オブジェクトへの適用を可能にする、Oracle Enterprise Manager Database Controlと統合されています。Oracle Label Securityには、データベース・アプリケーション開発者がラベル・セキュリティ・ポリシーや保護の実現に使用できるPL/SQLパッケージも多数用意されています。

Oracle Database VaultがOracle Label Securityとどのように連携して機能するかは、「Oracle Database VaultとOracle Label Securityの統合」を参照してください。また、Oracle Policy Managerの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

Oracle Database Vaultレポートおよびモニタリング・ツール

Oracle Database Vaultが監視する様々なアクティビティ上でレポートを生成できます。また、ポリシー変更、セキュリティ違反未遂行為、およびデータベースの構成や構造の変更も監視できます。

生成可能なレポートの詳細は、第18章「Oracle Database Vaultレポート」を参照してください。第17章「Oracle Database Vaultの監視」では、Oracle Database Vaultの監視方法について説明しています。

Oracle Database Vaultのコンプライアンスへの対応

法令を順守することで得られる最も大きな副産物の1つは、セキュリティに対する意識の向上です。これまで、情報技術(IT)部門は高可用性とパフォーマンスを重視してきました。法令順守に重点を置くことで、ITインフラストラクチャ、データベースおよびアプリケーションをセキュリティという観点から客観的に見ることが必要になりました。共通する疑問には次のものがあります。

- 誰がこの情報へのアクセス権を持っているのか。

- どこに機密情報が保存されているのか。

サーベンス・オクスリー法(Sarbanes-Oxley Act)、医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act、HIPAA)、国際業務を行う銀行の自己資本比率に関する国際統一基準(改定版)(バーゼルII、International Convergence of Capital Measurement and Capital Standards: a Revised Framework)、日本の個人情報保護法、PCIデータ・セキュリティ基準(Payment Card Industry Data Security Standard、PCI DSS)、欧州連合のプライバシと電子通信に関する指令(European Union Directive on Privacy and Electronic Communications)などの規制には、内部規制、職務分離およびアクセス制御を含む共通のテーマがあります。

サーベンス・オクスリーやHIPAAなどの規制による変更の多くは手続き上のものであるのに対し、その他は技術的な投資を必要とする場合があります。規制に共通に見られるセキュリティ要件は厳密な内部規制です。Oracle Database Vaultを使用することで企業が達成できるコンプライアンスのレベルは規制によって異なります。一般的に、Oracle Database Vaultレルム、職務の分離機能、コマンド・ルールおよびファクタは、規制により世界的に対応が求められている、全体的なセキュリティ・リスクを削減します。

表1-1に、潜在的なセキュリティの脅威に対応している規制を示します。

表1-1 潜在的なセキュリティの脅威に対応している規制

規制

潜在的なセキュリティの脅威

サーベンス・オクスリー法(Sarbanes-Oxley)302条

データの不正な変更

サーベンス・オクスリー法(Sarbanes-Oxley)404条

データの変更、不正なアクセス

サーベンス・オクスリー法(Sarbanes-Oxley)409条

サービス妨害、不正なアクセス

グラム・リーチ・ブライリー(Gramm-Leach-Bliley)

不正なアクセス、変更または公開

医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act、HIPAA)164.306

データへの不正なアクセス

HIPAA 164.312

データへの不正なアクセス

バーゼルII(Basel II) - 内部リスク管理

データへの不正なアクセス

CFR Part 11

データへの不正なアクセス

日本の個人情報保護法

データへの不正なアクセス

欧州連合のプライバシと電子通信に関する指令(EU Directive on Privacy and Electronic Communications)

データへの不正なアクセス

PCIデータ・セキュリティ基準(Payment Card Industry Data Security Standard、PCI DSS)

データの不正な変更

Oracle Database Vaultの内部関係者への対応

長年に渡り、ワーム、ウイルスおよび外部侵入者(ハッカー)はコンピュータ・システムの最大の脅威として認識されてきました。残念なことに、特別な権限のある信頼されているユーザーがデータを盗用または変更する可能性が見落とされてきました。

Oracle Database Vaultは、レルム、ファクタおよびコマンド・ルールを使用して内部関係者から保護します。さらに、これらのコンポーネントはデータベース、アプリケーションおよび機密情報への安全なアクセスを支援する強力なセキュリティ・ツールを提供します。ルールとファクタを結合して、データベースのコマンドの実行が可能な条件の制御や、レルムによって保護されているデータへのアクセスの制御ができます。たとえば、ルールとファクタを作成し、IPアドレス、日時および特定のプログラムに基づいてデータへのアクセスを制御できます。これにより、指定の条件を満たす接続のみにアクセスを制限することができます。また、認可されていないアプリケーションによるデータベースへのアクセスとともに、アプリケーション・データへの不正なアクセスも防ぐことができます。

Oracle Database Vaultには、データベース、レルムによって保護されているアプリケーションおよびデータベース内のコマンドへのアクセスを制御するためにルールと組み合せて使用できる組込みのファクタが用意されています。

ルールおよびファクタをデータベース内の多数のコマンドに関連付けて、データベースの内部制御を強化できます。また、サイトの運用ポリシーに合せてカスタマイズできます。たとえば、ルールを定義してALTER SYSTEM文の実行を特定のIPアドレスやホスト名に制限することができます。

Oracle Database Vaultによる柔軟なセキュリティ・ポリシーの実現

Oracle Database Vaultは、データベースの柔軟なセキュリティ・ポリシーの設計を支援します。たとえば、DBAロールを持つSYSTEMなどの任意のデータベース・ユーザーによる、データベースの基本的なパラメータの変更を可能にできます。システム権限を持つ経験の浅い管理者が、特定の時間に新規REDOログ・ファイルを開始するとデータベースに問題が発生することに気付かずに、その実行を決定したとします。Oracle Database Vaultを使用すると、このユーザーのALTER SYSTEM SWITCH LOGFILE文の使用を制限することで、そのような変更が行われるのを防ぐコマンド・ルールを作成できます。また、文の実行を次のようにして制限するなど、アクティビティをさらに制限するルールをコマンド・ルールに追加できます。

- 時間で制限(金曜日の午後4時から5時の間のみなど)

- リモートではなく、ローカル・アクセスのみに制限

- IPアドレスで制限(指定した範囲のIPアドレスにのみアクションを許可するなど)

この方法では、システムを慎重に制御および保護できます。必要な場合には、コマンド・ルールを無効にすることも再度有効にすることも可能で、Oracle Database Vault Administratorを使用して中央の1つの場所から簡単に管理できます。

Oracle Database Vaultのデータベース統合に関する問題への対応

今日においても、非常に多くのOracleデータベースがエンタープライズ、さらには世界中に分散しています。しかし、今後数年間もデータベース統合はコスト削減対策として継続されるでしょう。分散データベース・アーキテクチャにより実現された物理的なセキュリティは、統合環境でも実現される必要があります。Oracle Database Vaultは、データベース統合に関する主要なセキュリティの問題に対応します。

図1-1に、次のデータベースのセキュリティ問題にOracle Database Vaultがどのように対応するかを示します。

- 管理権限のあるアカウントからのアプリケーション・データへのアクセス: この場合、Oracle Database Vaultが許可しないため、DBAはFINレルムにより保護されているスキーマにアクセスできません。DBAは最も権限が多く信頼されているユーザーですが、データベースに存在するアプリケーション・データへのアクセス権を付与する必要はありません。

- アプリケーション・データへのアクセスに関する職務の分離: この場合、Oracle Database Vault内に作成されたFINレルムの所有者には、FINレルムのスキーマへのアクセス権があります。

図1-1 Oracle Database Vaultのセキュリティ

データベースを統合すると、複数の強力なユーザー・アカウントが1つのデータベース内に存在することになります。つまり、データベース全体のDBAだけでなく、個々のアプリケーション・スキーマの所有者も強力な権限を持つ可能性があるということです。権限の取消しは、既存のアプリケーションに悪影響を及ぼす可能性があります。Oracle Database Vaultレルムを使用すると、アプリケーションへのアクセスを、信頼できるパスを介したものにすることができます。これにより、明確にアクセスを認可されていないデータベース・ユーザーが、強力な権限を使用してアプリケーション・データを参照するのを防ぐことができます。たとえば、SELECT ANY TABLE権限を持つDBAが、その権限を使用してアプリケーション・データを表示するのを防ぐことができます。

2 Oracle Database Vaultのインストール後のヒント

この章の内容は次のとおりです。

- 変更される初期化およびパスワード・パラメータ設定

- Oracle Database Vaultによるユーザー認可の制限

- 職務分離を実施するための新規データベース・ロール

- 既存のユーザーおよびロールから取り消される権限

- 既存のユーザーおよびロールに対して阻止される権限

- Oracle Database VaultがOracle Databaseの監査に与える影響

関連項目:
Oracle Database構成におけるセキュリティの管理に関するガイドラインは、付録D「Oracle Database Vaultセキュリティ・ガイドライン」を参照してください。

変更される初期化およびパスワード・パラメータ設定

Oracle Database Vaultをインストールすると、インストール・プロセスにより、データベース構成の安全を強化するために複数のデータベース初期化パラメータ設定が変更されます。これらの変更が組織のプロセスやデータベースのメンテナンス手順に影響した場合、問題を解決するには、Oracleサポートにご連絡ください。

表2-1で、Oracle Database Vaultにより変更される初期化パラメータ設定を説明します。初期化パラメータは、$ORACLE_HOME/srvm/adminのinit.ora初期化パラメータ・ファイルに保存されます。このファイルの詳細は、『Oracle Database管理者ガイド』を参照してください。

表2-1 変更されるデータベース初期化パラメータ設定

パラメータ

データベースのデフォルト値

Database Vaultにより設定される新しい値

変更の影響

AUDIT_SYS_OPERATIONS

FALSE

TRUE

ユーザーSYS、およびSYSDBAまたはSYSOPER権限で接続しているユーザーにより直接発行された上位レベルの操作の監査を有効にします。

AUDIT_SYS_OPERATIONSの詳細は、『Oracle Databaseリファレンス』を参照してください。

OS_ROLES

未構成。

FALSE

オペレーティング・システムによる、ユーザーへのロールの付与と取消しの完全な管理を無効にします。以前にGRANT文を使用してユーザーに付与されたロールはデータ・ディクショナリにまだリストされているため、変更されません。オペレーティング・システム・レベルでのユーザーへのロールの付与のみに適用されます。この場合も、ユーザーは権限をロールとユーザーに付与できます。

OS_ROLESの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

RECYCLEBIN

ON

OFF

フラッシュバック・ドロップ機能のオン/オフを制御します。RECYCLEBINがOFFに設定されている場合、削除された表はリサイクルビンに移動しません。ONに設定されている場合、削除された表はリサイクルビンに移動します(リカバリ可能です)。

関連項目:

- 「リサイクルビンのセキュリティの考慮事項」

- RECYCLEBINの詳細は、『Oracle Databaseリファレンス』を参照してください。

REMOTE_LOGIN_PASSWORDFILE

EXCLUSIVE

EXCLUSIVE

Oracle Databaseがパスワード・ファイルをチェックするかどうかを指定します。REMOTE_LOGIN_PASSWORDFILEがEXCLUSIVEに設定されていないデータベースにOracle Database Vaultをインストールした場合、EXCLUSIVEに設定するとパスワード・ファイルが使用されます。

REMOTE_LOGIN_PASSWORDFILEの詳細は、『Oracle Databaseリファレンス』を参照してください。

SQL92_SECURITY

FALSE

TRUE

ユーザーは、UPDATEおよびDELETEオブジェクト権限が付与されている場合に、WHERE句またはSET句を含むUPDATE操作またはDELETE操作を表に対して実行するためには、SELECTオブジェクト権限も付与されている必要があります。

SQL92_SECURITYの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

Oracle Database Vaultによるユーザー認可の制限

Oracle Database Vaultのインストール中、インストーラにより2つの追加のデータベース・アカウント名を要求されます。また、データベース・ロールが複数作成されます。これらのアカウントは、Oracle Database Vaultにより実現される職務分離の一部です。複数の大企業に影響を与えている共通の監査問題の1つは、データベース管理者による本番インスタンス内での新規データベース・アカウントの不正な作成です。Oracle Database Vaultのインストール時に、Oracle Database Vaultアカウント・マネージャ、またはOracle Database Vaultアカウント・マネージャ・ロールを付与されたユーザー以外はデータベース内にユーザーを作成することができなくなります。

職務分離の管理に関するガイドラインは、「職務分離のガイドライン」を参照してください。

職務分離を実施するための新規データベース・ロール

規制、プライバシおよびその他のコンプライアンス要件を満たすために、Oracle Database Vaultには職務分離という概念が実装されています。Oracle Database Vaultでは、アカウント管理の職責、データ・セキュリティの職責およびデータベース・リソース管理の職責がデータベース内で明確に分離されます。つまり、データとシステム構成の両方についてすべての権限を持つユーザーがいないよう、多くの権限を持つユーザー(DBAなど)という概念が複数の新しいデータベース・ロールに分割されています。Oracle Database Vaultにより、SYSユーザーおよびDBAロールやその他のシステム権限を持つアカウントから、レルムと呼ばれるデータベースの指定された保護領域が守られます。Oracle Database Vault所有者(DV_OWNER)およびOracle Database Vaultアカウント・マネージャ(DV_ACCTMGR)と呼ばれる新しいデータベース・ロールも導入されています。これらの新規データベース・ロールにより、データ・セキュリティとアカウント管理が従来のDBAロールから分離されます。これらのロールは、組織内の別々のセキュリティの専門家にマップします。

関連項目:

- サイトの職務分離の管理に関する注意事項は、「職務分離のガイドライン」を参照してください。

- Oracle Database Vaultのインストール中に作成されるロールの詳細は、「Oracle Database Vaultロール」を参照してください。

- 作成されるデフォルトのアカウントと、追加作成するアカウントに関する注意事項については、「Oracle Database Vaultアカウント」を参照してください。

既存のユーザーおよびロールから取り消される権限

Oracle Database Vaultをインストールすると、職務分離強化の一部として、Oracle Databaseで提供されている複数のロールから一連の権限が取り消されます。

表2-2に、Oracle Database Vaultにより既存のユーザーおよびロールから取り消される権限を示します。Oracle Database Vaultを無効にすると、これらの権限は取り消されたままになるので注意してください。アプリケーションがこれらの権限に依存する場合は、アプリケーションの所有者に権限を直接付与します。

表2-2 Oracle Database Vaultで取り消される権限

ユーザーまたはロール

取り消される権限

DBAロール

- BECOME USER

- SELECT ANY TRANSACTION

- CREATE ANY JOB

- CREATE EXTERNAL JOB

- EXECUTE ANY PROGRAM

- EXECUTE ANY CLASS

- MANAGE SCHEDULER

- DEQUEUE ANY QUEUE

- ENQUEUE ANY QUEUE

- MANAGE ANY QUEUE

IMP_FULL_DATABASEロール脚注1

- BECOME USER

- MANAGE ANY QUEUE

EXECUTE_CATALOG_ROLEロール

- EXECUTE ON DBMS_LOGMNR

- EXECUTE ON DBMS_LOGMNR_D

- EXECUTE ON DBMS_LOGMNR_LOGREP_DICT

- EXECUTE ON DBMS_LOGMNR_SESSION

- EXECUTE ON DBMS_FILE_TRANSFER

PUBLICユーザー

- EXECUTE ON UTL_FILE

SCHEDULER_ADMINロール脚注2

- CREATE ANY JOB

- CREATE EXTERNAL JOB

- EXECUTE ANY PROGRAM

- EXECUTE ANY CLASS

- MANAGE SCHEDULER

脚注1 Oracle Data Pumpを使用してデータをエクスポートおよびインポートする権限をユーザーに付与するには、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

脚注2 データベース・ジョブをスケジュールする権限をユーザーに付与するには、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

注意:
SYSおよびSYSTEMユーザーは両方とも、デフォルト・パスワードを使用するユーザー・アカウントを示すDBA_USERS_WITH_DEFPWDデータ・ディクショナリ・ビューに対するSELECT権限を保持します。他のユーザーにこのビューへのアクセス権を付与するには、SELECT権限を付与します。

関連項目:

- 表11-1「Oracle Database Vaultロールの権限」

- 「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」

既存のユーザーおよびロールに対して阻止される権限

次に示す権限は、その権限がすでに付与されているどのユーザーおよびロールに対しても阻止されます。これには、ユーザーSYSおよびSYSTEMも含まれます。

- ALTER PROFILE

- ALTER USER (ただしユーザーがALTER USER文を使用して自分のパスワードを変更することは可能です)

- CREATE PROFILE

- CREATE USER

- DROP PROFILE

- DROP USER

セキュリティの強化および職務分離規定の維持のために、SYSユーザーやSYSTEMユーザーにはユーザー・アカウントを作成または管理する権限を与えないでください。

Oracle Database VaultがOracle Databaseの監査に与える影響

この項の内容は次のとおりです。

- AUD$表のSYSスキーマからSYSTEMスキーマへの移動

- AUDIT文の設定の変更

AUD$表のSYSスキーマからSYSTEMスキーマへの移動

Oracle Database Vault環境では、Oracle Label Securityが有効な場合、AUD$表はSYSスキーマからSYSTEMスキーマに移動します。SYSTEM.AUD$表を参照するためにシノニムSYS.AUD$が作成されます。

ヒント:
セキュリティを強化するために、SYSTEM.AUD$表およびSYS.FGA_LOG$表に関してレルムを作成します。レルムの詳細は、第4章「レルムの構成」を参照してください。

AUDIT文の設定の変更

Oracle Database Vaultをインストールすると、データベースで複数のAUDIT文の設定が構成されます。詳細は、「Oracle Database Vault用に作成されるOracle Database監査設定」を参照してください。

3 Oracle Database Vaultの開始

この章の内容は次のとおりです。

- Oracle Database Vaultの登録(有効化)

- Oracle Database Vaultの起動

- クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護

Oracle Database Vaultの登録(有効化)

Oracle Databaseをインストールしたら、Oracle Database Vaultを登録する(つまり、有効にする)必要があります。Oracle Databaseには、デフォルトでDatabase Vaultが付属していますが、使用するには登録する必要があります。登録プロセスの一部として、Database Vault管理者アカウント作成します。登録プロセスで、Database VaultのDVSYSスキーマとDVFスキーマも作成されます。この手順は、単一インスタンスおよびOracle RACインストールの両方に適用されます。Database Vaultがすでに有効かどうかを確認するには、「Oracle Database Vaultが有効か無効かの確認」を参照してください。

注意:
Database Configuration Assistant (DBCA)で生成したスクリプトでOracle Database Vaultを有効にすることはできません。

1. Oracle Database Vaultを登録するコンピュータでOracle Enterprise Managerデータベース・コンソールが使用可能になっていることを確認します。
データベース・コンソールのステータスを確認するには、emctl status dbconsoleコマンドを実行します。次に例を示します。

./emctl status dbconsole

2. データベース、Database Controlコンソール・プロセスおよびリスナーを停止します。

- UNIX: SYSOPER権限を持つユーザーSYSとして接続し、データベースを停止します。次に、コマンドラインからDatabase Controlプロセスとリスナーを停止します。
次に例を示します。

CONNECT sys as sysoper
Enter password: password

SQL> SHUTDOWN IMMEDIATE
SQL> EXIT

$ emctl stop dbconsole
$ lsnrctl stop [listener_name]

Oracle RACインスタンスの場合は、各データベース・インスタンスを次のように停止します。

$ srvctl stop database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止します。Oracle Databaseサービスの名前はOracleで始まります。

3. Oracle Database Vaultを次のように有効にします。

- UNIXの場合: 次のコマンドを実行します。makeコマンドでは、Oracle Database Vault(dv_on)とOracle Label Security(lbac_on)の両方が有効になります。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk dv_on lbac_on ioracle

Oracle ExadataストレージにRDSプロトコルを使用する場合は、次のコマンドを使用してDatabase VaultおよびLabel Securityを有効にします。

$ cd $ORACLE_HOME/rdbms/lib
$ make –f ins_rdbms.mk dv_on lbac_on ipc_rds ioracle

- Windows: ORACLE_BASE\ORACLE_HOME\binディレクトリで、oradvll.dll.dblファイルの名前をoradvll.dllに変更します。Oracle Label Securityの実行可能ファイルの名前がoralbacll.dllになっている(oralbacll.dll.dblや別のバックアップ名ではない)ことを確認します。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。

4. データベースとリスナーを再起動します。(まだDatabase Controlコンソール・プロセスは再起動しないでください。)

- UNIXの場合: SYSOPER権限を持つユーザーSYSとしてSQL*Plusにログインし、データベースを再起動します。次に、コマンドラインからリスナーを再起動します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password

SQL> STARTUP
SQL> EXIT

$ lsnrctl start [listener_name]

Oracle RACインストールの場合は、次のように各データベース・インスタンスを再起動します。

$ srvctl start database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベースとリスナーを停止します。Oracle Databaseサービスの名前はOracleで始まります。

5. Database Configuration Assistantを起動します。

- UNIX: 端末ウィンドウで次のコマンドを入力します。

dbca

デフォルトでは、dbcaは$ORACLE_HOME/binディレクトリ内にあります。

- Windows: 「スタート」メニューから「すべてのプログラム」をクリックします。次に、「Oracle - ORACLE_HOME」、「Configuration and Migration Tools」、「Database Configuration Assistant」をクリックします。
あるいは、コマンド・プロンプトでDatabase Configuration Assistantを起動することもできます。

dbca

UNIXの場合と同様に、通常、dbcaはORACLE_BASE\ORACLE_HOME\binディレクトリ内にあります。

6. 「ようこそ」ページで「次へ」をクリックします。
「操作」ページが表示されます。

7. 「データベース・オプションの構成」を選択し、「次へ」をクリックします。
「DATABASE」ページが表示されます。

8. リストから、Oracle Databaseをインストールしたデータベースを選択し、「次へ」をクリックします。
「データベース・コンテンツ」ページが表示されます。

9. 次のアクションのいずれかを実行します。

- Oracle Label Securityがすでに有効な場合: 「Oracle Database Vault」」オプションを選択し、「次へ」をクリックします。

- Oracle Label Securityが有効になっていない場合: 「Oracle Label Security」オプションを選択し、「Oracle Database Vault」オプションを選択できるようにします。「Oracle Database Vault」オプションも選択し、「次へ」をクリックします。

「Oracle Database Vault資格証明」ページが表示されます。

10. Database Vault所有者アカウントの名前とパスワード(たとえば、DBVOWNER)を指定し、Database Vaultアカウント・マネージャ・アカウントの名前とパスワード(たとえば、DBVACCTMGR)を指定します。
これらのユーザー・アカウントに、DV_OWNER、DV_ACCTMGRなどの、Database Vaultロールの名前を入力しないでください。これらの名前は予約語です。Database Vaultロールの詳細は、「Oracle Database Vaultロール」を参照してください。

『Oracle Databaseセキュリティ・ガイド』のパスワードのガイドラインに従って、安全なパスワードを入力します。Oracle Database Vaultには追加的なパスワード要件があり、誤ったパスワードを作成しようとすると、これらの要件が表示されます。

11. 「次へ」をクリックします。
「接続モード」ページが表示されます。

12. (このデータベースを作成したときに選択した内容に応じて)「専用サーバー・モード」または「共有サーバー・モード」のいずれかを選択して「終了」をクリックし、確認プロンプトで「OK」をクリックします。
Database Configuration AssistantによってOracle Database Vaultが登録され、データベース・インスタンスが再起動されます。

13. Database Configuration Assistantを終了します。

14. Database Controlコンソールプロセスを再起動します。

- UNIXの場合: 次のコマンドを実行します。

$ emctl start dbconsole

- Windowsの場合: [コントロール パネル] のサービス・ツールからDatabase Controlコンソール・プロセス(例: データベースの名前がorclの場合はOracleDBConsoleorcl)を再起動します。

Oracle Database VaultをOracle Databaseに登録後、Oracle Database Vault Administratorを起動できます。詳細は、「Oracle Database Vaultの起動」を参照してください。

Oracle Database Vaultの起動

この項では、Oracle Database Vault Administratorの起動方法について説明します。この項の内容は次のとおりです。

- Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス

- Oracle Database Vault Administratorの起動

Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス

この項の内容は次のとおりです。

- Database ControlからのOracle Database Vaultページへのアクセス

- Grid ControlからのOracle Database Vaultページへのアクセス

- Database ControlからのDatabase Vault Administratorへのアクセス

Database ControlからのOracle Database Vaultページへのアクセス

Database Controlから、Oracle Database Vaultページを使用してDatabase Vault対応のデータベースを監視し、Database Vaultレポートを表示できます。

ただし、Database Controlからポリシーを作成したり、他のDatabase Vault Administrator関連アクションを実行することはできません。これらのタスクを実行する場合は、「Oracle Database Vault Administratorの起動」で説明されているDatabase Vault Administratorを使用します。Database Vaultポリシーを他のDatabase Vault対応のデータベースに伝播する場合は、「Grid ControlからのOracle Database Vaultページへのアクセス」を参照してください。

Database ControlからOracle Database Vaultページにアクセスするには、次のようにします。

1. 必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。

2. Database Controlを起動します。
次に例を示します。

https://myserver.example.com:1158/em

Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

3. 次の情報を使用してDatabase Controlにログインします。

- ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。

- Database Vaultポリシーの作成および伝播: DV_OWNERまたはDV_ADMIN

- Database Vaultアラートおよびレポートの表示: DV_OWNER、DV_ADMINまたはDV_SECANALYST

- ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR

Oracle Database Vaultロールは、Database Controlを使用するための他の追加権限(SELECT ANY DICTIONARYなど)は必要ありません。

これらのロールの詳細は、「Oracle Database Vaultロールの概要」を参照してください。

- パスワード: パスワードを入力します。

- 接続モード: リストから「標準」を選択します。

- 「優先資格証明として保存」チェック・ボックス: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。

4. ホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。

5. 「セキュリティ」で「Database Vault」を選択します。
Oracle Database Vaultホームページが表示されます。

Grid ControlからのOracle Database Vaultページへのアクセス

Grid Controlから、Oracle Database Vaultページを使用してDatabase VaultポリシーをDatabase Vaultで保護されている他のデータベースに伝播し、Database Vaultで保護されているデータベースを集中コンソールから管理および監視し、アラートを自動化し、Database Vaultレポートを表示できます。

ただし、Grid Controlからポリシーを作成したり、他のDatabase Vault Administrator関連アクションを実行することはできません。これらのタスクを実行する場合は、「Oracle Database Vault Administratorの起動」で説明されているDatabase Vault Administratorを使用します。

Grid ControlからOracle Database Vaultページにアクセスするには、次のようにします。

1. Database Vaultとともに使用するGrid Controlターゲット・データベースが構成されていることを確認してください。
ターゲット・データベースの構成の詳細は、Oracle Enterprise Managerオンライン・ヘルプおよび『Oracle Enterprise Managerアドバンスト構成』を参照してください。

2. 必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。

3. Grid Controlを起動します。
次に例を示します。

https://myserver.example.com:1158/em

Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

4. ユーザーSYSMANでOracle Enterprise Managerにログインし、Normalで接続します。

5. Oracle Enterprise Manager Databaseホームページ(Databaseホームページ)で「ターゲット」サブページを選択します。

6. 「データベース」サブページを選択します。

7. 「データベース」ページで、接続先のOracle Database Vaultで保護されているデータベースのリンクを選択します。
データベース・インスタンスのホームページが表示されます。

8. ホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。

9. 「セキュリティ」で「Database Vault」を選択します。
「データベース・ログイン」ページが表示されます。

10. 次の情報を入力します。

- ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。

- Database Vaultポリシーの作成および伝播: DV_OWNERまたはDV_ADMIN

- Database Vaultアラートおよびレポートの表示: DV_OWNER、DV_ADMINまたはDV_SECANALYST

- ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR

Oracle Database Vaultロールは、Grid Controlを使用するための他の追加権限(SELECT ANY DICTIONARYなど)は必要ありません。

詳細は、「Oracle Database Vaultロールの概要」を参照してください。

- パスワード: パスワードを入力します。

- 接続モード: リストから「標準」を選択します。

- 「優先資格証明として保存」チェック・ボックス: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。

11. 「ログイン」ボタンをクリックします。
Database Vaultホームページが表示されます。

関連項目:
「Oracle Database VaultのOracle Enterprise Managerとの使用」

Database ControlからのDatabase Vault Administratorへのアクセス

Database Vault AdministratorへはOracle Enterprise Manager Database Controlからアクセスできます。

- 手順1: DV_OWNERユーザーへの適切な権限の付与

- 手順2: Database ControlからDatabase Vault Administratorへのアクセス(DV_OWNERユーザーとして)

手順1: DV_OWNERユーザーへの適切な権限の付与

1. Database Controlを起動します。
次に例を示します。

https://myserver.example.com:1158/em

Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

2. ユーザーSYSMANまたはSYSTEMとしてDatabase Controlにログインします。
データベースのホームページが表示されます。

3. ウィンドウの右上で、「設定」ボタンをクリックします。

4. 「管理者」リンクを選択します。

5. 「管理者」ウィンドウで、「作成」ボタンをクリックします。

6. 「管理者の作成」ウィンドウで、次の手順を実行します。

- ユーザー名: DV_OWNERロールを付与されているユーザーの名前を入力します。ユーザーに付与されているロールを検索するには、USER_ROLE_PRIVSデータ・ディクショナリ・ビューを問い合せることができます。

- 電子メール・アドレス: オプションで、このユーザーの電子メール・アドレスを入力します(必須ではありません)。

- 管理権限: 「すべてのターゲットの表示」を選択します。

- SELECT_CATALOG_ROLEの付与: このチェック・ボックスの選択を解除します。

7. 「確認」をクリックします。

8. 「終了」をクリックします。

手順2: Database ControlからDatabase Vault Administratorへのアクセス(DV_OWNERユーザーとして)

1. 必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。

2. 「手順1: DV_OWNERユーザーへの適切な権限の付与」で構成したDV_OWNERユーザーとして、Database Controlにログインします。
次のメッセージが表示されます。

You have been logged in to a Database with Database Vault installed on it. As Database Vault enforces separation of duty you may not be able to use all the areas in EM. Please click the link below which will forward you to the area which you have access to.

3. 「Database Vault」リンクをクリックします。
Database Vaultホームページが表示されます。

4. 「管理」タブをクリックします。

5. 管理オプション(「レルム」など)を選択します。

6. Database Vault AdministratorへのURLの入力を求められたら、次の構文で入力します。

https://host_name:port/dva

- host_name: Oracle Database Vaultをインストールしたサーバーおよびドメインです。

- port: Oracle Enterprise ManagerコンソールのHTTPSポートの番号です。

次に例を示します。

https://myserver:1158/dva

ポート番号が不明な場合は、$ORACLE_HOME/host_sid/sysman/config/emd.propertiesファイルを開いてREPOSITORY_URLを検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Database Controlと同じです。

7. 「保存」をクリックします。
次回Database Vaultポリシー・オプションを選択するときに、Database Vault Administratorが起動します。

Oracle Database Vault Administratorの起動

Oracle Enterprise Manager Database ControlまたはGrid Controlを使用していない場合、あるいは別のコンピュータからOracle Database Vaultに接続する場合は、次の手順に従ってOracle Database Vault Administratorを起動します。

1. 必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。

2. ブラウザに、次のURLを入力します。

https://host_name:port/dva

ここでは、次のようになります。

- host_name: Oracle Database Vaultをインストールしたサーバーです。

- port: Oracle Enterprise ManagerコンソールのHTTPSポートの番号です。

次に例を示します。

https://myserver:1158/dva

ポート番号が不明な場合は、$ORACLE_HOME/host_sid/sysman/config/emd.propertiesファイルを開いてREPOSITORY_URLを検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Database Controlと同じです。

Oracle Database Vault Administratorを起動できない場合は、Oracleデータベース・コンソールのプロセスが稼働していることを確認します。

- UNIXの場合: $ORACLE_HOME/binディレクトリに移動して次のコマンドを実行します。

./emctl status dbconsole

dbconsoleプロセスを起動する必要がある場合は、次のコマンドを実行してください。

./emctl start dbconsole

- Windows: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesid」サービスを右クリックします。必要に応じて、メニューから「開始」を選択し、データベース・コンソールを起動します。

データベースのログ・ファイルは次のディレクトリにあります。

$ORACLE_HOME/sysman/log

3. インストール中に作成したOracle Database Vault所有者アカウントを使用してログインします。
ログインするには、完全な接続文字列を入力する必要があります。これにより、Oracle Database Vaultで複数のOracle Databaseインスタンスを管理できます。

デフォルトでは、SYS、SYSTEMまたはその他の管理アカウントを使用してOracle Database Vault Administratorにログインすることはできません。DV_ADMINまたはDV_OWNERロールがある場合はログインできます。

次の値を入力します。

- ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。

- Database Vaultポリシーの作成および管理: DV_OWNERまたはDV_ADMIN

- Database Vaultレポートの表示: DV_OWNER、DV_ADMINまたはDV_SECANALYST

- ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR

詳細は、「Oracle Database Vaultロールの概要」を参照してください。

- パスワード: パスワードを入力します。

- ホスト: 目的のOracle Database Vaultインストールのコンピュータのホスト名を入力します。次の書式を使用します。

server.domain

次に例を示します。

myserver-pc.us.example.com

- ポート: Oracle Databaseのポート番号を入力します。デフォルトのポート番号は1521です。ポート番号が不明な場合は、tnsnames.oraファイルをチェックしてください。
次に例を示します。

1521

- SID/サービス: 「SID」または「サービス」を選択します。これらの値は、tnsnames.oraファイルで確認できます。デフォルトでは、このファイルは$ORACLE_HOME/network/adminにあります。

- SID: Oracle Databaseインスタンスの名前を入力します。次に例を示します。

orcl

- サービス: データベース・インスタンスのサービス名を次の書式で入力します。

service_name.domain

次に例を示します。

orcl.us.example.com

図3-1は、ログインすると表示されるOracle Database Vault Administratorのホームページを示しています。

図3-1 Oracle Database Vault Administratorのホームページ

クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: データ・ディクショナリ・レルムへのSYSTEMユーザーの追加

- 手順2: SYSTEMとしてログインしHRスキーマにアクセスする

- 手順3: レルムの作成

- 手順4: HRスキーマのEMPLOYEES表の保護

- 手順5: レルムの認可の作成

- 手順6: レルムのテスト

- 手順7: レポートの実行

- 手順8: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

このチュートリアルでは、HRサンプル・データベース・スキーマ用の簡単なセキュリティ構成を作成します。HRスキーマのEMPLOYEES表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HRスキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。最後に、レポートを実行し、レルムをテストする際に試行するような疑わしいアクティビティの監査証跡をOracle Database Vaultがどのように作成するかを確認します。

このチュートリアルを使用する前に、HRサンプル・スキーマがインストールされていることを確認してください。サンプル・スキーマのインストールに関する情報は、『Oracle Databaseサンプル・スキーマ』を参照してください。

手順1: データ・ディクショナリ・レルムへのSYSTEMユーザーの追加

このチュートリアルでは、SYSTEMユーザーは、新しいユーザー・アカウントSEBASTIANにANY権限を付与します。これを実行するには、SYSTEMをOracleデータ・ディクショナリ・レルムに含める必要があります。

SYSTEMをOracleデータ・ディクショナリ・レルムに含めるには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページの「Database Vault機能管理」で、「レルム」をクリックします。

3. 「レルム」ページで、リストから「Oracleデータ・ディクショナリ」を選択し、「編集」をクリックします。

4. 「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」で、「作成」をクリックします。

5. 「レルム認可の作成」ページで、「権限受領者」リストからSYSTEM [USER]を選択します。

6. 「認可タイプ」に、「所有者」を選択します。

7. 「認可ルール・セット」を「<未選択>」のままにします。

8. 「OK」をクリックします。
「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」に、SYSTEMが所有者として表示されます。

9. 「OK」をクリックして「レルム」ページに戻ります。

10. 「管理」ページに戻るには、「レルム」のデータベース・インスタンスinstance_nameリンクをクリックします。

手順2: SYSTEMとしてログインしHRスキーマにアクセスする

ユーザーSYSTEMとしてSQL*Plusにログインし、HRスキーマにアクセスします。

sqlplus system
Enter password: password

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM < 10;

次のような出力が表示されます。

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Donald               OConnell                        2600
Douglas              Grant                           2600
Jennifer             Whalen                          4400
Michael              Hartstein                      13000
Pat                  Fay                             6000
Susan                Mavris                          6500
Hermann              Baer                           10000
Shelley              Higgins                        12000
William              Gietz                           8300

9 rows selected.

HRスキーマがロックされて無効になっている場合、DV_ACCTMGRユーザーとしてSQL*Plusにログインし、ロックを解除してアカウントを有効にします。次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

この例からわかるように、SYSTEMにはHRスキーマのEMPLOYEES表の給与情報へのアクセス権があります。SYSTEMには、SELECT ANY TABLEシステム権限を含むDBAロールが自動的に付与されるためです。

手順3: レルムの作成

レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。レルムを作成したら、レルム内のスキーマやスキーマ・オブジェクトに適用するセキュリティ制限を作成します。まず、HRスキーマにレルムを作成します。

1. Oracle Database Vault Administratorの「レルム」ページで、「作成」をクリックします。

2. 「レルムの作成」ページの「一般」で、「名前」にHR Realmと入力します。

3. 「ステータス」に「有効」が選択されていて、そのレルムが使用可能になっていることを確認します。

4. 「監査オプション」で、「失敗時に監査」が選択されていて、後から監査証跡を作成できることを確認します。

5. 「OK」をクリックします。
レルムのリストにHR Realmが表示された状態でレルムのサマリー・ページが表示されます。

手順4: HRスキーマのEMPLOYEES表の保護

この手順では、HRスキーマのEMPLOYEES表をHRレルムのセキュア・オブジェクトに追加します。

1. 「レルム」ページで、リストからHR Realmを選択し、「編集」をクリックします。

2. 「レルムの編集: HR Realm」ページで、「レルム・セキュア・オブジェクト」までスクロールし、「作成」をクリックします。

3. 「レルム・セキュア・オブジェクトの作成」ページで、次の設定を入力します。

- オブジェクト所有者: リストからHRを選択します。

- オブジェクト・タイプ: リストからTABLEを選択します。

- オブジェクト名: EMPLOYEESと入力します。

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

5. 「レルムの編集: HR Realm」ページで「OK」をクリックします。

手順5: レルムの認可の作成

この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。そのため、この手順でデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIANユーザー・アカウントを作成します。レルムに対してこのユーザーを認可すると、SEBASTIANによるEMPLOYEES表の表示や変更が可能になります。

1. DV_ACCTMGRロールを持つDatabase Vaultアカウント・マネージャとしてSQL*Plusに接続し、ユーザーSEBASTIANを作成します。
次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

CREATE USER SEBASTIAN IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

2. SYSTEM権限として接続し、SEBASTIANに次の追加権限を付与します。

CONNECT SYSTEM
Enter password: password

GRANT CREATE SESSION, SELECT ANY TABLE TO SEBASTIAN;

(「手順6: レルムのテスト」でレルムをテストする際に必要なため、SQL*Plusを終了しないでください。)

この段階では、SEBASTIANにSELECT ANY TABLE権限があっても、レルムによって保護されているためHR.EMPLOYEES表から選択できません。

次に示すようにしてユーザーSEBASTIANを認可し、HR Realmへのアクセス権を付与します。

1. Database Vault Administratorの「レルム」ページで、レルムのリストからHR Realmを選択し、「編集」をクリックします。

2. 「レルムの編集: HR Realm」ページで、「レルム認可」までスクロールし、「作成」をクリックします。

3. 「レルム認可の作成」ページの「権限受領者」で、リストからSEBASTIAN[USER]を選択します。
リストにSEBASTIANが表示されない場合は、ブラウザの「更新」ボタンをクリックします。

SEBASTIANがHRスキーマのEMPLOYEES表にアクセスできる唯一のユーザーになります。

4. 「認可タイプ」で「参加者」を選択します。
参加者の認可により、HRレルムのユーザーSEBASTIANは、HRレルムによって保護されるオブジェクトのアクセスの管理、操作および作成が可能になります。この場合、EMPLOYEES表の表示を許可されているのは、HRユーザーおよびSEBASTIANのみです。

5. このレルムはルール・セットで制御する必要がないため、「認可ルール・セット」で「<未割当て>」を選択します。

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

手順6: レルムのテスト

レルムをテストするには、HR以外のユーザーとしてEMPLOYEES表へのアクセスを試行します。通常、SYSTEMアカウントにはHRスキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES表を保護しているため、アクセス権はありません。

SQL*Plusで、SYSTEMとして接続し、EMPLOYEES表の給与情報へのアクセスを再試行します。

sqlplus system
Enter password: password

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;

次のような出力結果が表示されます。

Error at line 1:
ORA-01031: insufficient privileges

SYSTEMにはEMPLOYEES表の給与情報へのアクセス権はなくなります。しかし、ユーザーSEBASTIANには、この情報へのアクセス権があります。次のようにします。

CONNECT SEBASTIAN
Enter password: password

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;

次のような出力が表示されます。

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Donald               OConnell                        2600
Douglas              Grant                           2600
Jennifer             Whalen                          4400
Michael              Hartstein                      13000
Pat                  Fay                             6000
Susan                Mavris                          6500
Hermann              Baer                           10000
Shelley              Higgins                        12000
William              Gietz                           8300

9 rows selected.

手順7: レポートの実行

HR Realmの失敗時の監査を有効にしたため、「手順6: レルムのテスト」で試みたように、レポートを生成してセキュリティ違反を検出できます。

1. Oracle Database Vault Administratorのホームページで、「Database Vaultレポート」をクリックします。
レポートを実行するには、あらかじめDV_OWNER、DV_ADMINまたはDV_SECANALYSTロールのあるアカウントを使用してログインしておく必要があります。ユーザーSEBASTIANは、自分のレルムに影響する場合であっても、レポートを実行できないことに注意してください。これらのロールの詳細は、「Oracle Database Vaultロール」で説明しています。現在、Database Vault所有者(DV_OWNER)アカウントとしてログインしている必要があります。

2. 「Database Vaultレポート」ページで、「Database Vaultの監査レポート」までスクロールし、「レルムの監査」を選択します。

3. 「レポートの実行」をクリックします。

Oracle Database Vaultにより、違反の種類(この場合は前の項目で入力したSELECT文)、発生した時間と場所、違反を試みたユーザーのログイン・アカウント、および違反の内容などを示すレポートが生成されます。

手順8: このチュートリアルのコンポーネントの削除

1. データ・ディクショナリ・レルムからSYSTEMアカウントを削除します。

1. DV_OWNERロールが付与されているデータベース・アカウントを使用してOracle Database Vault Administratorにログインしていることを確認します。

2. 「管理」ページで、「レルム」を選択します。

3. レルムのリストから「Oracleデータ・ディクショナリ」を選択して「編集」をクリックします。

4. 「レルム認可」でSYSTEMを選択します。

5. 「削除」をクリックして、確認ウィンドウで「はい」をクリックします。

2. HR Realmを削除します。

1. 「レルム」ページで、レルムのリストからHR Realmを選択します。

2. 「削除」をクリックして、確認ウィンドウで「はい」をクリックします。

3. ユーザーSEBASTIANを削除します。
SQL*Plusで、Oracle Database Vaultアカウント・マネージャ(たとえばamalcolm_dvacctmgr)としてログインし、次のようにSEBASTIANを削除します。

sqlplus amalcolm_dvacctmgr
Enter password: password

DROP USER SEBASTIAN;

4. 必要な場合、HRアカウントをロックし、無効にします。

ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;

4 レルムの構成

この章の内容は次のとおりです。

- レルムの概要

- デフォルトのレルム

- レルムの作成

- レルムの編集

- レルム・セキュア・オブジェクトの作成

- レルム認可の定義

- レルムの無効化および有効化

- レルムの削除

- レルムの動作

- レルムでの認可の動作

- レルムで保護されたオブジェクトへのアクセスの有効化

- レルムの動作の例

- その他のOracle Database Vaultコンポーネントへのレルムの影響

- レルム設計のガイドライン

- レルムのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

レルムの概要

レルムは、保護する必要のある、特定のアプリケーション用のデータベース・スキーマおよびロールの機能グループです。レルムは、データベース・オブジェクトの保護ゾーンとみなすことができます。スキーマは、表、ビューおよびパッケージなどのデータベース・オブジェクトの論理的な集合で、ロールは権限の集合です。スキーマおよびロールを機能グループに分類することにより、システム権限を使用するユーザーがこれらのグループに対して行える操作を制御し、データベース管理者またはシステム権限を持つその他の強力なユーザーによる不正なデータ・アクセスを防ぐことができます。Oracle Database Vaultは、既存のOracleデータベースの任意アクセス制御モデルを置き換えません。レルムおよびコマンド・ルールの両方で、このモデルの上位の層として機能します。

レルムを作成すると、レルムで保護する一連のスキーマ・オブジェクトまたはロール(セキュア・オブジェクト)を登録し、セキュア・オブジェクトにアクセスする一連のユーザーやロールを認可できます。

たとえば、Oracle Database Vaultをインストールすると、レルムを作成して経理部門で使用される既存のデータベース・スキーマをすべて保護できます。レルムに対して認可されていないユーザーは、保護された経理データにシステム権限を使用してアクセスすることを許可されません。

Oracle Database Vaultに作成するレルム上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してレルムを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してレルムを構成するには、次の章を参照してください。

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」

デフォルトのレルム

Oracle Database Vaultには次に示すデフォルトのレルムが用意されています。

- Database Vaultアカウント管理: データベース・アカウントおよびデータベース・プロファイルを管理および作成する管理者のレルムを定義します。

- Oracleデータ・ディクショナリ: 次のOracle Catalogスキーマのレルムを定義します。

ANONYMOUS

DBSNMP

MDSYS

SYS

BI

EXFSYS

MGMT_VIEW

SYSMAN

CTXSYS

MDDATA

OUTLN

SYSTEM

このレルムは、システム権限およびデータベース管理者ロールを付与する権限も制御します。

- Oracle Database Vault: 構成およびロール情報などのOracle Database Vaultスキーマ(DVSYS、DVFおよびLBACSYS)のレルムを定義します。

- Oracle Enterprise Manager: データベース情報にアクセスするためのOracle Enterprise Managerアカウント(SYSMANおよびDBSNMP)のレルムを定義します。

レルムの作成

通常、レルムの保護を有効にするには、まずレルムを作成し、レルムを編集してレルム・セキュア・オブジェクト、ロールおよび認可を含めます。「レルム設計のガイドライン」に、レルムの作成に関する注意事項が説明されています。

レルムを作成するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページの「Database Vault機能管理」で、「レルム」をクリックします。

3. 「レルム」ページで「作成」をクリックします。

4. 「レルムの作成」ページで、次の設定を入力します。

- 一般:

- 名前: レルムの名前を入力します。大/小文字の両方を使用して90文字以内で指定できます。この属性は必須です。
保護されているアプリケーションの名前をレルム名として使用することをお薦めします(人事アプリケーションにはhr_appなど)。

- 説明: レルムの簡単な説明を入力します。説明は大/小文字混在で最大で1024文字まで入力できます。この属性はオプションです。
説明には、指定されたアプリケーション保護のビジネス目標や、レルムによる保護の重要性を示すその他のすべてのセキュリティ・ポリシーを含めることができます。また、レルムに対して認可されているユーザーとその目的、および緊急時の認可についても説明できます。

- ステータス: 「有効」または「無効」のいずれかを選択し、レルムを有効または無効にします。レルムはデフォルトでは有効です。この属性は必須です。

- 監査オプションで次のいずれかを選択します。

- 監査無効: 監査レコードは作成されません。

- 失敗時に監査: デフォルト。認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

- 成功時または失敗時に監査: アクティビティが認可されている場合でも認可されていない場合でも、レルム内で発生したすべてのアクティビティに関する監査レコードが作成されます。

その他の監査オプションについては、「CREATE_REALMプロシージャ」を参照してください。

Oracle Database VaultはDVSYS.AUDIT_TRAIL$システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。

5. 「OK」をクリックします。
作成した新しいレルムがリストされたレルムのサマリー・ページが表示されます。

新しいレルムを作成したら、そのレルムにレルムで保護するスキーマやデータベース・オブジェクトを追加し、アクセスするユーザーやロールを認可できます。これを実行するには、新しいレルムを編集し、オブジェクトおよび認可されたユーザーを追加します。

関連項目:

- 「レルムの編集」

- 「レルム・セキュア・オブジェクトの作成」

- 「レルム認可の定義」

- 「Oracle Database Vaultポリシーの他のデータベースへの伝播」

レルムの編集

レルムを編集するには、次のようにします。

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで編集するレルムを選択します。

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

4. 必要に応じてレルムを編集し、「OK」をクリックします。

関連項目:

- 新しいレルム用に作成された設定を変更する場合は、「レルムの作成」を参照してください。

- レルム・セキュア・オブジェクトを追加または変更する場合は、「レルム・セキュア・オブジェクトの作成」を参照してください。

- レルム認可を追加または編集する場合は、「レルム認可の定義」を参照してください。

レルム・セキュア・オブジェクトの作成

レルム・セキュア・オブジェクトでは、レルムで保護する領域を定義します。レルムの領域は、一連のスキーマ、データベース・オブジェクトおよびロールです。次のような保護方法があります。

- 複数のデータベース・アカウントまたはスキーマのオブジェクトを同じレルムに追加できます。

- 1つのオブジェクトは複数のレルムに属することができます。
オブジェクトが複数のレルムに属する場合、Oracle Database Vaultはアクセス権があるかどうかレルムをチェックします。SELECT、DDLおよびDML文では、ユーザーがいずれかのレルムの参加者で、コマンド・ルールで許可されれば、そのユーザーが入力するコマンドは許可されます。複数のレルムにおけるデータベース・ロールによるGRANTおよびREVOKE操作の場合、GRANTまたはREVOKE操作を実行するユーザーはレルムの所有者である必要があります。

レルムによって保護されているオブジェクトは「レルムの編集」ページから管理できます。このページでは、レルム・セキュア・オブジェクトを作成、編集および削除できます。

レルム・セキュア・オブジェクトを作成するには、次のようにします。

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで必要なレルムを選択し、「編集」を選択します。

3. 「レルムの編集」ページの「レルム・セキュア・オブジェクト」で、次のいずれかを実行します。

- 新しいレルム・セキュア・オブジェクトを作成するには、「作成」を選択します。

- 既存のオブジェクトを変更するには、リストからオブジェクトを選択して「編集」を選択します。

4. 「レルム・セキュア・オブジェクトの作成」ページで、次の設定を入力します。

- オブジェクト所有者: リストから、データベース・スキーマ所有者の名前を選択します。この属性は必須です。
AUD$システム表に関してレルムを作成している場合は、SYSTEMをオブジェクト所有者として指定します。Oracle Database Vault環境では、AUD$表はSYSTEMスキーマに移動します。

- オブジェクト・タイプ: リストから、TABLE、INDEXまたはROLEなどのデータベース・オブジェクトのオブジェクト・タイプを選択します。この属性は必須です。
デフォルトで、「オブジェクト・タイプ」ボックスには%ワイルドカード文字が入力されており、指定されたオブジェクト所有者にすべてのオブジェクト・タイプを含めることができます。ただし、データベースに特定のスキーマ所有者がいないロールは含まれず、明示的に指定する必要があります。

- オブジェクト名: レルムで保護する必要があるデータベースのオブジェクトの名前を入力するか、%を入力して、指定したオブジェクト所有者のすべてのオブジェクト(ロール以外)を指定します。ただし、複数のオブジェクト名を指定するために、テキストとともにワイルドカード文字を使用(たとえば、EMP_%を使用して、文字EMP_で始まるすべての表を指定)することはできません。また、ワイルドカード文字を使用して複数のロールを指定することもできません。ロール名は1つずつ入力する必要があります。この属性は必須です。
デフォルトで、「オブジェクト名」フィールドには%ワイルドカード文字が入力されており、オブジェクト・タイプおよびオブジェクト所有者に指定されているスキーマ全体を含めることができます。%ワイルドカード文字は、現在存在するオブジェクトだけでなく、まだ存在していないオブジェクトにも適用されることに注意してください。また、%ワイルドカード文字はロールには適用されないことにも注意してください。複数のロールを含める場合は、各ロールを別々に指定する必要があります。

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

たとえば、HRスキーマのEMPLOYEES表を保護するには、「レルム・セキュア・オブジェクトの作成」ページに次の設定を入力します。

- オブジェクト所有者: HR

- オブジェクト・タイプ: TABLE

- オブジェクト名: EMPLOYEES

レルム・セキュア・オブジェクトの編集

レルム・セキュア・オブジェクトの編集手順:

1. 「レルムの編集」ページの「レルム・セキュア・オブジェクト」で、オブジェクトを選択します。

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

3. 「レルム・セキュア・オブジェクトの編集」ページで、必要に応じて属性を編集します。

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

レルム・セキュア・オブジェクトの削除

レルム・セキュア・オブジェクトの削除手順:

1. 「レルムの編集」ページの「レルム・セキュア・オブジェクト」で、オブジェクトを選択します。

2. 「削除」をクリックします。
確認ページが表示されます。

3. 「はい」をクリックします。
これによりオブジェクトがレルムから除外され保護されなくなります。(通常のデータベース保護は適用されています。)ただし、オブジェクトはデータベースからは削除されません。

レルム認可の定義

レルム認可では、レルムで保護されているオブジェクトの管理またはアクセスを実行する一連のデータベース・アカウントおよびロールを決定します。レルム認可は、次の状況におけるシステム権限の使用を認可されたアカウントまたはロールです。

- レルム・セキュア・オブジェクトの作成またはレルム・セキュア・オブジェクトへのアクセスが必要な場合

- レルム・セキュア・ロールを付与または取り消す必要がある場合

レルム所有者またはレルム参加者としてレルム認可を付与されたユーザーは、システム権限を使用してレルム内のセキュア・オブジェクトにアクセスできます。

次の点に注意してください。

- ここで設定する認可は、レルムによって保護されているデータベース・オブジェクトへの通常の直接オブジェクト権限を持つ一般ユーザーには影響しません。

- レルム所有者は、自分のレルムに他のユーザーを所有者または参加者として追加できません。DV_OWNERまたはDV_ADMINロールのあるユーザーのみ、所有者または参加者としてユーザーをレルムに追加できます。

- DV_OWNERロールを付与されているユーザーは、自分自身をレルム認可に追加できます。

- レルム参加者ではなくレルム所有者は、任意のユーザーに対してレルム・セキュア・データベース・ロールの付与または取消しを実行できます。

- ユーザーはレルム所有者またはレルム参加者のいずれかとして付与されますが、両方を付与されることはありません。ただし、レルム認可の認可オプションは更新できます。

「レルムの編集: HR Realm」ページを使用して、レルム認可を管理します。レルム認可を作成、編集および削除できます。レルム認可の構成情報を追跡する場合は、「「レルム認可構成の問題」レポート」を参照してください。

レルム認可の作成手順:

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで必要なレルムを選択し、「編集」を選択します。

3. 「レルムの編集」ページの「レルム認可」で、次のいずれかを実行します。

- 新しいレルム認可を作成するには、「作成」を選択します。

- 既存のレルム認可を変更するには、リストからレルム認可を選択して「編集」を選択します。

4. 「レルムの編集」ページの「レルム認可」で、「作成」をクリックします。

5. 「レルム認可の作成」ページで、次の設定を入力します。

- 権限受領者: リストから、レルム認可を付与するOracleデータベース・アカウントまたはロールを選択します。この属性は必須です。
このリストには、システム権限のあるアカウントのみでなく、システム内のすべてのアカウントおよびロールが表示されます。

このリストからユーザー自身(つまり、ログインしたユーザー)を選択することや、DV_ADMIN、DV_OWNERまたはDV_SECANALYSTのロールを付与されているアカウントを選択することはできません。

- 認可タイプ: 次のいずれかを選択します。この属性は必須です。

- 参加者: デフォルト。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。1つのレルムには複数の参加者を設定できます。

- 所有者: このアカウントまたはロールには、レルムの参加者と同じ権限と、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。レルム所有者は、レルムで保護されているオブジェクトの権限を他のユーザーに付与できます。1つのレルムに複数の所有者を設定できます。

- 認可ルール・セット: サイトに作成された使用可能なルール・セットから選択します。選択できるのは1つのルール・セットのみですが、ルール・セットには複数のルールがあります。
ルールを定義することによるレルム認可の制御の詳細は、「ルール・セットに追加するルールの作成」を参照してください。

ルール・セットに関連付けられている監査およびカスタム・イベント処理は、レルム認可処理の一部として発生します。

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

レルム認可の編集

レルム認可の編集手順:

1. 「レルムの編集」ページの「レルム認可」で、レルム認可を選択します。

2. 「編集」をクリックします。
「レルム認可の編集」ページが表示されます。

3. 必要に応じて属性を編集します。

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

レルム認可の削除

レルム認可の削除手順:

1. 「レルムの編集」ページの「レルム認可」で、レルム認可を選択します。

2. 「削除」をクリックします。
確認ページが表示されます。

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

レルムの無効化および有効化

デフォルトで、レルムの作成時にはレルムは有効になります。たとえば、パッチ更新などのシステム・メンテナンスのためにレルムを無効にし、後から再度有効にできます。

レルムを無効または有効にするには、次のようにします。

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで無効または有効にするレルムを選択し、「編集」を選択します。

3. 「レルムの編集」ページの「一般」セクションにある「ステータス」で、「無効」または「有効」を選択します。

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

レルムの削除

レルムを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのレルムへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

レルムの削除手順:

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで削除するレルムを選択し、「削除」を選択します。

3. 「確認」ページで「はい」をクリックします。
Oracle Database Vaultで、レルムの構成(ヘッダー、セキュア・オブジェクトおよび認可)が削除されます。レルム内のルール・セットは削除されません。

レルムの動作

適切な権限を持つデータベース・アカウントにより、カスタマ定義レルム内のオブジェクトに影響するSQL文(つまりDDL、DML、EXECUTE、GRANT、REVOKEまたはSELECT)が発行されると、次のアクションが発生します。

1. データベース・アカウントで、DDLオブジェクト権限を使用してSQL文を実行しますか。

実行する場合は、手順2に進みます。当てはまらない場合は、手順6に進みます。セッションが、対象となるオブジェクトに対して、SELECT、EXECUTEおよびDMLのオブジェクト権限しか持っていない場合、レルム保護は実施されません。レルムは、レルムで保護されているオブジェクトまたはロールに対するシステム権限の使用を保護します。

O7_DICTIONARY_ACCESSIBILITY初期化パラメータがTRUEに設定されている場合は、SYS以外のユーザーがSYSスキーマ・オブジェクトにアクセスできることに留意してください。セキュリティ強化のために、O7_DICTIONARY_ACCESSIBILITYがFALSEに設定されていることを確認してください。

2. SQL文はレルムによって保護されているオブジェクトに影響しますか。

影響する場合は、手順3に進みます。影響しない場合は、レルムもSQL文には影響しないため、手順6に進みます。コマンドによって影響されるオブジェクトがレルムで保護されていない場合、レルムも実行されるSQL文には影響しません。

3. データベース・アカウントは、レルム所有者またはレルム参加者ですか。

いずれかであり、コマンドがレルムで保護されているロールのGRANTかREVOKEである場合、またはレルムで保護されているオブジェクトに対するオブジェクト権限のGRANTかREVOKEである場合、セッションはロールを介して直接的または間接的にレルム所有者として認可されている必要があります。レルムで保護されているロールは、レルム内の認可されたロールと同じではありません。いずれかである場合は、手順4に進みます。いずれでもない場合は、レルム違反が発生し、文は失敗します。SYSはデフォルトのOracleデータ・ディクショナリ・レルムで唯一のレルム所有者であり、SYSのみがデータベース・アカウントまたはロールにシステム権限を付与できることに注意してください。

4. データベース・アカウントに対するレルム認可は、状況に応じてルール・セットに基づきますか。

当てはまる場合は、手順5に進みます。当てはまらない場合は、手順6に進みます。

5. ルール・セットの評価はTrueですか。

当てはまる場合は、手順6に進みます。そうでない場合は、レルム違反が発生し、SQL文は失敗します。

6. コマンド・ルールでコマンドの実行が阻止されますか。

阻止される場合は、コマンド・ルール違反が発生しSQL文は失敗します。阻止されない場合は、レルム違反もコマンド・ルール違反も発生しないため、コマンドは成功します。

たとえば、HRアカウントにDROP ANY TABLE権限があり、HRレルムの所有者であるとしても、月ごとのメンテナンスの時間帯でないかぎり、コマンド・ルールでHRによるHRスキーマの任意の表の削除を阻止できます。コマンド・ルールは、直接オブジェクト権限だけでなくANYシステム権限の使用にも適用され、レルム・チェック後に評価されます。

また、セッションはレルム内で認可されるため、アカウントはレルムによって保護されているオブジェクトを完全に制御できるわけではありません。レルム認可は、アカウントに追加権限を暗黙的に付与しません。アカウントは、従前どおり、オブジェクトにアクセスするためのシステム権限またはオブジェクト権限を持っている必要があります。たとえば、アカウントまたはロールにSELECT ANY表権限があり、HRレルムの参加者であるとします。これは、そのアカウントまたはロールが付与されているアカウントによる、HR.EMPLOYEES表への問合せが可能であることを意味します。レルムの参加者であることは、そのアカウントまたはロールでHR.EMPLOYEES表をDROPできるということではありません。Oracle Database Vaultは、既存のOracleデータベースの任意アクセス制御モデルを置き換えません。レルムおよびコマンド・ルールの両方で、このモデルの上位の層として機能します。

次の点に注意してください。

- デフォルトでは、レルム内の表の保護では、ビューは保護されません。ビューが作成された時期が、表がレルムに追加される前か後かに関係なく、保護する必要のあるビューは、レルムに追加しておく必要があります。

- レルムで保護されたオブジェクトにアクセスする起動者権限でのプロシージャでは、プロシージャの起動者がレルムに対して認可されている必要があります。

- SYSが所有するPL/SQLプロシージャの実行は、Oracleデータ・ディクショナリのレルム実施の対象です。(Oracleデータ・ディクショナリ・レルムは、Oracle Database Vaultによって提供されるデフォルトのレルムの1つです。詳細は、「デフォルトのレルム」を参照してください。)ただし、通常Oracleデータベースで必要なように、セッションにはプロシージャのEXECUTE権限が必要です。

- 表のアクセスがPUBLICに付与されている場合、レルム保護では表は保護されないので注意してください。たとえば、SELECT ON table_nameがPUBLICに付与されている場合、table_nameがレルムで保護されていても、全ユーザーがこの表にアクセスできます。不要な権限はPUBLICから取り消すことをお薦めします。

レルムでの認可の動作

レルムは、システム権限を使用したアクセスからデータを保護しますが、レルムが所有者または参加者に追加の権限を付与するわけではありません。レルム認可により、ユーザーのコマンドがコマンド内に指定されているオブジェクトへのアクセスや、そのコマンドの実行を許可されているかどうかを論理的に確認する実行時メカニズムが提供されます。

システム権限は、CREATE ANY TABLEおよびDELETE ANY TABLEなどのデータベース権限より優先されます。通常これらの権限はスキーマ全体に適用されるため、直接権限を付与する必要はありません。DBA_SYS_PRIVS、USER_SYS_PRIVSおよびROLE_SYS_PRIVSなどのデータ・ディクショナリ・ビューには、データベース・アカウントまたはロールのシステム権限が表示されています。データベース認可は、レルムに保護されていないオブジェクトを対象としています。ただし、レルムによって保護されているオブジェクトのシステム権限を正常に使用するには、ユーザーがレルム所有者または参加者として認可されている必要があります。レルム違反によりシステム権限の使用を阻止し、監査することができます。

例4-1に、レルムによってHRスキーマが保護されているレルムに、CREATE ANY TABLEシステム権限を持つ認可されていないユーザーが表の作成を試行すると発生する動作を示します。

例4-1 認可されていないユーザーによる表作成の試行

CREATE TABLE HR.demo2 (col1 NUMBER(1));

次のような出力結果が表示されます。

ORA-47401: Realm violation for CREATE TABLE on HR.DEMO2

この例からわかるように、認可されていないユーザーの試みは失敗します。SELECT ANY TABLE、CREATE ANY TABLE、DELETE ANY TABLE、UPDATE ANY TABLE、INSERT ANY TABLE、CREATE ANY INDEXなどのシステム権限の不正な使用は失敗します。

例4-2に、認可されていないデータベース・アカウントがDELETE ANY TABLEシステム権限を使用して既存のレコードの削除を試行すると発生する動作を示します。データベース・セッションにより次のエラーが返されます。

例4-2 認可されていないユーザーによるDELETE ANY TABLE権限の使用の試行

DELETE FROM HR.employees WHERE empno = 8002;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

レルムはオブジェクトの直接権限には影響しません。たとえば、HR.EMPLOYEES表の削除権限を付与されているユーザーは、レルム認証なしで正常にレコードを削除できます。そのため、レルムには、データベース・アカウントによる通常のビジネス・アプリケーションの使用に最低限の影響力が必要です。

例4-3に、認可されたユーザーがレルム内で許可された標準的なタスクをどのように実行するかを示します。

例4-3 認可されたユーザーによるDELETE操作の実行

DELETE FROM HR.employees WHERE empno = 8002;

1 row deleted.

レルムで保護されたオブジェクトへのアクセスの有効化

レルムでオブジェクトを保護したいが、このオブジェクトに含まれるオブジェクトにアクセスできるようにしたいと考えています。たとえば、特定の表にレルムを作成するとします。ただし、この表にユーザーが索引を作成できるようにします。これは、次のシナリオに応じて次のように実行できます。

- ユーザーにCREATE ANY INDEX権限がない場合。表のレルム所有者として、レルムを作成する必要のあるユーザーにCREATE INDEX ON table権限を付与します。

- ユーザーにCREATE ANY INDEX権限がある場合。この場合、別のレルムを作成して、すべての索引タイプをセキュア・オブジェクトとし、そのユーザーにレルムの参加者認可を付与します。(レルム参加者以外がレルムで保護された表に索引を作成する場合、CREATE ANY INDEXのみでは不十分なことに注意してください。)

- すべてのデータベース管理者が索引を作成できるようにし、データベース管理者にCREATE ANY INDEX権限がある場合。データ保護レルムで、索引タイプを除いて保護するすべてのオブジェクト・タイプを指定します。これにより、保護された表の索引をすべての管理者が作成できます。

レルムの動作の例

図4-1は、レルム内のデータがどのように保護されているかを示しています。このシナリオでは、別々のレルムを担当する2人のユーザーに同じシステム権限があります。レルム所有者は、データベース・アカウントまたはデータベース・ロールのいずれかです。OE_ADMINおよびHR_ADMINの2つのロールのそれぞれは、セキュア・オブジェクトとしてレルムで保護され、かつレルム所有者として構成されます。

さらに、OE_ADMINなどのレルム所有者は、レルムで保護されているデータベース・ロールの付与または取消しを実行できます。レルム所有者は、Oracleデータ・ディクショナリ・レルムのSYSによって作成されたDBAロールなど、他のレルムで保護されているロールを管理できません。レルムで保護されているオブジェクトにアクセスするためにシステム権限の不正な使用を試行することで、監査可能なレルム違反が生成されます。各レルム所有者の権限はそのレルム内に制限されます。たとえば、OE_ADMINには人事レルムへのアクセス権はなく、HR_ADMINには受注レルムへのアクセス権はありません。

図4-1 レルムおよびレルム所有者に対する認可の動作

関連項目:
レルムの作成および使用方法に関するチュートリアルは、「クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護」を参照してください。

その他のOracle Database Vaultコンポーネントへのレルムの影響

レルムにはファクタ、アイデンティティ、またはルール・セットに対する影響力はありません。コマンド・ルールには影響力があるため、SQL文を処理する際にはOracle Database Vaultによってまずレルム認可が評価されます。

「レルムの動作」では、レルム内のオブジェクトに影響を与えるSQL文を処理する際にOracle Database Vaultが実行する手順が説明されています。「コマンド・ルールの動作」では、コマンド・ルールがどのように処理されるかが説明されています。

レルム設計のガイドライン

次に示すレルム設計のガイドラインに従ってください。

- データベース・アプリケーションを構成するスキーマおよびロールに基づいてレルムを作成します。
最小限かつ特定のロールおよびアプリケーション・オブジェクトの維持に必要なシステム権限でデータベース・ロールを定義し、名前付きアカウントにロールを付与します。これにより、レルムの認可されたメンバーとしてロールを追加できます。レルムで保護されていてアプリケーションに必要なオブジェクトのオブジェクト・レベルの権限の場合、ロールを作成して、最低限かつ特定のオブジェクト・レベルの権限をロールに付与し、名前付きアカウントを付与します。多くの場合、ANYの付くシステム権限がすでに使用中でないかぎり、これらのタイプのロールをレルムで認可する必要はありません。権限はできるだけ少なくするという方針のモデルがデータベース・アプリケーションには理想的です。

- データベース・オブジェクトは複数のレルムに属することが可能で、アカウントまたはロールは複数のレルムで認可することが可能です。
データベース・スキーマのサブセットに制限付きのアクセス権(HRスキーマのEMPLOYEES表のみ、またはレルムで保護されたロールなど)を付与するには、最低限必要なオブジェクトと認可で新しいレルムを作成します。

- ロールを権限受領者としてレルムに追加する場合は、ロールを保護するレルムを作成します。これにより、SYSTEMユーザー・アカウントなどGRANT ANY ROLEシステム権限が付与されているユーザーが、自分自身にロールを付与することができなくなります。

- SYSユーザー・アカウントをレルム認可に追加する場合は、ロール(DBAロールなど)を介さずに、ユーザーSYSを明示的に追加する必要があります。

- レルム認可として追加する予定で、現在ロールに許可されている権限に注意してください。
SYSまたはSYSTEMなどのアカウントが初めてロールを作成し、Oracle Database Vault管理者がそのロールをレルム認可として追加した場合、ロールのレルム認可は意図せず付与される可能性があり、すぐには気付きません。これはロールを作成するアカウントが作成される際に、ロールが暗黙的に付与されるためです。

- 管理タスクに対しては、一時的なレルム保護の緩和が必要な場合もあります。レルムを無効にするのではなく、セキュリティ管理者(DV_ADMINまたはDV_OWNER)をログインさせて、レルムの認可されたアカウントに名前付きのアカウントを追加し、認可ルール・セットを有効に設定します。その後、有効なルール・セットで、ルール・セットの監査をすべてオンにします。管理タスクが完了するとレルム認可を削除できます。

- 新しいユーザーにANY権限を付与する場合は、必要に応じて他のユーザーにANY権限を付与できるよう、データ・ディクショナリ・レルムにデータベース管理ユーザーを追加することをお薦めします。たとえば、名前付きアカウントを使用してANY操作のGRANTを実行すると、これらの操作の監査が可能になり、説明責任を果すための監査証跡が作成されます。

- レルムで保護されている表、索引またはロールを削除してから同じ名前で再作成した場合、レルム保護は復元されません。新規表、索引またはロールのレルム保護を再作成する必要があります。ただし、指定したスキーマ内の将来のすべての表、索引およびロールに保護を自動的に適用できます。たとえば、将来のすべての表の保護を適用するには、次のようにします。

BEGIN
DBMS_MACADM.ADD_OBJECT_TO_REALM('realm_name', 'schema_name', '%', 'TABLE');
END;
/

レルムのパフォーマンスへの影響

レルムで保護されているオブジェクトに対するDDLおよびDML操作によって、Oracle Databaseはそれほど影響を受けません。スキーマ全体を対象としてレルムを作成し、割り当てられたタスクに関連する特定の操作のみを実行できるよう特定のユーザーを認可することをお薦めします。ファイングレイン制御の場合は、個々の表を対象とするレルムを定義し、表に対する特定の操作を実行できるようユーザーを認可すると同時に、スキーマ全体を対象としたレルムでアプリケーション全体を保護することもできます。ただし、このタイプの構成はパフォーマンスを低下させる可能性がある一方、スキーマ内の一部のオブジェクトにレルム認可を付与できないことに注意してください。

監査はパフォーマンスに影響します。最高のパフォーマンスを実現するためには、すべての操作を監査するのではなくファイングレイン監査を使用することをお薦めします。

Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、StatspackおよびTKPROFなどのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。StatspackおよびTKPROFユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。

関連するレポートおよびデータ・ディクショナリ・ビュー

表4-1に、レルムの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表4-1 レルムに関連するレポート

レポート

目的

「「レルムの監査」レポート」

レルムの保護およびレルム認可操作により生成されたレコードが監査されます。

「「レルム認可構成の問題」レポート」

不完全または無効なルール・セット、またはレルムに影響する権限受領者や所有者が存在しないなどの認可構成情報が表示されます。

「「ルール・セット構成の問題」レポート」

ルールが定義されていないか、有効ではなく、それらを使用するレルムに影響を与える可能性があるルール・セットが表示されます。

「オブジェクト権限レポート」

レルムが影響するオブジェクト権限が表示されます。

「権限管理 - サマリー・レポート」

レルムの権限受領者および所有者の情報が示されます。

「機密オブジェクト・レポート」

コマンド・ルールが影響するオブジェクトが表示されます。

表4-2に、既存のレルムに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表4-2 レルムに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー

説明

「DVSYS.DBA_DV_REALMビュー」

現行のデータベース・インスタンスで作成されたレルムが表示されます。

「DVSYS.DBA_DV_REALM_AUTHビュー」

特定のレルムのレルム・オブジェクトにアクセスするための、名前付きデータベース・ユーザー・アカウントまたはデータベース・ロール(GRANTEE)の認可が表示されます。

「DVSYS.DBA_DV_REALM_OBJECTビュー」

データベース・スキーマ、または特定のデータベース・オブジェクトが含まれている(つまり、レルムによって保護されている)スキーマのサブセットが表示されます。

5 ルール・セットの構成

この章の内容は次のとおりです。

- ルール・セットの概要

- デフォルトのルール・セット

- ルール・セットの作成

- ルール・セットの構成または編集

- ルール・セットに追加するルールの作成

- ルール・セットの削除

- ルール・セットの動作

- チュートリアル: セキュリティ違反の電子メール・アラートの作成

- チュートリアル: 二人制整合性(デュアル・キー・セキュリティ)の構成

- ルール・セット設計のガイドライン

- ルール・セットのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

ルール・セットの概要

ルール・セットは、レルム認可、ファクタ割当て、コマンド・ルールまたはセキュア・アプリケーション・ロールに関連付けられる1つ以上のルールの集合です。ルール・セットは、それに含まれる各ルールと評価タイプ(「すべてのTrue」または「いずれかTrue」)に基づいて、trueまたはfalseに評価されます。ルール・セット内のルールは、TrueまたはFalseと評価されるPL/SQL式です。ルールを作成し、そのルールを複数のルール・セットに追加できます。

ルール・セットを使用して次のアクティビティを実行できます。

- レルム認可がアクティブになる条件の定義(レルム認可をさらに制限することが目的)

- コマンド・ルールを許可する時期の定義

- セキュア・アプリケーション・ロールの有効化

- ファクタのアイデンティティを割り当てる時期の定義

ルール・セットを作成すると、レルムの認証、コマンド・ルール、ファクタまたはセキュア・アプリケーション・ロールの構成時に選択できるようになります。

Oracle Database Vaultに作成するルール・セット上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してルール・セットを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してルール・セットを構成するには、次の章を参照してください。

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」

デフォルトのルール・セット

Oracle Database Vaultにはデフォルトで一連のルール・セットが用意されており、ニーズにあわせてカスタマイズできます。デフォルトのルール・セットは次のとおりです。

- セッションを許可: データベースにセッションを作成する権限を制御します。このルール・セットを使用すると、CONNECTコマンド・ルールを使用してデータベース・ログインを制御するためのルールを追加できます。CONNECTコマンド・ルールは、その使用が必要なプログラムへのSYSDBAアクセスの制御または制限に有用です。このルール・セットは移入されていません。

- システム・パラメータを許可: システム初期化パラメータを設定する権限を制御します。Oracle Database 11gリリース2 (11.2)では、このルール・セットは「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットに置き換えられますが、下位互換性を確保するために引き続きサポートされます。「システム・パラメータを許可」ルール・セットはどのコマンドにも関連付けられていませんが、そのルールは引き続き使用可能で、任意のカスタム・ルール・セットで使用できます。「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットを使用することをお薦めします。

- システム・パラメータのファイングレイン・コントロールを許可: システム・セキュリティ、ダンプまたは宛先の場所、バックアップとリストアの設定、オプティマイザの設定、PL/SQLデバッグおよびセキュリティ・パラメータを管理する初期化パラメータに対する非常に柔軟でファイングレインな制御を行えます。これは、このルール・セットに関連付けられたルールに基づいて、次の初期化パラメータに影響します。

- 「システム・セキュリティ・パラメータが許可されているか」のルール: O7_DICTIONARY_ACCESSIBILITYを設定できません

- 「ダンプまたは宛先パラメータが許可されているか」のルール: 次のパラメータを設定できません。

BACKGROUND_DUMP_DEST

LOG_ARCHIVE_DEST_STATE_n

CORE_DUMP_DEST

LOG_ARCHIVE_DUPLEX_DEST

DB_CREATE_ONLINE_LOG_DEST

LOG_ARCHIVE_FORMAT

DB_RECOVERY_FILE_DEST

LOG_ARCHIVE_LOCAL_FIRST

DB_RECOVERY_FILE_DEST_SIZE

LOG_ARCHIVE_MAX_PROCESSES

DIAGNOSTIC_DEST

LOG_ARCHIVE_MIN_SUCCEED_DEST

DUMP_DATAFILE

LOG_ARCHIVE_TRACE

LOG_ARCHIVE_CONFIG

MAX_DUMP_FILE_SIZE

LOG_ARCHIVE_DEST

STANDBY_ARCHIVE_DEST

LOG_ARCHIVE_DEST_n

USER_DUMP_DEST

- 「バックアップ・リストア・パラメータが許可されているか」のルール: RECYCLEBINを設定できません(ただしリサイクルビンの無効化は妨げられません)。

- 「データベース・ファイル・パラメータが許可されているか」のルール: CONTROL_FILE_RECORD_KEEP_TIME、CONTROL_FILESを設定できます。

- 「オプティマイザ・パラメータが許可されているか」のルール: OPTIMIZER_SECURE_VIEW_MERGINGを設定できません。

- 「PL-SQLパラメータが許可されているか」のルール: UTL_FILE_DIR、PLSQL_DEBUGを設定できません。

- 「セキュリティ・パラメータが許可されているか」のルール: 次のパラメータを設定できません。

AUDIT_SYS_OPERATIONS = FALSE

OS_ROLES

AUDIT_TRAIL = NONE or FALSE

REMOTE_OS_ROLES

AUDIT_SYSLOG_LEVEL

SQL92_SECURITY

初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

- VPD管理権限を付与可能: GRANTおよびREVOKE文を使用して、Oracle Virtual Private DatabaseのDBMS_RLSパッケージのGRANT EXECUTEまたはREVOKE EXECUTE権限を付与する権限を制御します。

- Oracle Data Pump操作を許可: DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャで作成された各ユーザー認可を記述するルールで構成されます。ルールには、ユーザー・ログイン・アカウントおよびユーザーが許可されているアクセス・レベル(データベース全体、データベース内の1つのスキーマまたはこのスキーマ内の1つの表)などがあります。ユーザーがOracle Data Pumpのエクスポートまたはインポート操作を実行しようとすると、Oracle Database Vaultはこのルール・セットで定義されている認可をチェックします。ユーザーの認可がここで定義されていない場合、ユーザーはエクスポートまたはインポート操作の実行を許可されません。
詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

- スケジューラ・ジョブの許可: DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャで作成された各ユーザー認可を記述するルールで構成されます。ここでユーザーの認可が定義されていなくても、ユーザーはジョブを作成できます。ただし、別のスキーマでジョブを実行した場合、ジョブがOracle Database Vaultで保護されているオブジェクトにアクセスしたときに、ジョブは失敗します。ルールには、ユーザー・ログイン・アカウントおよびユーザーが許可されているアクセス・レベル(データベース全体、データベース内の1つのスキーマ)などがあります。ユーザーがデータベース・ジョブをスケジュールしようとすると、Oracle Database Vaultはこのルール・セットで定義されている認可をチェックします。ユーザーの認可がここで定義されていない場合、ユーザーはジョブの作成を許可されません。
詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

- アカウント/プロファイルを保守可能: CREATE USER、DROP USER、CREATE PROFILE、ALTER PROFILEまたはDROP PROFILE文を使用して、ユーザー・アカウントおよびプロファイルを管理するロールを制御します。

- 自分のアカウントを保守可能: DV_ACCTMGRロールのあるアカウントを許可し、ALTER USER文を使用したユーザー・アカウントおよびプロファイルの管理を可能にします。また、ALTER USER文を使用した、個々のアカウントによる個人のパスワードの変更を許可します。DV_ACCTMGRロールの詳細は、「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」を参照してください。

- 無効: レルム、コマンド・ルール、ファクタおよびセキュア・アプリケーション・ロールを迅速に無効にするための簡易ルール・セットです。

- 有効: システム機能を迅速に有効にするための簡易ルール・セットです。

ルール・セットの作成

通常、ルール・セットを作成するには、まずルール・セットを作成し、次にそのルール・セットを編集して1つ以上のルールに関連付けます。作成したルール・セットに新しいルールを関連付ける、既存のルールを追加する、もしくはそのルール・セットからルールの関連付けを削除することが可能です。

次の項目も参照してください。

- ルール・セットの設計に関する注意事項は、「ルール・セット設計のガイドライン」を参照してください。

- ルール式で使用できる一連のファンクションの詳細は、「Oracle Database VaultのPL/SQLルール・ファンクション」を参照してください。

- データベースのルール・セットの構成を確認する場合は、「「ルール・セット構成の問題」レポート」を参照してください。

ルール・セットを作成するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページの「Database Vault機能管理」で、「ルール・セット」をクリックします。

3. 「ルール・セット」ページで「作成」をクリックします。

4. 「ルール・セットの作成」ページで、次の設定を入力して「OK」をクリックします。

- 一般

- 監査オプション

- エラー処理オプション

一般

次の設定を入力します。

- 名前: ルール・セットの名前を入力します。大/小文字の両方を使用して90文字以内で指定できます。空白を使用できます。この属性は必須です。
名前は動詞で始まり、ルール・セットが関連付けられるレルムまたはコマンド・ルールの名前で終わることをお薦めします。次に例を示します。

Limit SQL*Plus access

- 説明: ルール・セットの機能の説明を入力します。大/小文字の両方を使用して1024文字以内で指定できます。この属性はオプションです。
ルール・セットのビジネス要件を説明できます。次に例を示します。

Rule to limit access to SQL*Plus

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にルール・セットを有効または無効にします。ルール・セットはデフォルトでは有効です。この属性は必須です。

- 評価オプション: ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを選択します。

- すべてTrue: デフォルト。ルール・セット自体がTrueと評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。

- いずれかTrue: ルール・セット自体がTrueと評価されるために、少なくともルール・セットの1つのルールがTrueと評価される必要があります。

コマンド・ルールによってアクセスされる際にルール・セットが評価される頻度を決定する場合、DBMS_MACADM.CREATE_RULE_SETプロシージャのis_staticパラメータを使用できます。詳細は、「CREATE_RULE_SETプロシージャ」を参照してください。

監査オプション

ルール・セットに対する監査レコードを生成するための次のオプションから選択します。Oracle Database VaultはDVSYS.AUDIT_TRAIL$システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。

この属性は必須です。設定は次のとおりです。

- 監査無効: どのような場合にも監査レコードは作成されません。

- 失敗時に監査: デフォルト。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、監査レコードが作成されます。

- 成功時または失敗時に監査: ルール・セットが評価されるたびに監査レコードが作成されます。

その他の監査オプションについては、「CREATE_RULE_SETプロシージャ」を参照してください。

Oracle Database Vaultの監査証跡はDVSYS.AUDIT_TRAIL$システム表に書き込まれ、フィールドRULE_SET_NAMEおよびRULE_SET_IDが含まれます。これらのフィールドには、ルール・セットがレルム認可やコマンド認可と関連付けられている場合や、ルール・セットが特定の状況下で監査するよう構成されている場合に移入されます。詳細は、付録A「Oracle Database Vaultの監査」を参照してください。

エラー処理オプション

ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合は、次の設定を入力してデータベース・セッションへのメッセージを制御します。

- 失敗オプション: 「エラー・メッセージを表示」(デフォルト)または「エラー・メッセージを表示しない」のいずれかを選択します。
「エラー・メッセージを表示しない」を選択して監査を有効にする利点は、潜在的な侵入者のアクティビティを追跡できるということです。監査レポートにより侵入者のアクティビティを把握できますが、エラー・メッセージが表示されないため、侵入者は監査が行われていることに気付きません。

- 失敗コード: -20000から-20999または20000から20999の範囲の数値を入力します。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、失敗メッセージ(次で作成)付きのエラー・コードが表示されます。この設定を省略すると、Oracle Database Vaultにより次のエラー・コードが表示されます。

ORA-01031: Insufficient privileges

- 失敗メッセージ: 大/小文字混在で80文字以内のメッセージを入力し、「失敗コード」で指定した失敗コードに関連付けます。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、エラー・メッセージが表示されます。エラー・メッセージを指定しない場合、Oracle Database Vaultにより通常のエラー・メッセージが表示されます。

- カスタム・イベント・ハンドラ・オプション: 次のオプションのいずれかを選択し、カスタム・イベント・ハンドラ・ロジック(次で作成)を実行する時期を決定します。

- ハンドラ無効: デフォルト。カスタム・イベント・メソッドを実行しません。

- 失敗時に実行: ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、カスタム・イベント・メソッドが実行されます。

- 成功時に実行: ルール・セットがTrueと評価されるとカスタム・イベント・メソッドが実行されます。

カスタム・イベント・メソッドを作成して、標準のOracle Database Vaultルール・セットの監査機能以外の特別な処理を実行できます。たとえば、イベント・ハンドラを使用して、ワークフロー・プロセスの開始や外部システムへのイベント情報の送信を実行できます。

- カスタム・イベント・ハンドラ・ロジック: 大/小文字混在で255文字以内のPL/SQL式を入力します。式には、任意のパッケージ・プロシージャまたはスタンドアロン・プロシージャを含めることができます。独自の式を作成するか、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」で説明されているPL/SQLインタフェースを使用できます。
完全修飾プロシージャとして式を記述します(schema.procedure_nameなど)。完全なSQL文は含めないでください。アプリケーション・パッケージ・プロシージャまたはスタンドアロン・プロシージャを使用している場合は、オブジェクトに対するEXECUTE権限を持つDVSYSを指定する必要があります。プロシージャ・シグネチャは、次の2つの書式のいずれかになります。

- PROCEDURE my_ruleset_handler(p_ruleset_name IN VARCHAR2, p_ruleset_rules IN BOOLEAN): ハンドラ処理にルール・セットの名前およびその戻り値が必要な場合に、この書式を使用します。

- PROCEDURE my_ruleset_handler: ハンドラ処理にルール・セットの名前と戻り値が不要な場合に、この書式を使用します。

これらの2つの書式のいずれかを使用するユーザー・インタフェースで式を定義する場合は、式を次の書式にします。

myschema.my_ruleset_handler

ルール・セットを作成すると、ルール・セットに追加するルールを作成できます。これを実行するには、新しいルール・セットを編集しルールを定義します。

関連項目:

- 「ルール・セットの構成または編集」

- 「ルール・セットに追加するルールの作成」

- 「Oracle Database Vaultポリシーの他のデータベースへの伝播」

ルール・セットの構成または編集

ルール・セットを構成または編集するには、次のようにします。

1. Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。

2. 「ルール・セット」ページで、編集するルール・セットを選択します。

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

4. 必要に応じてルール・セットを変更し、「OK」をクリックします。

関連項目:

- 新しいルール・セット用に作成された設定を変更する場合は、「ルール・セットの作成」を参照してください。

- ルール・セットのルールを追加または変更する場合は、「ルール・セットに追加するルールの作成」を参照してください。

ルール・セットに追加するルールの作成

新しいルール・セットを作成したら、そのルール・セットを1つ以上のルールに関連付けられます。新しいルールを作成すると、自動的に現行のルール・セットに追加されます。既存のルールをルール・セットに追加することもできます。また、ルール・セットにルールを追加せずに、今後作成するルール・セットのテンプレートとして使用することもできます。

ルール・セットの評価は、評価オプション(「すべてTrue」または「いずれかTrue」)を使用するルールの評価に依存します。ルール・セットが無効である場合、Oracle Database Vaultは、ルールを評価せずにルール・セットをTrueに評価します。

ルールの評価、ルールのネスト、および特定のユーザー(特権ユーザーなど)を除外するルールの作成方法は、「ルール・セットの動作」を参照してください。

新規ルールの作成

ルール・セットにルールを作成および追加するには、次のようにします。

1. Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。

2. 「ルール・セット」ページで、ルールを作成および追加するルール・セットを選択し、「編集」を選択します。

3. 「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールし、「作成」を選択します。

4. 「ルールの作成」ページで、次の設定を入力します。

- 名前: ルールの名前を入力します。大/小文字混在で最大で90文字まで入力できます。
名前は動詞で始まり、ルールの目的で終わることをお薦めします。次に例を示します。

Prevent non-admin access to SQL*Plus

ルールには「説明」フィールドがないため、明示的な名前を指定してください。ただし、90文字は超えないようにしてください。

- ルール式: 次の要件に一致するPL/SQL式を入力します。

- SQLのWHERE句で有効です。

- 次に示すような、独立していて有効なPL/SQLブール式です。

TO_CHAR(SYSDATE,'HH24') = '12'

- ブール(TRUEまたはFALSE)値と評価される必要があります。

- 255文字以内である必要があります。

- 現行のデータベース・インスタンスから既存のコンパイルされたPL/SQLファンクションを含めることができます。完全修飾ファンクションであることを確認してください(schema. function_name)。完全なSQL文は含めないでください。
アプリケーション・パッケージ・ファンクションまたはスタンドアロン・ファンクションを使用する場合は、ファンクションのEXECUTE権限のあるDVSYSアカウントを付与する必要があります。これを行うことで、新しいルールを追加するときに発生するエラーが少なくなります。

- ルールが機能することを確認してください。SQL*Plusで次の文を実行すると、構文をテストできます。

SELECT rule_expression FROM DUAL;

たとえば、次のルール式を作成したとします。

SYS_CONTEXT('USERENV','SESSION_USER') != 'TSMITH'

この式は、次のようにテストできます。

SELECT SYS_CONTEXT('USERENV','SESSION_USER') FROM DUAL;

ルール・セット式で使用可能なファンクションについては、次の項を参照してください。

- 「Oracle Database VaultのPL/SQLルール・ファンクション」

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第14章「DBMS_MACUTLパッケージの使用方法」

その他の式の例は、Oracle Database Vaultが提供するルール・セットに定義されているルールを参照してください。これらのルール・セットは、「デフォルトのルール・セット」に記載されています。

5. 「OK」をクリックします。
「ルール・セットの編集」ページが表示されます。デフォルトで、新しいルールはルール・セットに追加されます。

ルールの編集

ルールへの変更は、そのルールを含むすべてのルール・セットに適用されます。

ルールを編集するには、次のようにします。

1. 「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールします。

2. 編集するルールを選択して、「編集」をクリックします。

3. 「ルールの編集」ページで、必要に応じてルールを変更します。

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

ルール・セットからのルールの削除

ルール・セットからルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのルールへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

ルール・セットからルールを削除する手順:

1. 「ルール・セットの編集」ページで、「ルール・セットに関連付けられたルール」にスクロールします。

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

3. 「確認」ページで「はい」をクリックします。

ルール・セットからルールを削除しても、そのルールはまだ存在します。必要に応じて、そのルールをその他のルール・セットに関連付けることができます。ルールを削除する場合は、「DBMS_MACADMのルール・セット・プロシージャ」で説明されているDBMS_MACADM.DELETE_RULEファンクションを使用します。たとえば、ルールNight Shiftを削除するには、Database Vault所有者としてSQL*Plusにログインして、次の文を入力します。

EXEC DBMS_MACADM.DELETE_RULE('Night Shift');

既存のルールのルール・セットへの追加

既存のルールをルール・セットに追加する手順:

1. 「ルール・セット」ページで、ルールを追加するルール・セットを選択し、「編集」を選択します。

2. 「ルール・セットに関連付けられたルール」で「既存のルールの追加」を選択します。

3. 「既存のルールの追加」ページで、対象のルールを選択して「移動」(すべて移動する場合は「すべて移動」)をクリックし、それらを「選択したルール」リストに移動します。
[Ctrl]キーを押しながら各ルールをクリックすると、複数のルールを選択できます。

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

ルール・セットの削除

ルール・セットを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのルール・セットへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

ルール・セットの削除手順

1. コマンド・ルールなど、その他のDatabase Vaultオブジェクトがルール・セットを参照している場合は、参照を削除します。
ルール・セットを削除できるのは、そのルール・セットを参照しているその他のDatabase Vaultオブジェクトがない場合のみです。

2. Oracle Database Vaultの「管理」ページで、「ルール・セット」を選択します。

3. 「ルール・セット」ページで、削除するルール・セットを選択します。

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

5. 「確認」ページで「はい」をクリックします。
ルール・セットが削除されます。ただし、ルール・セットに関連付けられているルールは削除されません。

ルール・セットの動作

この項では、ルール・セットがどのように機能するかを次の内容で説明します。

- Oracle Database Vaultによるルールの評価方法

- ルール・セット内でのルールのネスト

- 1人のユーザーを除く全員に適用するルールの作成

Oracle Database Vaultによるルールの評価方法

ルール・セット内のルールは、式の集合として評価されます。「評価オプション」が「すべてTrue」に設定されている場合にルールの評価に失敗すると、ルール・セット内の残りのルールの評価は試行されず、その時点で評価が停止します。同様に、「評価オプション」が「いずれかTrue」に設定されている場合にルールがTrueと評価されると、評価はその時点で停止します。ルール・セットが無効である場合、Oracle Database Vaultは、ルールを評価せずにルール・セットをTrueと評価します。

ルール・セット内でのルールのネスト

ルール・セット内に1つ以上のルールをネストできます。たとえば、Is Corporate Network During Maintenanceという、次の2つのタスクを実行するネストされたルールを作成するとします。

- データベース・セッションが企業ネットワーク内から発生した場合のみ、表の変更を制限します。

- 午後10時から午後10時59分の間にスケジュールされているシステム・メンテナンスの時間帯に、表の変更を制限します。

ルールの定義は次のようになります。

DVF.F$NETWORK = 'Corporate' AND TO_CHAR(SYSDATE,'HH24') between '22' AND '23'

これは、ファクタ・ファンクションを使用して作成できます。詳細は、「Oracle Database VaultのPL/SQLファクタ・ファンクション」を参照してください。ファクタの作成方法は、第7章で説明しています。

1人のユーザーを除く全員に適用するルールの作成

1人のユーザー(たとえば特権ユーザー)を除く全員に適用するルールを作成することも可能です。このタイプのルールのルール定義は、次のようになります。

SYS_CONTEXT('USERENV','SESSION_USER') = 'SUPERADMIN_USER' OR additional_rule

現行ユーザーが特権ユーザーの場合、システムでは、additional_ruleは評価されず、ルールはTrueに評価されます。現行ユーザーが特権ユーザーでない場合、ルールの評価はadditional_ruleの評価によって決まります。

チュートリアル: セキュリティ違反の電子メール・アラートの作成

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: UTL_MAIL PL/SQLパッケージのインストールおよび構成

- 手順2: 電子メール・セキュリティ・アラートPL/SQLプロシージャの作成

- 手順3: ネットワーク・サービス用のアクセス制御リストの構成

- 手順4: 電子メール・セキュリティ・アラートを使用するためのルール・セットおよびコマンド・ルールの作成

- 手順5: 電子メール・セキュリティ・アラートのテスト

- 手順6: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

次のチュートリアルでは、ユーザーがメンテナンスの時間帯以外に表を変更しようとすると送信される電子メール・アラートを作成します。これを行うには、メンテナンスの時間帯を設定するルールを作成し、このルールをルール・セットに追加してから、ユーザーに表の変更を許可するコマンド・ルールを作成する必要があります。次に、ルール・セットをこのコマンド・ルールに関連付けます。これにより、ユーザーがメンテナンスの時間帯以外にALTER TABLE SQL文を使用しようとすると、電子メール・アラートが送信されます。

手順1: UTL_MAIL PL/SQLパッケージのインストールおよび構成

1. SYSDBA権限を使用してSYSとしてSQL*Plusにログインし、UTL_MAILパッケージをインストールします。

sqlplus sys as sysdba
Enter password: password

@$ORACLE_HOME/rdbms/admin/utlmail.sql
@$ORACLE_HOME/rdbms/admin/prvtmail.plb

UTL_MAILパッケージにより、電子メールの管理が可能になります。UTL_MAILの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。ただし、現在、UTL_MAIL PL/SQLパッケージではSSLサーバーをサポートしていないことに注意してください。

2. SMTP_OUT_SERVERパラメータの現行値を調べ、このチュートリアル完了時に元に戻せるように、この値をメモしておきます。
次に例を示します。

SHOW PARAMETER SMTP_OUT_SERVER

次のような出力が表示されます。

NAME                    TYPE              VALUE
----------------------- ----------------- ----------------------------------
SMTP_OUT_SERVER         string            some_value.example.com

3. 次のALTER SYSTEM文を発行します。

ALTER SYSTEM SET SMTP_OUT_SERVER="imap_mail_server.example.com";

imap_mail_server.example.comを、電子メール・ツールのアカウント設定にあるSMTPサーバーの名前に置き換えます。これらの設定を引用符で囲んでください。次に例を示します。

ALTER SYSTEM SET SMTP_OUT_SERVER="my_imap_mail_server.example.com"

4. SYSOPER権限を使用してSYSとして接続し、データベースを再起動します。

CONNECT SYS/AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

5. SMTP_OUT_SERVERパラメータの設定が正しいことを確認します。

CONNECT SYS AS SYSDBA
Enter password: password

SHOW PARAMETER SMTP_OUT_SERVER

次のような出力が表示されます。

NAME                    TYPE              VALUE
----------------------- ----------------- ----------------------------------
SMTP_OUT_SERVER         string            my_imap_mail_server.example.com

手順2: 電子メール・セキュリティ・アラートPL/SQLプロシージャの作成

1. SYSDBA権限を使用してSYSとして接続していることを確認し、DV_OWNERロールを付与されているユーザーに次の権限を付与します。
(DV_ADMINロールを付与されているユーザーを選択することもできますが、このチュートリアルでは、DV_OWNERロールを持つユーザーを選択します。)

次に例を示します。

CONNECT SYS AS SYSDBA
Enter password: password

GRANT CREATE PROCEDURE, DROP ANY PROCEDURE TO lbrown_dvowner;
GRANT EXECUTE ON UTL_TCP TO lbrown_dvowner;
GRANT EXECUTE ON UTL_SMTP TO lbrown_dvowner;
GRANT EXECUTE ON UTL_MAIL TO lbrown_dvowner;
GRANT EXECUTE ON DBMS_NETWORK_ACL_ADMIN TO lbrown_dvowner;

PL/SQLパッケージUTL_TCP、UTL_SMTP、UTL_MAILおよびDBMS_NETWORK_ACL_ADMINは、作成する電子メール・セキュリティ・アラートで使用されます。

2. DV_OWNERユーザーとしてSQL*Plusに接続します。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

3. 次のプロシージャを作成します。

CREATE OR REPLACE PROCEDURE email_alert AS
msg varchar2(20000) := 'Realm violation occurred for the ALTER TABLE Command Security Policy rule set. The time is: ';
BEGIN
msg := msg||to_char(SYSDATE, 'Day DD MON, YYYY HH24:MI:SS');
UTL_MAIL.SEND (
sender      => 'youremail@example.com',
recipients  => 'recipientemail@example.com',
subject     => 'Table modification attempted outside maintenance!',
message     => msg);
END email_alert;
/

youremail@example.comを自分の電子メール・アドレスに置き換え、recipientemail@example.comを通知を受け取るユーザーの電子メール・アドレスに置き換えます。

4. このプロシージャに対するEXECUTE権限をDVSYSに付与します。

GRANT EXECUTE ON email_alert TO DVSYS;

手順3: ネットワーク・サービス用のアクセス制御リストの構成

UTL_MAILなどのPL/SQLネットワーク・ユーティリティを使用するには、あらかじめ、外部ネットワーク・サービスに対してファイングレイン・アクセスを有効にするアクセス制御リスト(ACL)ファイルを構成する必要があります。このトピックの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

電子メール・アラートのアクセス制御リストを構成するには、次のようにします。

1. DV_OWNERユーザーとしてSQL*Plusにログインし、次のアクセス制御リストおよびその権限定義を作成します。

BEGIN
DBMS_NETWORK_ACL_ADMIN.CREATE_ACL (
acl          => 'mail_server_permissions.xml',
description  => 'Enables network permissions for the mail server',
principal    => 'LBROWN_DVOWNER',
is_grant     => TRUE,
privilege    => 'connect');
END;
/

プリンシパル設定のユーザー名は、大文字で正確に入力してください。このチュートリアルでは、Database Vault所有者アカウントの名前(LBROWN_DVOWNERなど)を入力します。

2. アクセス制御リストを電子メール・サーバーの送信SMTPネットワーク・ホストに割り当てます。

BEGIN
DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL (
acl         => 'mail_server_permissions.xml',
host        => 'SMTP_OUT_SERVER_setting',
lower_port  => port);
END;
/

この例では、次のようになります。

- SMTP_OUT_SERVER_setting: 「手順1: UTL_MAIL PL/SQLパッケージのインストールと構成」のSMTP_OUT_SERVERパラメータに設定したSMTP_OUT_SERVER設定を入力します。この設定は、電子メール・ツールで送信サーバーに指定されている設定と完全に一致させてください。

- port: 電子メール・ツールで送信サーバーに指定されているポート番号を入力します。通常、この設定は25です。lower_portとupper_portの両方の設定に対してこの値を入力します。(現在、UTL_MAILパッケージではSSLをサポートしていません。メール・サーバーがSSLサーバーの場合、そのメール・サーバーが別のポート番号を使用していても、ポート番号に25を入力します。)

3. 変更をデータベースにコミットします。

COMMIT;

4. これまでに作成した設定をテストします。

EXEC EMAIL_ALERT;
COMMIT;

SQL*Plusに「PL/SQL procedure successfully completed」というメッセージが表示されます。まもなく、電子メール・サーバーの速度に応じて、電子メール・アラートを受信します。

ORA-24247: network access denied by access control list (ACL)エラーに続いて ORA-06512: at stringline stringエラーが発生する場合は、アクセス制御リスト・ファイルの設定をチェックしてください。

手順4: 電子メール・セキュリティ・アラートを使用するためのルール・セットおよびコマンド・ルールの作成

1. DV_OWNERユーザーとして、次のルール・セットを作成します。

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    => 'ALTER TABLE Command Security Policy',
description      => 'This rule set allows ALTER TABLE only during the
maintenance period.',
enabled          => DBMS_MACUTL.G_YES,
eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ALL ,
audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,,
fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
fail_message     => '',
fail_code        => NULL,
handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_FAIL,
handler          => 'dbavowner.email_alert');
END;
/

2. 次のようなルールを作成します。
ここでは、テストする間持続するようにルールを設定します。たとえば、午後2時から午後3時までの時間帯にテストする場合、次のようにルールを作成します。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Restrict Access to Maintenance Period',
rule_expr  => 'TO_CHAR(SYSDATE,''HH24'') BETWEEN ''14'' AND ''15''');
END;
/

HH24、14および15には、二重引用符ではなく、必ず2つの一重引用符を使用してください。

コンピュータのシステム時間は、次のSQL文を発行してチェックできます。

SELECT TO_CHAR(SYSDATE,'HH24') FROM DUAL;

次のような出力が表示されます。

TO
--
14

後から、ルールの動作に問題がなければ、次のように、サイトで通常メンテナンス作業が実行される時間(たとえば、午後7時から午後10時までの間)にルールを更新できます。

BEGIN
DBMS_MACADM.UPDATE_RULE(
rule_name  => 'Restrict Access to Maintenance Period',
rule_expr  => 'TO_CHAR(SYSDATE,''HH24'') BETWEEN ''19'' AND ''22''');
END;
/

3. Restrict Access to Maintenance PeriodルールをALTER TABLE Command Security Policyルール・セットに追加します。

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'ALTER TABLE Command Security Policy',
rule_name     => 'Restrict Access to Maintenance Period');
END;
/

4. 次のコマンド・ルールを作成します。

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE(
command         => 'ALTER TABLE',
rule_set_name   => 'ALTER TABLE Command Security Policy',
object_owner    => 'SCOTT',
object_name     => '%',
enabled         => DBMS_MACUTL.G_YES);
END;
/

5. これらの更新をデータベースにコミットします。

COMMIT;

手順5: 電子メール・セキュリティ・アラートのテスト

1. ユーザーSCOTTとしてSQL*Plusに接続します。
次に例を示します。

CONNECT SCOTT
Enter password: password

SCOTTアカウントがロックされて無効になっている場合、DV_ACCTMGRロールを持つユーザーが、このアカウントのロックを解除し、新しいパスワードを次のように作成できます。

ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

2. ユーザーSCOTTとして、テスト表を作成します。

CREATE TABLE mytest (col1 number);

3. コンピュータのシステム時間を、ALTER TABLE Command Security Policyルール・セットが実行される時間(午後2時から3時の間など)に変更します。
UNIX: rootとしてログインし、dateコマンドを使用して時間を設定します。たとえば、今日の日付が2011年12月14日だとすると、次のように入力します。

su root
Password: password

date --set="14 DEC 2011 14:00:00"

Windows: 通常画面の右下隅にある時計アイコンをダブルクリックします。「日付と時刻のプロパティ」ウィンドウで、時刻を午後2時に設定し、「OK」をクリックします。

4. my_test表の変更を試みます。

ALTER TABLE mytest ADD (col2 number);

Table altered.

SCOTTは、この時間帯にmytest表を変更できます。

5. システム時間をRestrict Access to Maintenance Period時間外の時刻に再設定します。

6. SCOTTとしてログインし、再度my_test表の変更を試みます。

CONNECT SCOTT
Enter password: password

ALTER TABLE mytest ADD (col3 number);

次のような出力結果が表示されます。

ORA-47400: Command Rule violation for ALTER TABLE on SCOTT.MYTEST

SCOTTはmytest表を変更できません。まもなく、「Table modification attempted outside maintenance!」という件名で、次のようなメッセージの電子メールを受信します。

Realm violation occurred for the ALTER TABLE Command Security Policy rule set. The time is: Wednesday 06 MAY, 2009 14:24:25

7. システム時間を正しい時刻に再設定します。

手順6: このチュートリアルのコンポーネントの削除

1. DV_OWNERユーザーとしてSQL*Plusに接続し、次に示した順序でOracle Database Vaultルール・コンポーネントを削除します。

EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('ALTER TABLE Command Security Policy', 'Restrict Access to Maintenance Period');
EXEC DBMS_MACADM.DELETE_RULE('Restrict Access to Maintenance Period');
EXEC DBMS_MACADM.DELETE_COMMAND_RULE('ALTER TABLE', 'SCOTT', '%');
EXEC DBMS_MACADM.DELETE_RULE_SET('ALTER TABLE Command Security Policy');

2. email_alert PL/SQLプロシージャを削除します。

DROP PROCEDURE email_alert;

3. アクセス制御リストを削除します。

EXEC DBMS_NETWORK_ACL_ADMIN.DROP_ACL ('email_alert_permissions.xml');

4. ユーザーSCOTTとして接続し、mytest表を削除します。

CONNECT SCOTT
Enter password: password

DROP TABLE mytest;

5. SYSDBA権限を使用してSYSとして接続し、DV_OWNERユーザーから、PL/SQLパッケージUTL_TCP、UTL_SMTPおよびUTL_MAILに対するEXECUTE権限を取り消します。
次に例を示します。

REVOKE EXECUTE ON UTL_TCP FROM lbrown_dvowner;
REVOKE EXECUTE ON UTL_SMTP FROM lbrown_dvowner;
REVOKE EXECUTE ON UTL_MAIL FROM lbrown_dvowner;
REVOKE EXECUTE ON DBMS_NETWORK_ACL_ADMIN from lbrown_dvowner;

6. SMTP_OUT_SERVERパラメータを元の値に設定します。
次に例を示します。

ALTER SYSTEM SET SMTP_OUT_SERVER="some_value.example.com";

7. SYSOPER権限を使用してSYSとして接続し、データベースを再起動します。

CONNECT SYS/AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

チュートリアル: 二人制整合性(デュアル・キー・セキュリティ)の構成

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: ユーザーpatch_bossがログインしているかどうかをチェックするファンクションの作成

- 手順3: ユーザーのアクセスを制御するためのルール、ルール・セットおよびコマンド・ルールの作成

- 手順4: ユーザーのアクセスのテスト

- 手順5: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

このチュートリアルでは、二人制整合性(TPI)(デュアル・キー・セキュリティ、デュアル・キー接続や二人制ルール・セキュリティとも呼ばれる)を定義するルール・セットを構成します。このタイプのセキュリティでは、アクションの認可に、1人ではなく2人のユーザーが必要です。あるユーザーがタスクを開始するには、別のユーザーがそのユーザーに対するセーフティ・チェックを行います。二人制整合性では、危険を伴う可能性のあるアクションに対して、追加のセキュリティの層が用意されます。このタイプのシナリオは、データベース・パッチの更新などのタスクに使用されることが多く、このチュートリアルでもこのタスクを使用します。ユーザーpatch_userがデータベース・パッチのアップグレードを実行するにはログインが必要ですが、このユーザーがログインするにはマネージャpatch_bossがログインしている必要があります。patch_userがログイン可能かどうかを制御するファンクション、ルール、ルール・セットおよびコマンド・ルールを作成します。

手順1: このチュートリアル用のユーザーの作成

このチュートリアルでは、次の2人のユーザーを作成する必要があります。

- patch_bossはスーパーバイザ・ロールとして機能します。patch_bossがログインしていない場合、patch_userユーザーはログインできません。

- patch_userは、パッチの更新の実行が割り当てられているユーザーです。ただし、このチュートリアルでは、ユーザーはpatch_user実際にはパッチの更新を実行しません。ログインを試行するのみです。

ユーザーを作成するには、次のようにします。

1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusに接続します。
次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

2. 次のユーザーを作成します。

CREATE USER patch_boss IDENTIFIED BY password;
CREATE USER patch_user IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

3. SYSDBA権限を持つユーザーSYSとして接続し、patch_bossユーザーおよびpatch_userユーザーに権限を付与します。

CONNECT SYS AS SYSDBA
Enter password: password

GRANT CREATE SESSION TO patch_boss, patch_user;

4. 次の権限をDV_OWNERユーザーまたはDV_ADMINユーザーに付与します。
次に例を示します。

GRANT CREATE PROCEDURE TO lbrown_dvowner;
GRANT SELECT ON V_$SESSION TO lbrown_dvowner;

V_$SESSION表はV$SESSION動的ビューの基となる表です。

実際のシナリオでは、DV_OWNERユーザーとしてもログインし、DV_PATCH_ADMINロールをpatch_userユーザーに付与します(patch_bossには付与しません)。しかし、このチュートリアルでは、実際にはデータベース・パッチの更新を実行しないため、このロールをpatch_userユーザーに付与する必要はありません。

手順2: ユーザーpatch_bossがログインしているかどうかをチェックするファンクションの作成

作成するファンクションcheck_boss_logged_inは、ユーザーpatch_userがSQL*Plusへのログインを試行したときに、V$SESSIONデータ・ディクショナリ・ビューに問い合せて、ユーザーpatch_bossがログインしているかどうかをチェックします。

check_boss_logged_inファンクションを作成するには、次のようにします。

1. DV_OWNERまたはDV_ADMINユーザーとして、次のようなcheck_boss_logged_inファンクションを作成します。

CREATE OR REPLACE FUNCTION check_boss_logged_in
return varchar2
authid definer as

v_session_number number := 0;
v_allow varchar2(10)    := 'TRUE';
v_deny varchar2(10)     := 'FALSE';

BEGIN
SELECT COUNT(*) INTO v_session_number
FROM SYS.V_$SESSION
WHERE USERNAME = 'PATCH_BOSS'; -- Enter the user name in capital letters.

IF v_session_number > 0
THEN RETURN v_allow;
ELSE
RETURN v_deny;
END IF;
END check_boss_logged_in;
/

2. check_boss_logged_inファンクションのEXECUTE権限をDVSYSスキーマに付与します。

GRANT EXECUTE ON check_boss_logged_in to DVSYS;

手順3: ユーザーのアクセスを制御するためのルール、ルール・セットおよびコマンド・ルールの作成

次に、2つのルール、それらを追加するルール・セットおよびコマンド・ルールを作成します。このルール・セットは、ユーザーpatch_userがデータベースにログインしようとしたときに、check_boss_logged_inファンクションをトリガーします。

ルールとルール・セットを追加するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして接続します。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

2. patch_userユーザーがデータベースにログインしていることをチェックするCheck if Boss Is Logged Inルールを作成します。定義内のlbrown_dvownerを、check_boss_logged_inファンクションを作成したDVOWNERユーザーまたはDV_ADMINユーザーに置き換えます。
check_boss_logged_inファンクションがTRUEを返した場合(つまりpatch_bossは別のセッションにログインしている)、patch_userはログインできます。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check if Boss Is Logged In',
rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''PATCH_USER'' and lbrown_dvowner.check_boss_logged_in =  ''TRUE'' ');
END;
/

ユーザー名PATCH_USERを大文字で入力します(SESSION_USERパラメータはユーザー名を大文字で保存します)。

3. ログインしているユーザー(patch_user)がユーザーpatch_bossでないことを確認するAllow Connect for Other Database Usersルールを作成します。他のすべての有効なユーザーのログインの許可も行います。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Allow Connect for Other Database Users',
rule_expr => 'SYS_CONTEXT(''USERENV'',''SESSION_USER'') != ''PATCH_USER''');
END;
/
COMMIT;

4. 上司とパッチ担当者のデュアル接続のルール・セットを作成して、このルール・セットに2つのルールを追加します。

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name => 'Dual Connect for Boss and Patch',
description => 'Checks if both boss and patch users are logged in.',
enabled           => DBMS_MACUTL.G_YES,
eval_options      => DBMS_MACUTL.G_RULESET_EVAL_ANY,
audit_options     => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options      => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
fail_message      =>'',
fail_code         => NULL,
handler_options   => DBMS_MACUTL.G_RULESET_HANDLER_OFF,
handler           => ''
);
END;
/

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name     => 'Dual Connect for Boss and Patch',
rule_name         => 'Check if Boss Is Logged In'
);
END;
/

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name     => 'Dual Connect for Boss and Patch',
rule_name         => 'Allow Connect for Other Database Users'
);
END;
/

5. patch_bossがログインしている場合にのみユーザーpatch_userにデータベースへの接続を許可する、次のCONNECTコマンド・ルールを作成します。

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE(
command             => 'CONNECT',
rule_set_name      => 'Dual Connect for Boss and Patch',
object_owner       => '%',
object_name        => '%',
enabled            => DBMS_MACUTL.G_YES);
END;
/
COMMIT;

手順4: ユーザーのアクセスのテスト

1. SQL*Plusを終了します。

EXIT

2. 次のように2つ目のシェルを作成します。

xterm &

3. 最初のシェルで、ユーザーpatch_userとしてログインします。

sqlplus patch_user
Enter password: password

ERROR:
ORA-47400: Command Rule violation for CONNECT on LOGON

Enter user-name:

patch_bossがログインするまで、ユーザーpatch_userはログインできません。(まだEnter user-nameプロンプトを試さないでください。)

4. 2つ目のシェルで、ユーザーpatch_bossとしてログインします。

sqlplus patch_boss
Enter password: password
Connected.

ユーザーpatch_bossはログインできます。

5. 最初のシェルに戻って、ユーザーpatch_userとしてログインを再試行します。

Enter user_name: patch_user
Enter password: password

ユーザーpatch_userは有効なユーザーとみなされ、ログインできます。

手順5: このチュートリアルのコンポーネントの削除

1. ユーザーpatch_bossのセッションで、SQL*Plusを終了してシェルを閉じます。

EXIT

2. 最初のシェルで、ユーザーDV_ACCTMGRを接続し、作成したユーザーを削除します。

CONNECT amalcolm_dvacctmgr
Enter password: password

DROP USER patch_boss;
DROP USER patch_user;

3. SYSDBA権限を持つユーザーSYSとして接続し、DV_OWNERユーザーまたはDV_ADMINユーザーに付与した権限を取り消します。

CONNECT SYS AS SYSDBA
Enter password: password

REVOKE CREATE PROCEDURE FROM lbrown_dvowner;
REVOKE SELECT ON V_$SESSION FROM lbrown_dvowner;

4. DV_OWNERまたはDV_ADMINユーザーとして接続し、ルール、ルール・セットおよびコマンド・ルールを示した順に削除します。

CONNECT lbrown_dvowner
Enter password: password

DROP FUNCTION check_boss_logged_in;
EXEC DBMS_MACADM.DELETE_COMMAND_RULE('CONNECT', '%', '%');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Dual Connect for Boss and Patch', 'Check if Boss Is Logged In');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Dual Connect for Boss and Patch', 'Allow Connect for Other Database Users');
EXEC DBMS_MACADM.DELETE_RULE('Check if Boss Is Logged In');
EXEC DBMS_MACADM.DELETE_RULE('Allow Connect for Other Database Users');
EXEC DBMS_MACADM.DELETE_RULE_SET('Dual Connect for Boss and Patch');
COMMIT;

ルール・セット設計のガイドライン

次に示すルール・セット設計のガイドラインに従ってください。

- ルールは、複数のルール・セット間で共有できます。これにより、再利用可能なルール式のライブラリを作成できます。個別で式の目的が1つであるルールを設計することをお薦めします。

- 評価が静的な、すなわちユーザー・セッション中に1回のみ評価されるルール・セットを設計できます。関連付けられているコマンド・ルールがルール・セットにアクセスするたびに評価することもできます。ルール・セットが1回のみ評価される場合、コマンド・ルールがルール・セットにアクセスするたびに、評価された値がユーザー・セッションで再利用されます。静的な評価の使用は、ルール・セットに複数回アクセスする必要があるが、ルール・セットが依存する条件はセッション中に変化しない場合に便利です。たとえば、ルール・セットに関連付けられているSELECTコマンド・ルールは、同じSELECT文が複数回実行される際、評価された値が再利用可能であれば、SELECTが実行されるたびにルール・セットを評価するかわりに、評価された値を再利用できます。
ルール・セットの静的な評価を制御するには、DBMS_MACADM PL/SQLパッケージのCREATE_RULE_SETまたはUPDATE_RULE_SETプロシージャのis_staticパラメータを設定します。詳細は、「DBMS_MACADMのルール・セット・プロシージャ」を参照してください。

- 再利用性とルール式で使用される値の信頼性を実現するために、ルール式にはOracle Database Vaultファクタを使用します。ファクタにはルール式で使用可能なコンテキスト情報が用意されています。

- カスタム・イベント・ハンドラを使用して、Oracle Database Vaultセキュリティ・ポリシーを拡張し、エラー処理またはアラート通知のための外部システムを統合できます。このような統合を行うには、UTL_TCP、UTL_HTTP、UTL_MAIL、UTL_SMTPまたはDBMS_AQなどのOracleユーティリティ・パッケージを使用すると便利です。

- 機密データを保護するレルムやコマンド・ルールにルール・セットを適用する前に、テスト・データベース、または機密データ以外のデータ用のテスト・レルムやコマンド・ルール上で、様々なアカウントやシナリオに関してルール・セットを十分にテストします。次のSQL文を使用して、ルール式を直接テストできます。

SQL> SELECT SYSDATE from DUAL where rule expression

- 単一のルールにルール式をネストできます。これにより、ルールのサブセットに論理的AND、およびその他のルールに論理的ORが必要になる複雑な状況を作成できます。この一例として、「チュートリアル: セキュリティ違反の電子メール・アラートの作成」に記載されているIs Corporate Network During Maintenanceルール・セットの定義を参照してください。

- 起動者権限プロシージャとルール式を組み合せて使用できません。定義者権限プロシージャのみルール式と組み合せて使用できます。

ルール・セットのパフォーマンスへの影響

一般的に、ルールが多く複雑になるほど、これらのルール・セットで制御されている特定の操作を実行する際のパフォーマンス・オーバーヘッドが増加します。たとえば、SELECT文を制御するルール・セットに大量のルールが含まれる場合は、パフォーマンスが大幅に低下する可能性があります。

多数のルールが必要なルール・セットがある場合、すべてのルールを単一のPL/SQLスタンドアロンまたはパッケージ・ファンクションに定義されているロジックに移動すると、パフォーマンスが向上します。ただし、ルールが他のルール・セットに使用されている場合、システムのパフォーマンスにはほとんど影響ありません。

可能であれば、静的な評価を使用するようにルール・セットを設定することを検討してください(関連付けられているコマンド・ルールの使用と互換性があると想定して)。詳細は、「ルール・セット設計のガイドライン」を参照してください。

Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、StatspackおよびTKPROFなどのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。StatspackおよびTKPROFユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。

関連するレポートおよびデータ・ディクショナリ・ビュー

表5-1に、ルール・セットおよびそのルールの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表5-1 ルール・セットに関連するレポート

レポート

説明

「「ルール・セット構成の問題」レポート」

ルールが定義されていない、または有効でないルール・セットが表示されます。

「「セキュア・アプリケーション構成の問題」レポート」

不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。

「「コマンド・ルール構成の問題」レポート」

不完全または無効なルール・セットが表示されます。

表5-2に、既存のルールおよびルール・セットに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表5-2 ルールおよびルール・セットに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー

説明

「DVSYS.DBA_DV_RULEビュー」

定義済のルールが表示されます。

「DVSYS.DBA_DV_RULE_SETビュー」

作成済のルール・セットが表示されます。

「DVSYS.DBA_DV_RULE_SET_RULEビュー」

既存のルール・セットに関連付けられているルールが表示されます。

6 コマンド・ルールの構成

この章の内容は次のとおりです。

- コマンド・ルールの概要

- デフォルトのコマンド・ルール

- コマンド・ルールで保護できるSQL文

- コマンド・ルールの作成および編集

- コマンド・ルールの削除

- コマンド・ルールの動作

- チュートリアル: ユーザーによる表作成を制御するためのコマンド・ルールの使用方法

- コマンド・ルール設計のガイドライン

- コマンド・ルールのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

コマンド・ルールの概要

コマンド・ルールは、1つ以上のデータベース・オブジェクトに影響を与えるSELECT、ALTER SYSTEM、データベース定義言語(DDL)およびデータ操作言語(DML)文を保護するために作成するルールです。コマンド・ルールをカスタマイズして実行するには、1つ以上のルールの集合であるルール・セットにコマンド・ルールを関連付けます。コマンド・ルールは実行時に実施されます。コマンド・ルールは、オブジェクトが存在するレルムに関係なく、コマンド・ルールによって保護されるSQL文の使用を試みる全員に影響します。レルム固有のオブジェクトを保護する場合は、「レルム認可の定義」を参照してください。

コマンド・ルールには、コマンド・ルールのコマンドへの関連付けに加えて、次の属性があります。

- コマンド・ルールで保護されるSQL文

- コマンド・ルールが影響するオブジェクトの所有者

- コマンド・ルールが影響するデータベース・オブジェクト

- コマンド・ルールが有効かどうか

- 関連付けられているルール・セット

SQL文および操作の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。また、「コマンド・ルールで保護できるSQL文」も参照してください。

コマンド・ルールは、次のように分類できます。

- 範囲がシステム全体に及ぶコマンド・ルール。このタイプでは、データベース・インスタンスごとに1つのコマンド・ルールのみを作成できます。例として、ALTER SYSTEMおよびCONNECT文のコマンド・ルールがあげられます。

- スキーマ固有のコマンド・ルール。DROP TABLE文のコマンド・ルールの作成は、この一例です。

- オブジェクト固有のコマンド・ルール。コマンド・ルール定義に含まれる特定の表を使用してDROP TABLE文を作成することは、この一例です。

コマンド・ルールの影響を受ける文をユーザーが実行すると、Oracle Database Vaultによって最初にレルム認可がチェックされます。レルム違反が検出されず、関連付けられているコマンド・ルールが有効な場合は、関連付けられているルール・セットがDatabase Vaultによって評価されます。すべてのルール・セットの評価がTRUEの場合、その文は認可されてさらに処理されます。評価がFALSEのルール・セットがある場合、その文は認可されずコマンド・ルール違反が作成されます。ルール・セットの詳細は、第5章「ルール・セットの構成」で説明しています。

通常の手順であるユーザー認証プロセス、ファクタの初期化およびOracle Label Securityの統合が完了した後に、セッションを許可または拒否するCONNECTイベントにファクタを使用するコマンド・ルールを定義できます。

たとえば、BIZAPPスキーマ内で、CREATE TABLE、DROP TABLEおよびALTER TABLEなどのDDL文が営業時間後に認可されるのは許可するが、営業時間中には許可しないというコマンド・ルールを構成できます。

Oracle Database Vaultに作成するコマンド・ルール上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してコマンド・ルールを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してコマンド・ルールを構成するには、次の章を参照してください。

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」

デフォルトのコマンド・ルール

表6-1に、Oracle Database Vaultが提供するデフォルトのコマンド・ルールを示します。

表6-1 デフォルトのコマンド・ルール

SQL文

オブジェクト名

ルール・セット名

ALTER PROFILE

-

アカウント/プロファイルを保守可能

ALTER SYSTEM

-

システム・パラメータのファイングレイン・コントロールを許可

ALTER USER

-

自分のアカウントを保守可能

CREATE PROFILE

-

アカウント/プロファイルを保守可能

CREATE USER

-

アカウント/プロファイルを保守可能

DROP PROFILE

-

アカウント/プロファイルを保守可能

DROP USER

-

アカウント/プロファイルを保守可能

次に示す一連のコマンド・ルールは、ユーザー管理の職務分離の実現をサポートします。

- ALTER PROFILE

- ALTER USER

- CREATE PROFILE

- CREATE USER

- DROP PROFILE

- DROP USER

ユーザーにこれらのコマンドの使用権限を付与するには、ルール・セットによってチェックされるロールをユーザーに付与します。たとえば、CREATE USERコマンド・ルールは、CREATE USER文を実行しようとするユーザーにDV_ACCTMGRロールが付与されていることを確認します。

コマンド・ルールで保護できるSQL文

コマンド・ルールを使用して、次のSQL文を保護できます。

ALTER CLUSTER

CREATE CONTEXT

DROP DIRECTORY

ALTER DIMENSION

CREATE DATABASE LINK

DROP FUNCTION

ALTER FUNCTION

CREATE DIMENSION

DROP INDEX

ALTER INDEX

CREATE DIRECTORY

DROP INDEXTYPE

ALTER INDEXTYPE

CREATE FUNCTION

DROP JAVA

ALTER JAVA

CREATE INDEX

DROP LIBRARY

ALTER OPERATOR

CREATE INDEXTYPE

DROP OPERATOR

ALTER OUTLINE

CREATE JAVA

DROP OUTLINE

ALTER PACKAGE

CREATE LIBRARY

DROP PACKAGE

ALTER PACKAGE BODY

CREATE OPERATOR

DROP PACKAGE BODY

ALTER PROCEDURE

CREATE OUTLINE

DROP PROCEDURE

ALTER PROFILE

CREATE PACKAGE

DROP PROFILE

ALTER RESOURCE COST

CREATE PACKAGE BODY

DROP ROLE

ALTER ROLE

CREATE PROCEDURE

DROP ROLLBACK SEGMENT

ALTER ROLLBACK SEGMENT

CREATE PROFILE

DROP SEQUENCE

ALTER SEQUENCE

CREATE ROLE

DROP SNAPSHOT

ALTER SNAPSHOT

CREATE ROLLBACK SEGMENT

DROP SNAPSHOT LOG

ALTER SNAPSHOT LOG

CREATE SCHEMA

DROP TABLE

ALTER SYNONYM

CREATE SEQUENCE

DROP TABLESPACE

ALTER SYSTEM

CREATE SNAPSHOT

DROP TRIGGER

ALTER TABLE

CREATE SNAPSHOT LOG

DROP TYPE

ALTER TABLESPACE

CREATE SYNONYM

DROP TYPE BODY

ALTER TRIGGER

CREATE TABLE

DROP USER

ALTER TYPE

CREATE TABLESPACE

DROP VIEW

ALTER TYPE BODY

CREATE TRIGGER

EXECUTE

ALTER USER

CREATE TYPE

GRANT

ALTER VIEW

CREATE TYPE BODY

INSERT

ANALYZE CLUSTER

CREATE USER

NOAUDIT

ANALYZE INDEX

CREATE VIEW

RENAME

ANALYZE TABLE

DELETE

REVOKE

ASSOCIATE STATISTICS

DISASSOCIATE STATISTICS

SELECT

AUDIT

DROP CLUSTER

TRUNCATE CLUSTER

COMMENT

DROP CONTEXT

TRUNCATE TABLE

CONNECT

DROP DATABASE LINK

UPDATE

CREATE CLUSTER

DROP DIMENSION

コマンド・ルールの作成および編集

次の手順に従います。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページの「Database Vault機能管理」で、「コマンド・ルール」をクリックします。

3. 「コマンド・ルール」ページで次のようにします。

- 新しいコマンド・ルールを作成するには、「作成」をクリックします。

- 既存のコマンド・ルールを編集するには、リストからコマンド・ルールを選択して「編集」をクリックします。

4. 「コマンド・ルールの作成」(または「コマンド・ルールの編集」)ページで、次の設定を入力して「OK」をクリックします。

- 一般

- 適用性

- ルール・セット

一般

次の設定を入力します。

- コマンド: コマンド・ルールを作成するSQL文または操作を選択します。この属性は必須です。

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にコマンド・ルールを有効または無効にします。デフォルトは「有効」です。この属性は必須です。

適用性

次の設定を入力します。

- オブジェクト所有者: リストから、コマンド・ルールが影響するオブジェクトの所有者を選択します。ワイルドカード文字%を使用して、すべての所有者を選択できます。(ただし、ワイルドカード文字をテキストと一緒に使用することはできません。たとえば、EM%を使用して、名前がEMで始まるすべての所有者を選択することはできません。)この属性は、特定のスキーマ内のオブジェクトに提供するすべてのSQL文で必須です。サポートされているSQL文のリストは、「コマンド・ルールで保護できるSQL文」を参照してください。
SELECT、INSERT、UPDATE、DELETEおよびEXECUTE文は、すべての選択(%)、またはSYSおよびDVSYSスキーマには使用できないことに注意してください。

- オブジェクト名: コマンド・ルールが影響するデータベース・オブジェクトの名前を入力するか、%を指定してすべてのデータベース・オブジェクトを選択します。ただし、ワイルドカード文字をテキストと一緒に使用することはできません(たとえば、EMP_%と入力して、文字EMP_で始まるすべての表を指定することはできません)。「オブジェクト所有者」リストからオブジェクト所有者を選択した場合、この属性は必須です。
コマンド・ルールが影響するオブジェクト上でOracle Database Vaultレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

ルール・セット

リストから、コマンド・ルールに関連付けるルール・セットを選択します。この属性は必須です。

ルール・セットの評価がTrueの場合、そのSQL文は成功します。評価がfalseの場合、その文は失敗し、Oracle Database Vaultによってコマンド・ルール違反が生成されます。(第18章で説明されている「コマンド・ルール構成の問題」レポートを使用して、ルール違反を追跡できます。)ルール・セットに関連付けられている監査およびカスタム・イベント処理は、コマンド・ルール処理の一部として発生します。

ルール・セットの詳細は、第5章「ルール・セットの構成」を参照してください。

関連項目:
「Oracle Database Vaultポリシーの他のデータベースへの伝播」

コマンド・ルールの削除

コマンド・ルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのコマンド・ルールへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

コマンド・ルールの削除手順:

1. Oracle Database Vaultの「管理」ページで、「コマンド・ルール」を選択します。

2. 「コマンド・ルール」ページで、削除するコマンド・ルールを選択します。

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

4. 「確認」ページで「はい」をクリックします。

コマンド・ルールの動作

「レルムの動作」では、データベース・アカウントによりレルム内のオブジェクトに影響するSELECT、DDLまたはDML文が発行された場合の動作を説明しています。

SELECT、DDLまたはDML文が発行されると、次のアクションが実行されます。

1. Oracle Database Vaultが、適用する必要のあるすべてのコマンド・ルールを問い合せます。
SELECT、DDLおよびDML文では、オブジェクト所有者およびオブジェクト名でワイルドカード表記を使用できるため、複数のコマンド・ルールが適用される場合があります。

ルール・セットは、コマンド・ルールおよびレルム認可の両方に関連付けることができます。Oracle Database Vaultにより、まずレルム認可ルール・セットが評価され、評価されるコマンド・タイプに適用するルール・セットが次に評価されます。

2. 適用する各コマンド・ルールに関して、Oracle Database Vaultはそれに関連付けられているルール・セットを評価します。

3. 適用可能なコマンド・ルールに関連付けられているルール・セットが1つでもFalseまたはエラーで返されると、Oracle Database Vaultによりそのコマンドの実行が阻止されます。それ以外の場合、コマンドは認可されてさらに処理されます。監査およびイベント・ハンドラに関するルール・セットの構成により、発生する監査またはカスタム処理が決定されます。
コマンド・ルールはオブジェクト権限より優先されます。コマンドまたはコマンドのルール・セットを無効(あるいはこれらに「無効」を設定)にできます。コマンド・ルールを無効にした場合、関連付けられているルール・セットに関係なく、コマンド・ルールは実行できません。つまり、コマンド・ルール自体が無効になります。ただし、コマンド・ルールのルール・セットを無効にした場合、ルール・セットはチェックされません。この場合、コマンド・ルールは無条件で実行を許可されます。コマンド・ルールが「無効」に設定されていると、表に対するSELECT権限を持っていても、そのユーザーは表の問合せを実行できません。(コマンド・ルール自体ではなく、ルール・セットのみが無効になっている場合。)

チュートリアル: ユーザーによる表作成を制御するためのコマンド・ルールの使用方法

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: ユーザーSCOTTとしての接続と表の作成

- 手順2: DVOWNERまたはDV_ADMINロールを使用した接続とコマンド・ルールの作成

- 手順3: コマンド・ルールのテスト

- 手順4: このチュートリアルのコンポーネントの削除

関連項目:
違反発生時に電子メール・アラートを送信するために、どのようにコマンド・ルールとルール・セットが連携して機能するかを示す別の例は、「チュートリアル: セキュリティ違反の電子メール・アラートの作成」を参照してください。

このチュートリアルの概要

このチュートリアルでは、ユーザーSCOTTの表作成権限を無効にし、その後有効にする簡単なコマンド・ルールを作成します。

手順1: ユーザーSCOTTとしての接続と表の作成

1. ユーザーSCOTTとしてSQL*Plusにログインします。

sqlplus scott
Enter password: password

SCOTTアカウントがロックされて無効になっている場合、Database Vaultアカウント・マネージャとしてログインし、SCOTTのロックを解除し、新しいパスワードを作成します。次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

CONNECT SCOTT
Enter password: password

2. ユーザーSCOTTとして、表を作成します。

CREATE TABLE t1 (num NUMBER);

3. 表を削除します。

DROP TABLE t1;

この段階で、ユーザーSCOTTは、表の作成および削除を行うことができます。SQL*Plusを終了せずに、SCOTTとして接続したままにします。後でSCOTTが別の表を作成しようとするときに使用します。

手順2: DVOWNERまたはDV_ADMINロールを使用した接続とコマンド・ルールの作成

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. Oracle Database Vault Administratorの「管理」ページで、「コマンド・ルール」をクリックします。
「コマンド・ルール」ページが表示されます。

3. 「作成」をクリックします。
「コマンド・ルールの作成」ページが表示されます。

4. 次の設定を入力します。

- 「コマンド」リスト: 「CREATE TABLE」を選択します。

- ステータス: 「有効」に設定して、コマンド・ルールをアクティブにします。

- オブジェクト所有者: 「SCOTT」を選択します。

- オブジェクト名: %に設定して、SCOTTスキーマ内のすべてのオブジェクトに適用します。

- ルール・セット: 「無効」を選択して、ユーザーSCOTTが表を作成できないようにします。

5. 「OK」をクリックします。
Database Vault Administratorを終了しないでください。

コマンド・ルールは即時有効になります。ユーザーSCOTTは、CREATE TABLEコマンド・ルールを作成する前の、先ほどまでいたユーザー・セッションにまだいるとしても、ただちに表を作成できなくなります。

手順3: コマンド・ルールのテスト

1. SQL*Plusで、ユーザーSCOTTとしてログインしていることを確認します。

CONNECT SCOTT
Enter password: password

2. 表を作成してみます。

CREATE TABLE t1 (num NUMBER);

次のような出力結果が表示されます。

ORA-47400: Command Rule violation for create table on SCOTT.T1

この例からわかるように、SCOTTは、自身のスキーマ内でも、表を作成できなくなります。

3. Oracle Database Vault Administratorで、次の作業を実行します。

1. 「コマンド・ルール」ページで、「CREATE TABLE」コマンド・ルールを選択して、「編集」をクリックします。

2. 「コマンド・ルールの編集」ページで、「ルール・セット」リストから「有効」を選択します。

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

4. SQL*Plusで、ユーザーSCOTTとして、表の作成を再試行します。

CREATE TABLE t1 (num NUMBER);

Table created.

CREATE TABLEコマンド・ルールが「有効」に設定されたので、ユーザーSCOTTは、再び表の作成が許可されるようになりました。(SQL*Plusを終了しないでください。)

手順4: このチュートリアルのコンポーネントの削除

1. Oracle Database Vault Administratorで、CREATE TABLEコマンド・ルールを次のように削除します。

- 「コマンド・ルール」ページに戻ります。

- 「CREATE TABLE」コマンド・ルールを選択して、「削除」をクリックします。

- 「確認」ページで「はい」をクリックします。

2. ユーザーSCOTTとしてSQL*Plusにログインし、t1表を削除します。

DROP TABLE t1;

3. SCOTTアカウントが使用可能である必要がなくなった場合、Database Vaultアカウント・マネージャとして接続し、次のALTER USER文を入力します。

CONNECT amalcolm_dvacctmgr
Enter password: password

ALTER USER SCOTT ACCOUNT LOCK PASSWORD EXPIRE;

コマンド・ルール設計のガイドライン

次に示すコマンド・ルール設計のガイドラインに従ってください。

- 維持が簡単であるため、ファイングレイン・コマンド・ルールを作成します。
たとえば、特定のスキーマ・オブジェクトでSELECT文が発生しないようにする場合は、スキーマ・レベルでSELECT文を阻止する一般的なコマンド・ルールを作成するのではなく、特定のスキーマ・オブジェクトでSELECT文を阻止する複数のコマンド・ルールを設計します。

- CONNECTイベントにルールを作成する場合、必要なユーザー接続を間違えてロックアウトしないロジックを慎重に指定してください。アカウントが誤ってロックアウトされた場合、DV_ADMINまたはDV_OWNERロールを付与されたユーザーに、ロックアウト問題の原因となっているルールにログインして修正してもらうようにしてください。CONNECTコマンドは、DV_OWNERロールとDV_ADMINロールを持つユーザーには適用されません。これにより、不適切に構成されたCONNECTコマンド・ルールで完全なロックアウトが生じることはありません。
アカウントがロックアウトされている場合は、Oracle Database Vaultを無効にして、ロックアウトの問題の原因となっているルールを修正し、再びOracle Database Vaultを有効にします。Oracle Database Vaultが無効な場合でも、Database Vault AdministratorとDatabase Vault PL/SQLパッケージはまだ使用できます。Database Vaultの無効化および再有効化の手順は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

- 管理タスクに対して有効なコマンド・ルールを一時的に緩和することが必要な場合があります。コマンド・ルールを無効にするのではなく、セキュリティ管理者(DV_ADMINまたはDV_OWNERロールが付与されているアカウント)をログインさせて、ルール・セットを「有効」にし、有効という名前のデフォルト・ルール・セットの「成功時または失敗時に監査」をオンにします。タスクが完了したら、コマンド・ルールを元のルール・セットに戻します。

- コマンド・ルールの設計時には、処理が不用意に無効にされる可能性があるため、バックアップなどの自動プロセスを考慮するようにしてください。使用中のプログラム、使用中のアカウントまたはクライアント・プログラムが稼働中のコンピュータやネットワークなど、一連のOracle Database VaultファクタがTrueであることが明白な場合には、コマンドを許可するルールを作成することでこれらのタスクを把握できます。

コマンド・ルールのパフォーマンスへの影響

コマンド・ルールのパフォーマンスは、そのコマンド・ルールに関連付けられているルール・セット内のルールの複雑さに依存します。たとえば、実行に5秒かかるPL/SQLファンクションを起動するルール・セットがあるとします。この場合、このルール・セットを使用するコマンド・ルールでは、実行するコマンド文へのアクセス権の付与に5秒かかります。

Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、StatspackおよびTKPROFなどのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。StatspackおよびTKPROFユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。

関連するレポートおよびデータ・ディクショナリ・ビュー

表6-2に、コマンド・ルールの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表6-2 コマンド・ルールに関連するレポート

レポート

説明

「「コマンド・ルールの監査」レポート」

コマンド・ルールを処理する操作により生成された監査レコードが表示されます。

「「コマンド・ルール構成の問題」レポート」

コマンド・ルールに存在するその他の構成問題に加え、ルール違反が追跡されます。

「オブジェクト権限レポート」

コマンド・ルールが影響するオブジェクト権限が表示されます。

「機密オブジェクト・レポート」

コマンド・ルールが影響するオブジェクトが表示されます。

「「ルール・セット構成の問題」レポート」

ルールが定義されていないか、有効ではなく、それらを使用するコマンド・ルールに影響を与える可能性があるルール・セットが表示されます。

DVSYS.DBA_DV_COMMAND_RULEデータ・ディクショナリ・ビューを使用すると、コマンド・ルールで保護されているSQL文を検出できます。詳細は、「DVSYS.DBA_DV_COMMAND_RULEビュー」を参照してください。

7 ファクタの構成

この章の内容は次のとおりです。

- ファクタの概要

- デフォルトのファクタ

- ファクタの作成

- ファクタの編集

- ファクタへのアイデンティティの追加

- ファクタの削除

- ファクタの動作

- チュートリアル: データベースへの非定型ツール・アクセスの阻止

- チュートリアル: セッション・データに基づくユーザー・アクティビティの制限

- ファクタ設計のガイドライン

- ファクタのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

ファクタの概要

ファクタは、ユーザーの場所、データベースIPアドレスまたはセッション・ユーザーなど、Oracle Database Vaultが認識できる名前付きの変数または属性です。ファクタは、データベースに接続するためのデータベース・アカウントの認可や、データの可視性および管理性を制限するフィルタ・ロジックの作成などのアクティビティに使用できます。

Oracle Database Vaultには、サイトのドメイン、IPアドレス、データベースなどのコンポーネントに対する制御を設定できる様々なファクタが用意されています。デフォルトのファクタの詳細は、「デフォルトのファクタ」で説明しています。独自のPL/SQL取得メソッドを使用してカスタム・ファクタを作成することもできます。

ルール・セットのルールとともにファクタを使用できます。「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVFファクタ・ファンクションは、ルール式で使用できるファクタ固有のファンクションです。

ファクタには値(アイデンティティ)があり、それぞれのファクタ・タイプによってさらに分類されます。ファクタ・アイデンティティの詳細は、「ファクタの識別」で説明されています。ファクタ・タイプの詳細は、「一般」の「ファクタ・タイプ」を参照してください。

また、Oracle Label Securityラベルを使用してファクタを統合できます。その方法は、「Oracle Database VaultとOracle Label Securityの統合」で説明されています。詳細は、「チュートリアル: Oracle Database VaultとOracle Label Securityの統合」を参照してください。

Oracle Database Vaultに作成するファクタ上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してファクタを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLパッケージおよびインタフェースを使用してファクタを構成するには、次の章を参照してください。

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」

デフォルトのファクタ

Oracle Database Vaultには一連のデフォルトのファクタが用意されています。これらのファクタごとに、ファクタの値を取得するファンクションが関連付けられています。これらのファンクションのリストは、「Oracle Database VaultのPL/SQLファクタ・ファンクション」を参照してください。

独自のPL/SQL取得メソッドを使用してカスタム・ファクタを作成できます。使用できる便利なPL/SQLファンクション(デフォルト・ファクタの多くに使用される)は、SYS_CONTEXT SQLファンクションで、ユーザー・セッションに関するデータを取得します。カスタム・ファクタを作成すると、デフォルト・ファクタの問合せに使用されるファンクションと同様に値を問い合せることができます。「チュートリアル: データベースへの非定型ツール・アクセスの阻止」では、カスタム・ファクタの作成および問合せの方法の例を示しています。

SYS_CONTEXTファンクションの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

独自のセキュリティ構成でデフォルトのファクタを使用できます。不要な場合には削除できます。(Oracle Database Vaultによる内部使用には不要です。)

デフォルト・ファクタは次のとおりです。

- Authentication_Method: 認証方式です。次に、ユーザー・タイプの後に返される方式を続けて示します。

- パスワードで認証されるエンタープライズ・ユーザー、ローカル・データベース・ユーザー、またはパスワード・ファイルを使用するSYSDBA/SYSOPER(パスワードを使用するユーザー名によるプロキシ): PASSWORD

- Kerberosで認証されるエンタープライズ・ユーザーまたは外部ユーザー: KERBEROS

- SSLで認証されるエンタープライズ・ユーザーまたは外部ユーザー: SSL

- RADIUSで認証される外部ユーザー: RADIUS

- オペレーティング・システムで認証される外部ユーザーまたはSYSDBA/SYSOPER: OS

- DCEで認証される外部ユーザー: DCE

- 証明書、識別名(DN)またはパスワードを使用しないユーザー名によるプロキシ: NONE

認証方式がパスワード、KerberosまたはSSLの場合、IDENTIFICATION_TYPEを使用して外部ユーザーとエンタープライズ・ユーザーを区別できます。

- Client_IP: クライアントが接続されているコンピュータのIPアドレスです。

- Database_Domain: DB_DOMAIN初期化パラメータに指定されているデータベースのドメインです。

- Database_Hostname: インスタンスが実行されているコンピュータのホスト名です。

- Database_Instance: 現在のインスタンスのインスタンス識別番号です。

- Database_IP: インスタンスが実行されているコンピュータのIPアドレスです。

- Database_Name: DB_NAME初期化パラメータに指定されているデータベースの名前です。

- Domain: 特定の機密レベルで動作するランタイム環境(ネットワーク化されたIT環境またはそのサブセットなど)の物理、構成または実装固有のファクタの名前付きコレクションです。データベースへのセキュア・アクセス・パス内にあるDatabase Vaultノードのホスト名、IPアドレスおよびデータベース・インスタンス名などのファクタを使用してドメインを識別できます。ドメインを識別するファクタ識別子の組合せを使用して、各ドメインを一意に特定できます。これらの識別ファクタやその他のファクタを使用して、ドメイン内に最大セキュリティ・ラベルを定義できます。これにより、Database Vaultセッションに関する物理ファクタに応じて、データ・アクセスやコマンドを制限できます。必要なドメインの例として、企業機密、内部パブリック、パートナ、顧客があります。

- Enterprise_Identity: ユーザーのエンタープライズ全体のアイデンティティです。

- エンタープライズ・ユーザーの場合: Oracle Internet Directory識別名(DN)。

- 外部ユーザーの場合: 外部アイデンティティ(Kerberosプリンシパル名、RADIUSおよびDCEスキーマ名、オペレーティング・システム・ユーザー名、証明書DN)。

- ローカル・ユーザーとSYSDBAログインおよびSYSOPERログインの場合: NULL。

属性の値はプロキシ方法によって異なります。

- DNによるプロキシの場合: クライアントのOracle Internet Directory DN。

- 証明書によるプロキシの場合: 外部ユーザーではクライアントの証明書DN、グローバル・ユーザーではOracle Internet Directory DN。

- ユーザー名によるプロキシの場合: クライアントがエンタープライズ・ユーザーの場合はOracle Internet Directory DN、クライアントがローカル・データベース・ユーザーの場合はNULL。

- Identification_Type: データベースでユーザー・スキーマが作成された方法です。具体的には、CREATE/ALTER USER構文のIDENTIFIED句が反映されます。次に、スキーマ作成時に使用される構文の後に返される識別タイプを続けて示します。

- IDENTIFIED BY password: LOCAL

- IDENTIFIED EXTERNALLY: EXTERNAL

- IDENTIFIED GLOBALLY: GLOBAL SHARED

- IDENTIFIED GLOBALLY AS DN: GLOBAL PRIVATE

- Lang: 既存のLANGUAGEパラメータより短い形式の言語名のISO略称です。

- Language: セッションで現在使用中の言語と地域、およびデータベース・キャラクタ・セットです。次の形式で示されます。

language_territory.characterset

次に例を示します。

AMERICAN_AMERICA.WE8MSWIN1252

言語、地域およびキャラクタ・セットの詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

- Machine: 現在のセッションを確立したデータベース・クライアントのホスト名です。コンピュータがクライアントまたはサーバー・セッションに使用されていたかどうかを調べる必要がある場合には、この設定をDatabase_Hostnameファクタと比較して特定できます。

- Network_Protocol: 接続文字列のPROTOCOL=protocol部分に指定されている、通信に使用されるネットワーク・プロトコルです。

- Proxy_Enterprise_Identity: プロキシ・ユーザーがエンタープライズ・ユーザーである場合、Oracle Internet Directory DNです。

- Proxy_User: SESSION_USERにかわって現行セッションを開いたデータベース・ユーザーの名前です。

- Session_User: 現行ユーザーが認証されたデータベース・ユーザー名です。この値は、セッションを通して同じです。

ファクタの作成

通常、ファクタを作成するには、まずファクタを作成し、ファクタを編集してアイデンティティを含めます。「ファクタ設計のガイドライン」に、ファクタの設計に関する注意事項が説明されています。

ファクタを作成するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページの「Database Vault機能管理」で、「ファクタ」をクリックします。

3. 「ファクタ」ページで「作成」をクリックします。

4. 「ファクタの作成」ページで、次の設定を入力して「OK」をクリックします。

- 一般

- ファクタの識別

- 評価

- ファクタ・ラベリング

- 取得メソッド

- 検証メソッド

- 割当てルール・セット

- 監査オプション

- エラー・オプション

一般

「一般」領域で、次の情報を入力します。

- 名前: 28文字以内(大/小文字混在、空白なし)で名前を入力します。Oracle Database Vaultにより、選択されたファクタの名前に基づいてDVFスキーマに作成されるファクタ・ファンクションの有効なOracle識別子が作成されます。たとえば、GetNetworkIPという名前のファクタを作成した場合、Oracle Database VaultによりDVF.F$GETNETWORKIPファンクションが作成されます。この属性は必須です。
名前は名詞で始まり、導出値の簡単な説明で終わることをお薦めします。

DVFファクタ・ファンクションの詳細は、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明しています。

- 説明: ファクタの説明テキストを入力します。大/小文字の両方を使用して1024文字以内で指定できます。この属性はオプションです。

- ファクタ・タイプ: リストから、ファクタのタイプまたはカテゴリを選択します。この属性は必須です。
ファクタ・タイプには名前と説明があり、ファクタ分類の目的でのみ使用されます。ファクタ・タイプは、ファクタの分類に使用されるカテゴリ名です。デフォルトの物理ファクタ・タイプには、認証方式、ホスト名、ホストIPアドレス、インスタンス識別子およびデータベース・アカウント情報などが含まれます。時間や認証方式などのインストールされたファクタ・タイプに加え、アプリケーション名や証明書情報などのユーザー定義のファクタ・タイプも作成できます。

特定のファクタ・タイプに関連付けられているファクタは、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せることで参照できます。次に例を示します。

SELECT NAME
FROM DVSYS.DBA_DV_FACTOR
WHERE FACTOR_TYPE_NAME='Authentication Method';

出力結果は次のようになります。

NAME
------------------------------
Network_Protocol
Authentication_Method
Identification_Type

注意:
Oracle Database VaultのDBMS_MACADMパッケージを使用してユーザー定義のファクタ・タイプを作成するには、「CREATE_FACTOR_TYPEプロシージャ」で説明されているCREATE_FACTOR_TYPEプロシージャを使用します。

ファクタの識別

「ファクタの識別」で、ファクタのアイデンティティの解決方法を選択します。この属性は必須です。値は次のとおりです。

- メソッド: デフォルト。「取得メソッド」フィールドに指定されたPL/SQL式を実行して、ファクタ・アイデンティティを設定します。
たとえば、式でシステム日付を取得するとします。

to_char(sysdate,'yyyy-mm-dd')

2009年12月6日の場合、「メソッド」オプションで次の値が返されます。

2009-12-06

- 定数: 「取得メソッド」フィールドで検出された定数値を取得してファクタ・アイデンティティを解決します。

- ファクタ: 子ファクタのアイデンティティを親ファクタにマップすることでファクタ・アイデンティティを特定します。親ファクタは、子ファクタと呼ばれる第2のファクタに基づいて値が解決されるファクタです。リレーションシップを確立するには、アイデンティティをマップします。(このオプションに取得メソッド式を指定する必要はありません。)
アイデンティティのマップの詳細は、「他のファクタを使用するアイデンティティを構成するためのアイデンティティ・マップの使用方法」を参照してください。

ファクタ・アイデンティティはファクタの実際の値です(IP_Addressタイプを使用するファクタのIPアドレスなど)。取得メソッドやアイデンティティ・マップ・ロジックに応じて、1つのファクタに複数のアイデンティティが存在する場合もあります。たとえば、Oracle Real Application Clusters環境ではDatabase_Hostnameなどのファクタには、複数のアイデンティティが存在することがあります。RDBMS環境では、Client_IPのようなファクタには複数のアイデンティティが存在する場合があります。取得メソッドはデータベース・セッションに基づいているため、これらのタイプのファクタの取得メソッドでは異なる値が返される場合があります。

複数のレポートを使用してファクタ・アイデンティティ構成を追跡できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

次のようにしてファクタの割当てを構成できます。

- データベース・セッションの確立時にファクタを割り当てます。

- 個々のリクエストを構成してファクタのアイデンティティを取得します。

Oracle Label Security統合を使用すると、Oracle Label Securityラベルでアイデンティティをラベル付けできます。また、アイデンティティに信頼レベルを割り当てることもできます。信頼レベルは、同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値です。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベルの数値が負の場合は信頼できません。

関連項目:
ファクタ・アイデンティティの詳細は、「ファクタへのアイデンティティの追加」を参照してください。

データベース・セッション内では、Oracle Database Vault、および次のようなDVFスキーマ(ファクタ値を取得するファンクションを含む)に存在するパブリックからアクセス可能なPL/SQLファンクションのあるアプリケーションで、ファクタに割り当てられたアイデンティティを使用できます。

dvf.f$factor_name

これにより、(PL/SQL、SQL、Oracle仮想プライベート・データベース、トリガーなどを使用して)Oracleデータベース内からファクタのアイデンティティにグローバルにアクセスできます。たとえば、SQL*Plusでは次のようにします。

CONNECT lbrown_dvowner
Enter password: password

SELECT DVF.F$DATABASE_IP FROM DUAL;

次のような出力が表示されます。

SELECT DVF.F$DATABASE_IP FROM DUAL;

F$DATABASE_IP
-------------------------------------------------------------
192.0.2.1

DVSYS.GET_FACTORファンクションを使用して、パブリックからのアクセスが可能になったファクタのアイデンティティを検出することもできます。次に例を示します。

SELECT GET_FACTOR('DATABASE_IP') FROM DUAL;

次のような出力結果が表示されます。

GET_FACTOR('DATABASE_IP')
-------------------------------------------------------------
192.0.2.1

評価

「評価」で、ファクタの評価方法とアイデンティティの割当て方法を選択します。セッション・ファクタのパフォーマンスへの影響の詳細は、「ファクタのパフォーマンスへの影響」を参照してください。この属性は必須です。

値は次のとおりです。

- セッション: デフォルト。データベース・セッションの作成時にファクタを評価します。

- アクセス: データベース・セッションが初めて作成された際や、ファクタがアクセスされる(アプリケーションによる参照など)たびにファクタが評価されます。

ファクタ・ラベリング

「ファクタ・ラベリング」で、ファクタ・アイデンティティによるOracle Label Security(OLS)ラベルの取得方法を選択します。Oracle Label Security統合を使用する場合は、この設定が適用されます。OLSラベルを使用する場合、この属性は必須です。(OLSラベルとファクタの統合の詳細は、「Oracle Database VaultとOracle Label Securityの統合」を参照してください。)

値は次のとおりです。

- 自己: デフォルト。Oracle Label Securityポリシーに関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

- ファクタ: 子ファクタ・ラベルが複数ある場合は、適用可能なOracle Label Securityポリシーに関連付けられているOracle Label Securityのアルゴリズムを使用してOracle Database Vaultによりラベルがマージされます。適用可能なそれぞれのOracle Label Securityポリシーに対して、ファクタ・アイデンティティはラベルを割り当てることができます。

取得メソッド

「取得メソッド」に、ファクタのアイデンティティを取得するPL/SQL式または定数を入力します。大/小文字混在で最大255文字まで使用できます。「取得メソッド」により、ファクタの識別がメソッドまたは定数によって行われるファクタが識別されます。ファクタの識別がファクタによって行われる場合、Oracle Database Vaultはアイデンティティ・マップによってファクタを識別します。

独自のPL/SQL取得メソッドを作成するか、Oracle Database Vaultに用意されているファンクションを使用できます。取得メソッドの作成に使用可能な、ファクタに固有の一般的なユーティリティ・ファンクションについては、次の項を参照してください。

- 「Oracle Database VaultのPL/SQLファクタ・ファンクション」

- 「DBMS_MACADMのファクタ・プロシージャおよびファンクション」

- 第14章「DBMS_MACUTLパッケージの使用方法」

次の取得メソッドでは、ユーザー・セッションのUSERENV名前空間からデータベース名(DB_NAME)を取得することで、DB_NAMEファクタの値が設定されます。

UPPER(SYS_CONTEXT('USERENV','DB_NAME'))

取得メソッドの例として、Oracle Database Vaultが提供するデフォルトのファクタも参照してください。これらのファクタの説明は、「デフォルトのファクタ」を参照してください。

「ファクタの識別」で次の設定を選択した場合、「取得メソッド」フィールドは必須です。

- メソッド: 「取得メソッド」フィールドにメソッドを入力します。

- 定数: 「取得メソッド」フィールドに定数を入力します。

ファクタ・アイデンティティとして返される値は、VARCHAR2文字列またはこの型に変換可能である必要があります。

式には、パッケージ・ファンクションまたはスタンドアロン・ファンクションを含めることができます。式がschema.function_nameなどの完全修飾ファンクションであることを確認してください。完全なSQL文は含めないでください。アプリケーション・パッケージまたはファンクションを使用している場合は、オブジェクトのGRANT EXECUTE権限のあるDVSYSを指定する必要があります。

次の書式を使用してファンクション・シグネチャを記述します。

FUNCTION GET_FACTOR RETURN VARCHAR2

検証メソッド

「検証メソッド」で、ブール値(TRUEまたはFALSE)を返すPL/SQL式を入力し、(DVSYS.GET_FACTORファンクションで)取得されるファクタのアイデンティティまたは(DVSYS.SET_FACTORファンクションで)ファクタに割り当てられる値を検証します。取得または割り当てられる値に対してメソッドがFalseと評価されると、ファクタ・アイデンティティはNULLに設定されます。このオプションの機能により、ファクタが正しく取得および設定されることがさらに確実になります。このフィールドには、大/小文字混在で最大で255文字まで入力できます。

式には、パッケージ・ファンクションまたはスタンドアロン・ファンクションを含めることができます。式がschema.function_nameなどの完全修飾ファンクションであることを確認してください。完全なSQL文は含めないでください。アプリケーション・パッケージまたはファンクションを使用している場合は、オブジェクトのGRANT EXECUTE権限のあるDVSYSを指定する必要があります。

次の書式のいずれかを使用してファンクションを記述します。

- FUNCTION IS_VALID RETURN BOOLEAN
この書式では、ファンクション・ロジック内のDVF.F$factor_nameファンクションを使用できます。セッションによって評価されるファクタに適しています。

- FUNCTION IS_VALID(p_factor_value VARCHAR2) RETURN BOOLEAN
この書式では、ファクタ値が検証ファンクションに直接渡されます。これは、アクセスごとに評価するファクタに適しています。また、セッションごとに評価するファクタにも有効です。

検証メソッドの作成に使用可能な、ファクタに固有の一般的なユーティリティ・ファンクションについては、次の項を参照してください。

- 「Oracle Database VaultのPL/SQLファクタ・ファンクション」

- 「DBMS_MACADMのファクタ・プロシージャおよびファンクション」

- 第14章「DBMS_MACUTLパッケージの使用方法」

割当てルール・セット

ファクタ・アイデンティティの設定時期や方法をルール・セットを使用して制御する場合は、「割当てルール・セット」でリストからルール・セットを選択します。たとえば、ルール・セットを使用して、既知のアプリケーション・サーバーまたはプログラムからデータベース・セッションが発生する時期を決定できます。ルール・セットの作成方法は、第5章「ルール・セットの構成」で説明しています。

この属性は、JDBC接続プールを使用するWebアプリケーションなどのデータベース・アプリケーションで、現在のデータベース・セッションに対するファクタ・アイデンティティを動的に設定する必要がある場合に特に有用です。たとえば、Webアプリケーションで、そのWebアプリケーションにログインするデータベース・アカウントの地理的位置を割り当てる場合があります。これを行うために、WebアプリケーションではJDBCコール可能文またはOracle Data Provider for .NET (ODP.NET)を使用して、PL/SQLファンクションDVSYS.SET_FACTORを実行できます。次に例を示します。

BEGIN
DVSYS.SET_FACTOR('GEO_STATE','VIRGINIA');
END;

その後、GEO_STATEファクタの割当てルールを作成し、その他のファクタまたはルール式に基づいてGEO_STATEファクタの設定を許可または禁止できます。詳細は、「ファクタの設定」を参照してください。

監査オプション

「監査オプション」で、設定から選択して監査証跡を生成します。Oracle Database VaultはDVSYS.AUDIT_TRAIL$システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。

ファクタの監査レポートを使用して、生成された監査レコードを表示できます。(詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。)また、一度に複数の監査オプションを選択できます。各オプションはビット・マスクに変換され、集計の動作を決定するために追加されます。ファクタにエラーがないかぎり、監査のパフォーマンスへの影響はほとんどありません。この属性は必須です。値は次のとおりです。

- 行わない: 監査は実行されません。

- 常時: ファクタの評価時には、常に監査レコードが作成されます。次に説明する条件から選択できます。

- 場合による: 1つ以上の条件に基づいて監査レコードが作成されます。「場合による」を選択すると、デフォルトで「取得エラー」および「取得がNULL」オプションが選択されます。
次に示した条件から選択できます。

「常時」および「場合による」オプションに選択できる条件は次のとおりです。

- 取得エラー: エラー(No data found、Too many rowsなど)のため、ファクタのアイデンティティを解決および割当てできない場合に、監査レコードを作成します。

- 取得がNULL: ファクタのアイデンティティがNULLに解決された場合に、監査レコードが作成されます。

- 検証エラー: 検証メソッド(存在する場合)でエラーが返された場合に、監査レコードが作成されます。

- 検証がFalse: 検証メソッド(存在する場合)でFALSEが返された場合に、監査レコードが作成されます。

- 信頼レベルがNULL: ファクタの解決されたアイデンティティに割り当てられている信頼レベルがNULLの場合に、監査レコードが作成されます。
信頼レベルの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。

- 信頼レベルがゼロ未満: ファクタの解決されたアイデンティティに割り当てられている信頼レベルがゼロ未満の場合に、監査レコードが作成されます。

エラー・オプション

「エラー・オプション」で、ファクタ・アイデンティティが解決されない場合に発生する処理を次の中から選択して指定します。この属性は必須です。

値は次のとおりです。

- エラー・メッセージを表示: デフォルト。データベース・セッションに対するエラー・メッセージが表示されます。

- エラー・メッセージを表示しない: エラー・メッセージは表示されません。
「エラー・メッセージを表示しない」を選択して監査を有効にする利点は、潜在的な侵入者のアクティビティを追跡できるということです。監査レポートにより侵入者のアクティビティを把握できますが、エラー・メッセージが表示されないため、侵入者は監査が行われていることに気付きません。

新規ファクタを作成すると、アイデンティティを構成できます。これを実行するには、ファクタを編集してアイデンティティを追加します。

関連項目:

- 「ファクタの編集」

- 「ファクタへのアイデンティティの追加」

- 「Oracle Database Vaultポリシーの他のデータベースへの伝播」

ファクタの編集

ファクタの編集手順:

1. Oracle Database Vaultの「管理」ページで、「ファクタ」を選択します。

2. 「ファクタ」ページで編集するファクタを選択します。

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

4. 必要に応じてファクタを変更し、「OK」をクリックします。

関連項目:

- 新しいファクタ用に作成された設定を変更する場合は、「ファクタの作成」を参照してください。

- ファクタのアイデンティティを追加または変更する場合は、「ファクタへのアイデンティティの追加」を参照してください。

ファクタへのアイデンティティの追加

新しいファクタを作成したら、ファクタにアイデンティティを追加できます。アイデンティティがファクタの実際の値です。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.4というIPアドレスになります。

この項の内容は次のとおりです。

- ファクタ・アイデンティティの概要

- ファクタ・アイデンティティの作成および構成

- 他のファクタを使用するアイデンティティを構成するためのアイデンティティ・マップの使用方法

ファクタ・アイデンティティの概要

指定されたデータベース・セッションのファクタ・アイデンティティは、「ファクタの作成」で説明されている「ファクタの識別」および「取得メソッド」フィールドを使用して実行時に割り当てられます。次のような場合には、さらにアイデンティティを構成できます。

- ファクタの既知のアイデンティティを定義する場合

- ファクタ・アイデンティティに信頼レベルを追加する場合

- ファクタ・アイデンティティにOracle Label Securityラベルを追加する場合

- アイデンティティ・マップを使用して子ファクタによりファクタ・アイデンティティを解決する場合

関連項目:

- データベース・セッション中のファクタの動作の詳細は、「ファクタの動作」を参照してください。

- ファクタ・アイデンティティの作成および使用方法の例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください。

ファクタ・アイデンティティの作成および構成

アイデンティティの作成および構成手順:

1. Oracle Database Vaultの「管理」ページで、「ファクタ」を選択します。

2. 「ファクタ」ページで、アイデンティティを追加するファクタを選択します。

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

4. 「ファクタの編集」ページで、「アイデンティティ」にスクロールし、「作成」をクリックします。

5. 「アイデンティティの作成」ページで、次の設定を入力して「OK」をクリックします。

- 一般

- ラベル・アイデンティティ

一般

次の値を入力します。

- 値: 大/小文字混在で1024文字以内でアイデンティティの値を入力します。この属性は必須です。

- 信頼レベル: 次のいずれかの信頼レベルを選択します。

- 信頼度高: 信頼レベル値10が割り当てられます。

- 信頼: 信頼レベル値5が割り当てられます。

- 信頼度低: 信頼レベル値1が割り当てられます。

- 信頼されない: 信頼レベル値-1が割り当てられます。

- 信頼レベルが未定義: 信頼レベル値NULLが割り当てられます(デフォルト)。

信頼レベルを使用することにより、信頼できるかどうかの尺度を示す数値を割り当てることができます。信頼値1は信頼度が低いことを意味します。値が大きければ信頼度も高くなります。負の値またはゼロは信頼できないことを意味します。ファクタ取得メソッドにより返されたファクタ・アイデンティティがアイデンティティに定義されていない場合は、Oracle Database Vaultによりそのアイデンティティに自動的に負の信頼レベルが割り当てられます。

実行時にファクタ・アイデンティティの信頼レベルを特定するために、DVSYSスキーマのGET_TRUST_LEVELおよびGET_TRUST_LEVEL_FOR_IDENTITYファンクションを使用できます。

たとえば、Networkという名前のファクタを作成したとします。Networkファクタに次のようなアイデンティティを作成できます。

- Intranet(信頼レベル10)

- VPN(仮想プライベート・ネットワーク)(信頼レベル5)

- Public(信頼レベル1)

ポリシー決定の基準を信頼レベルに置くルール式(またはカスタム・アプリケーション・コード)を作成できます。たとえば、DVSYS.GET_TRUST_LEVELを使用して5より大きい信頼レベルを検出できます。

DVSYS.GET_TRUST_LEVEL('Network') > 5

または、DVSYS.DBA_DV_IDENTITYデータ・ディクショナリ・ビューでSELECT文を使用して、信頼レベルが5以上のNetworkファクタを検出できます。

SELECT VALUE, TRUST_LEVEL FROM DVSYS.DBA_DV_IDENTITY
WHERE TRUST_LEVEL >= 5
AND FACTOR_NAME='Network'

次のような出力が表示されます。

F$NETWORK GET_TRUST_LEVEL('NETWORK')
------------------------------------
VPN                                5
INTRANET                          10

前の例では、VPNのNetworkファクタ・アイデンティティは信頼されており(値が5)、INTRANETドメインのアイデンティティはより信頼度の高い10です。

Oracle Database Vaultのファンクションの詳細は、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」を参照してください。

ラベル・アイデンティティ

ファクタ・アイデンティティにOracle Label Security(OLS)ラベルを割り当てられます。(簡単に説明すると、ラベルはデータベース表の行に権限を割り当てるために行の識別子の役割を果します。ラベルの詳細は、『Oracle Label Security管理者ガイド』を参照してください。)ファクタの「ファクタ・ラベリング」属性により、ファクタが「自己」または「ファクタ」のいずれにラベル付けされるかが決まります。「ファクタ・ラベリング」属性に「自己」を設定すると、OLSラベルをファクタ・アイデンティティに関連付けられます。「ファクタ・ラベリング」属性に「ファクタ」を設定すると、Oracle Database Vaultにより子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルが導出されます。ラベルのある子ファクタ・アイデンティティが複数ある場合は、適用可能なファクタのOracle Label Securityポリシーに関連付けられているOLSアルゴリズムを使用して、Oracle Database Vaultによりラベルがマージされます。

アイデンティティをラベル付けする手順:

1. 「アイデンティティの作成」ページの「ラベル・アイデンティティ」で、「使用可能なOLSラベル」リストからOLSラベルを選択します。

リストには、サイトのOracle Label Securityインストールのデータ・ラベルが表示されます。詳細は、『Oracle Label Security管理者ガイド』を参照してください。

注意:
[Ctrl]キーを押しながら選択する各ラベルをクリックすると、複数のラベルを選択できます。

2. 「移動」をクリックしてOLSラベルを「選択したOLSラベル」リストに移動します。

3. 手順1と2を繰り返し、複数のOLSラベルを選択します。
それぞれのOLSポリシーに選択できるラベルは1つのみです。

4. 「OK」をクリックしてアイデンティティのラベル付けを終了します。

ファクタ・アイデンティティの編集

ファクタ・アイデンティティの編集手順:

1. 「ファクタの編集」ページで、「アイデンティティ」にスクロールし、編集するアイデンティティを選択します。

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

3. 「アイデンティティの編集」ページで、必要に応じてアイデンティティを変更します。

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

ファクタ・アイデンティティの削除

ファクタ・アイデンティティを削除する前に、ファクタに関連するOracle Database Vaultビューに問い合せることで、そのファクタ・アイデンティティへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

ファクタ・アイデンティティの削除手順:

1. 「ファクタの編集」ページで、「アイデンティティ」にスクロールし、削除するアイデンティティを選択します。

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

3. 「確認」ページで「はい」をクリックします。

他のファクタを使用するアイデンティティを構成するためのアイデンティティ・マップの使用方法

ファクタ・アイデンティティは、作成、編集および保存した後でマップできます。アイデンティティ・マップは、他(子)のファクタを使用してファクタを識別するプロセスです。これはファクタの組合せをファクタの論理アイデンティティに変換する方法です。また、連続するアイデンティティ値(温度など)や連続しない大きなアイデンティティ値(IPアドレスの範囲など)を論理セットに変換する方法でもあります。アイデンティティのマップに関する構成の問題を確認する場合は、「「アイデンティティ構成の問題」レポート」を参照してください。アイデンティティ・マップの使用方法の例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください。

アイデンティティをファクタにマップする手順:

1. 親ファクタを作成し、「ファクタ」に属性「ファクタの識別」を設定します。
ファクタの作成方法は、「ファクタの作成」で説明しています。

2. 親ファクタに、新しいファクタ・アイデンティティを作成します。
アイデンティティの作成方法は、「アイデンティティの作成および構成」で説明しています。

3. 親ファクタのファクタとアイデンティティの組合せを、子のファクタとアイデンティティの組合せにマップします。次の手順に従います。

1. 「ファクタ」ページで、親ファクタを選択し「編集」をクリックします。

2. 「ファクタの編集」ページの「アイデンティティ」で、親ファクタ・アイデンティティを選択して「編集」をクリックします。

3. 「アイデンティティの編集」ページの「アイデンティティのマップ」で、「作成」をクリックします。

4. 「アイデンティティ・マップの作成」ページで、「構成ファクタ」リストからファクタ名を選択します。

これは、親ファクタをマップする子ファクタです。

5. 「マップ条件」を選択します。
この設定により、構成(子)ファクタ値を比較するための演算子の選択が可能になります。

6. (オプションの)「下限値」および「上限値」フィールドに値を入力します。
たとえば、ファクタNetworkの「構成ファクタ」がClient_IP、「マップ条件」が「間」、「下限値」が192.0.2.1、「上限値」が192.0.2.24に設定されているシナリオを想定します。この場合、クライアントIPアドレスが192.0.2.1から192.0.2.24の指定されたアドレスの範囲内である場合は、親ファクタが事前に定義されたアイデンティティ(INTRANETなど)と評価されます。

7. 「OK」をクリックして、親のファクタとアイデンティティを子のファクタとアイデンティティにマップします。

親ファクタの別のアイデンティティを構成ファクタの別のアイデンティティにマップできます。たとえば、INTRANETアイデンティティは192.0.2.1から192.0.2.24の範囲のIPアドレスにマップします。REMOTEアイデンティティは、192.0.2.1から192.0.2.24の範囲のアドレスを除くIPアドレスにマップします。

アイデンティティ・マップに基づいて、セキュリティ・ポリシーを作成できます。たとえば、企業ネットワーク(INTRANET)内から接続している従業員とは対照的に、VPN(REMOTE)経由で接続している従業員には少ない権限を定義できます。

8. 手順cから手順gを繰り返して、親ファクタ・アイデンティティの構成ファクタをさらに追加します。
たとえば、ProgramファクタがOracle General Ledgerに解決され、Client_IPが192.0.2.1から192.0.2.24の間の場合には、値ACCOUNTING-SENSITIVEに解決するようNetworkファクタを構成できます。そのため、IPアドレスが192.0.2.12のクライアント上で稼働している、認可済の経理金融アプリケーション・プログラムがデータベースにアクセスすると、NetworkファクタはACCOUNTING-SENSITIVEに解決されます。Networkの値がACCOUNTING-SENSITIVEのデータベース・セッションには、Networkの値がINTRANETのデータベース・セッションよりも多くのアクセス権があります。

ファクタの削除

ファクタを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのファクタとアイデンティティへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

ファクタの削除手順:

1. ファクタ・アイデンティティのようなファクタへの参照およびOracle Label Securityポリシーの関連付けを削除します。
参照のあるファクタは削除できません。

2. Oracle Database Vaultの「管理」ページで、「ファクタ」を選択します。

3. 「ファクタ」ページで削除するファクタを選択します。

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

5. 「確認」ページで「はい」をクリックします。

ファクタの動作

この項の項目では、Oracle Database Vaultがファクタをどのように処理するかを説明します。

- セッション確立時のファクタの処理

- ファクタの取得

- ファクタの設定

セッション確立時のファクタの処理

データベース・セッションが確立されると、次のアクションが発生します。

1. 各データベース・セッションの開始時に、Oracle Database Vaultは、データベース・インスタンス内のデフォルトおよびユーザー作成のすべてのファクタの評価を開始します。
適用可能な場合、評価はセッションの通常のデータベース認証、およびOracle Label Securityセッション情報の初期化後に開始されます。

2. ファクタの評価段階において、ファクタ初期化プロセスがメソッドまたは定数によって識別されるすべてのファクタの取得メソッドを実行し、セッションのファクタ・アイデンティティを解決します。

ファクタのエラー・オプション設定は、ファクタ初期化プロセスには影響しません。

3. ファクタに検証メソッドが定義されている場合は、Oracle Database Vaultによりその検証メソッドが実行され、ファクタのアイデンティティ(値)が検証されます。検証メソッドが失敗するかFalseが返された場合、ファクタのアイデンティティは未定義(NULL)です。

4. ファクタにアイデンティティが定義されている場合、Oracle Database Vaultは定義されているアイデンティティに基づいてファクタの信頼レベルを解決します。ファクタのアイデンティティが定義済のアイデンティティのリストに定義されている場合、Oracle Database Vaultは構成されている信頼レベルを割り当てます。そうでない場合は-1が設定されます。ファクタにアイデンティティが定義されていない場合、信頼レベルは未定義(NULL)になります。

5. ファクタ評価、ファクタ検証および信頼レベル解決の結果により、Database Vaultはファクタ監査構成の指示に従って評価の詳細を監査します。

6. メソッドまたは定数によって識別されるすべてのファクタの評価が完了すると、ファクタ構成アイデンティティに定義されているアイデンティティ・マップを使用して、その他のファクタによって識別されるファクタが解決されます。

ファクタ構成アイデンティティの評価順序は、アイデンティティ値のASCIIソートにより決まります。Oracle Database Vaultは、アルファベット順で最初にソートされたアイデンティティ・マップを使用して評価します。ファクタTESTにXおよびYというアイデンティティがあるとします。さらに、アイデンティティXおよびYに、ファクタA、B、Cのアイデンティティに依存するアイデンティティ・マップがある場合、次のマップが行われます。

- A=1およびB=1の時はXがマップされます。

- A=1、B=1およびC=2の時はYがマップされます。

この場合、最初に評価されるのはXです。Yは評価されませんが、TESTファクタの成功に必要な条件にCのマップが一致した場合はどうなるでしょうか。Xの前にYをマップして、A、BおよびCが最初に評価されるように、逆にマップする必要があります。逆にマップするには、YをVという名前(またはXの前にソートされるアルファベット値)に変更します。これにより適切に解決されます。

このアルゴリズムはASCIIソートの順序が適切な場合に機能し、アイデンティティは同レベルの同じ番号のファクタをマップします。

7. ファクタの初期化が終了すると、Oracle Database VaultのOracle Label Securityとの統合が行われます。

このプロセスが終了すると、Oracle Database Vaultはコマンド・ルールがCONNECTイベントと関連付けられていることを確認します。ルール・セットがCONNECTイベントと関連付けられている場合は、ルール・セットが評価されます。ルール・セットがFalseと評価されるかエラーが戻されると、セッションは終了します。セッションが終了する前に、ルール・セットに関連付けられた監査またはコール・ハンドラが実行されます。

注意:
不用意に、他のユーザーをデータベースからロックアウトする可能性があるため、コマンド・ルールをCONNECTイベントに関連付ける際は注意してください。通常、CONNECTのコマンド・ルールを作成する場合は、関連付けられたルール・セットの評価オプションを「いずれかTrue」に設定します。
不用意に他のユーザーをロックアウトした場合は、一時的にOracle Database Vaultを無効にして、CONNECTコマンド・ルールを無効にし、Oracle Database Vaultを再び有効にして、問題の原因となっているファクタ・コードを修正します。これを実行する方法の例は、「テストが失敗した場合」で説明しています。

ファクタの取得

データベース・セッションのファクタは、DVFファクタ・ファンクションまたはDVSYS.GET_FACTORファンクションを使用していつでも取得できます。使用可能なファクタのリストを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明するDVS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。

例7-1に、DVSYS.GET_FACTORファンクションの使用例を示します。

例7-1 DVSYS.GET_FACTORを使用したファクタの取得

SELECT GET_FACTOR('client_ip') FROM DUAL;

DVFファクタ・ファンクションから取得されたファクタ値、またはDVSYS.GET_FACTORを次に示す方法で使用できます。

- Oracle Database Vaultルール式

- Oracle Database Vault環境のすべてのデータベース・セッションで使用可能なカスタム・アプリケーション・コード

DVFファクタ・ファンクションの詳細は、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明しています。

「セッション確立時のファクタの処理」で説明されているように、ファクタ評価を「セッション」に設定した場合、値は確立したセッション・コンテキストから取得されます。

「セッション確立時のファクタの処理」で説明されているように、ファクタ評価を「アクセス」に設定した場合は、ファクタが取得されるたびに、Oracle Database Vaultにより手順2から手順5(または手順6)が実行されます。

ファクタにエラー・オプションを定義し、エラーが発生した場合には、エラー・メッセージが表示されます。

ファクタの設定

データベース・セッション中はいつでもファクタにアイデンティティを割り当てられますが、ファクタ割当てルール・セットが定義されていて、そのルール・セットがTrueと評価される場合にかぎります。DVSYS.SET_FACTORファンクションを使用することにより、アプリケーション・コード内でこれを実行できます。Javaコードでは、JDBCクラスjava.sql.CallableStatementを使用してこの値を設定できます。次に例を示します。

java.sql.Connection connection ;
...
java.sql.CallableStatement statement =
connection.prepareCall("{call DVSYS.SET_FACTOR('FACTOR_X', ?)}");
statement.setString(1, "MyValue");
boolean result = statement.execute();
...

Oracle Data Provider for .NET(ODP.NET)を使用して記述されたアプリケーションなど、Oracle PL/SQLファンクションの実行が可能なアプリケーションは、このプロシージャを使用できます。

この概念は、ファクタ値の設定時期をルール・セットで制御する機能が追加された標準のOracle DBMS_SESSION.SET_IDENTIFIERプロシージャに似ています。ルール・セットの評価がTrueの場合、「セッション確立時のファクタの処理」の手順2から5が実行されます。

ファクタに割当てルール・セットを関連付けていない、またはルール・セットにFalse(またはエラー)が返された場合、DVSYS.SET_FACTORファンクションを使用してファクタの設定を試行すると、エラー・メッセージが表示されます。

チュートリアル: データベースへの非定型ツール・アクセスの阻止

この項の内容は、次のとおりです。

- このチュートリアルの概要

- 手順1: SCOTTユーザー・アカウントの有効化

- 手順2: Moduleファクタの作成

- 手順3: Limit SQL*Plus Accessルールおよびルール・セットの作成

- 手順4: CONNECTコマンド・ルールの作成

- 手順5: 非定期ツール・アクセス制限のテスト

- 手順6: このチュートリアルのコンポーネントの削除

関連項目:

- ファクタ・アイデンティティのマップの例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください。

- Oracle Database VaultファクタとOracle Label Securityラベルの統合の例は、「チュートリアル: Oracle Database VaultとOracle Label Securityの統合」を参照してください。

このチュートリアルの概要

多くのデータベース・アプリケーションには、ユーザーのアクションを明示的に制御する機能が含まれています。ただし、非定型問合せツール(SQL*Plusなど)には、これらの制御機能がないことがあります。このため、ユーザーは非定型ツールを使用して、通常、正規のデータベース・アプリケーションで実行できないアクションをデータベースで実行できる場合があります。Oracle Database Vaultのファクタ、ルール・セットおよびコマンド・ルールを組み合せて使用すると、非定型問合せツールによるデータベースへの不正アクセスを阻止できます。

次のチュートリアルでは、Database Vault所有者、Database Vaultアカウント・マネージャ、SYSTEMおよびSYSの4ユーザーにのみ、SQL*Plusの使用を制限します。これを実行するには、システム上でアプリケーションを検索するファクタと、これら4ユーザーにSQL*Plusを制限するためのルールおよびルール・セットを作成する必要があります。次に、ルール・セットに関連付けられるCONNECT SQL文のコマンド・ルールを作成します。このチュートリアルを正常に完了すると、指定する管理ユーザーのみがSQL*Plusを使用してデータベースに接続できるようになります。

手順1: SCOTTユーザー・アカウントの有効化

後でこのチュートリアルのためにOracle Database Vaultコンポーネントをテストするときに、SCOTTアカウントを使用する必要があるので、このアカウントがアクティブであることを確認してください。

1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusにログインします。
次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

2. SCOTTアカウントのステータスを確認します。

SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = 'SCOTT';

3. SCOTTが無効になり、ロックされている場合、次の文を入力してアクティブにします。

ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

手順2: Moduleファクタの作成

Moduleファクタは、SYS_CONTEXT SQLファンクションを使用して、Oracle Databaseの現行インスタンスへのアクセスに使用されるアプリケーションの名前を検索します。前述のように、SYS_CONTEXT SQLファンクションには、ユーザー・セッションの状態を検出するための便利なメソッドが多数用意されています。SYS_CONTEXTは、カスタム・ファクタを作成するための貴重なツールです。SYS_CONTEXTファンクションの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

注意:
このタイプのファクタは、偽造を防ぐためにクライアント・セッションのセキュリティに大きく依存しています。詳細は、My Oracle Support(以前のOracleMetaLink)ノート281229.1を参照してください。My Oracle Supportには、次のWebサイトからアクセスできます。
https://support.oracle.com

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「ファクタ」を選択します。
「ファクタ」ページが表示されます。

3. 「作成」をクリックして、「ファクタの作成」ページを表示します。

4. 次の情報を入力します。

- 名前: Moduleと入力します。

- 説明: Factor to find applications that can access Oracle Databaseと入力します。

- ファクタ・タイプ: リストから、「アプリケーション」を選択します。

- ファクタの識別: 「メソッド」を選択します。

- 評価: 「アクセス」を選択します。

- ファクタ・ラベリング: 「自己」を選択します。

- 取得メソッド: 次の取得メソッドを入力します。

UPPER(SYS_CONTEXT('USERENV', 'MODULE'))

- 検証メソッド: 空白のままにします。

- 割当てルール・セット: リストから、「<未選択>」を選択します。

- 監査オプション: 「行わない」を選択します。

- エラー・オプション: 「エラー・メッセージを表示」を選択します。

5. 「OK」をクリックします。
Oracle Database Vaultによりファクタが作成されます。これで、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているように、デフォルトのファクタの問合せに使用するものと同じ構文を使用して、ファクタを検索できます。

6. SQL*Plusで、Moduleファクタのクイック・テストを実行します。
次に例を示します。

sqlplus lbrown_dvowner
Enter password: password

SELECT DVF.F$MODULE FROM DUAL;

次のような出力結果が表示されます。

F$MODULE
-----------------------------
SQLPLUS.EXE

SQL*Plusを終了しないでください。後でファクタ・コンポーネントをテストするときに必要になります。

手順3: Limit SQL*Plus Accessルールおよびルール・セットの作成

1. Oracle Database Vault Administratorで、「管理」ページに戻ります。

2. 「管理」で「ルール・セット」を選択します。
「ルール・セット」ページが表示されます。

3. 「作成」をクリックして、「ルール・セットの作成」ページを表示します。

4. 次の設定を入力します。

- 名前: Limit SQL*Plus Accessと入力します。

- 説明: Rule set to limit access to SQL*Plusと入力します。

- ステータス: 「有効」を選択します。

- 評価オプション: 「すべてTrue」を選択します。

- 監査オプション: 「監査無効」を選択します。

- エラー処理オプション: 「エラー・メッセージを表示」を選択します。

- 失敗コード、失敗メッセージ: 空白のままにします。

- カスタム・イベント・ハンドラ・オプション: 「ハンドラ無効」を選択します。

- カスタム・イベント・ハンドラ・ロジック: 空白のままにします。

5. 「OK」をクリックします。
「ルール・セット」ページが表示されます。

6. Limit SQL*Plusルール・セットを選択して、「編集」をクリックします。
「ルール・セットの編集」ページが表示されます。

7. 「ルール・セットに関連付けられたルール」で「作成」をクリックします。
「ルールの作成」ページが表示されます。

8. 次の設定を入力します。

- 名前: Prevent non-admin access to SQL*Plusと入力します。

- ルール式: 次のルール式を入力します。

DVF.F$MODULE = 'SQL*PLUS.EXE' AND DVF.F$SESSION_USER IN ('LBROWN_DVOWNER', 'AMALCOLM_DVACCTMGR', 'SYS', 'SYSTEM')

LBROWN_DVOWNERとAMALCOLM_DVACCTMGRを、Database Vault所有者アカウントとDatabase Vaultアカウント・マネージャ・アカウント用に使用するユーザー・アカウント名に置き換えます。データベースにはユーザー・アカウント名が大文字で格納されるため、ユーザー・アカウント名は大文字で入力する必要があります。

この式により、Oracle Database Vaultに、これら4ユーザーにのみSQL*Plusの使用を許可するよう指示されます。式を記述する別の方法として、Database Vaultに、単に特定のユーザーによるSQL*Plusの使用を除外するように指示します。そうすると、他のユーザーはすべてSQL*Plusにアクセスできます。たとえば、ユーザーJSMITHおよびTSMITHのSQL*Plusの使用を除外するには、次の式を作成します。

DVF.F$MODULE != 'SQL*PLUS.EXE' AND DVF.F$SESSION_USER NOT IN ('JSMITH', 'TSMITH')

ただし、このチュートリアルでは、4人の管理ユーザーのみがSQL*Plusの使用を許可される最初の式を使用します。

9. このルール式をステップ8で示したとおりに入力したことを確認します。誤って入力すると、SQL*Plusにログインできません。

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

手順4: CONNECTコマンド・ルールの作成

CONNECTコマンド・ルールは、CONNECT SQL文を制御します。コマンドラインまたはSQL*Plusへのアクセスにサイトで使用されるその他のツールからSQL*Plusにログインする場合にも適用されます。

1. Oracle Database Vaultで、「管理」ページに戻ります。

2. 「コマンド・ルール」を選択します。
「コマンド・ルール」ページが表示されます。

3. 「作成」をクリックして、「コマンド・ルールの作成」ページを表示します。

4. 次の設定を入力します。

- コマンド: リストから「CONNECT」を選択します。

- ステータス: 「有効」を選択します。

- オブジェクト所有者、オブジェクト名: コマンド・ルールがログインするすべてのユーザーに適用されるように%に設定します。

- ルール・セット: リストから「Limit SQL*Plus Access」を選択します。

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

手順5: 非定期ツール・アクセス制限のテスト

SQL*Plusにログイン中ですが、Oracle Database Vaultの変更を有効にするために、SQL*Plusセッションを再起動する必要はありません。変更はただちに有効になります。

1. SQL*PlusにユーザーSCOTTとして接続を試行します。

CONNECT SCOTT
Enter password: password

次のような出力結果が表示されます。

ERROR:
ORA-47400: Command Rule violation for CONNECT on LOGON

Warning: You are no longer connected to ORACLE.

ユーザーSCOTTは、SQL*Plusの使用を阻止されます。

2. ここで、ユーザーSYSTEMとして接続を試行します。

CONNECT SYSTEM
Enter password: password
Connected.

ユーザーSYSTEMは、SQL*Plusにログインできます。SYS、Database Vault所有者アカウントおよびDatabase Vaultアカウント・マネージャ・アカウントもログインできます。

テストが失敗した場合

SYSTEMとして(またはルール式で指定されているその他の管理ユーザーのいずれかとして)SQL*Plusにログインできない場合、SQL*PlusとOracle Database Vault Administratorの両方とも使用できません。しかし、心配ありません。問題は次のように解決できます。

1. 一時的にOracle Database Vaultを無効にします。
Oracle Database Vaultの無効化の手順は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。Oracle Database Vaultを無効にした後、SQL*Plusにログインできます。

2. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

3. 次の文を入力して、CONNECTコマンド・ルールを削除します。

EXEC DBMS_MACADM.DELETE_COMMAND_RULE ('CONNECT', '%', '%');

Oracle Database Vaultを無効にしても、そのPL/SQLパッケージとDatabase Vault Administratorはまだ使用できます。

4. SQL*Plusを終了します。

5. Oracle Database Vaultを再び有効にします。
Oracle Database Vaultの有効化の手順は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

6. Oracle Database Vault Administratorで、ルール式にエラーがないか確認し、あれば修正します。CONNECTコマンド・ルールを再作成し、テストします。

手順6: このチュートリアルのコンポーネントの削除

1. Database Vault Administratorで、管理者ページに戻ります。

2. 「コマンド・ルール」を選択します。

3. 「コマンド・ルール」ページで、CONNECTコマンド・ルールを選択して、「削除」をクリックします。「確認」ページで「はい」を選択します。

4. 管理者ページで、「ルール・セット」を選択します。

5. 「ルール・セット」ページで、SQL*Plus Accessルール・セットを選択し、「削除」をクリックします。「確認」ページで「はい」を選択します。

6. 「管理」ページで、「ファクタ」を選択します。

7. 「ファクタ」ページでModuleファクタを選択し、「削除」をクリックします。「確認」ページで「はい」を選択します。

8. Database Vault所有者としてSQL*Plusにログインし、Prevent Non-admin access to SQL*Plusルールを削除します。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

EXEC DBMS_MACADM.DELETE_RULE('Prevent non-admin access to SQL*Plus');

9. 必要な場合、Oracle Database Vaultアカウント・マネージャとして接続し、SCOTTアカウントをロックして無効にします。
次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

ALTER USER SCOTT ACCOUNT LOCK PASSWORD EXPIRE;

チュートリアル: セッション・データに基づくユーザー・アクティビティの制限

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: 管理者ユーザーの作成

- 手順2: Domainファクタへのアイデンティティの追加

- 手順3: Domainファクタ・アイデンティティのClient_IPファクタへのマップ

- 手順4: 時間を設定するルール・セットの作成およびファクタ・アイデンティティの選択

- 手順5: ルール・セットを使用するコマンド・ルールの作成

- 手順6: ファクタ・アイデンティティの設定のテスト

- 手順7: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

ファクタ・アイデンティティ・マップを使用して、データベース・アクティビティのセッションベースのユーザー制限を設定できます。たとえば、次の基準を使用して、データベースへの管理アクセスを制御するとします。

- 管理者が正しいIPアドレスからデータベースにアクセスしていることを確認する。

- データベース・アクセスを管理者の標準勤務時間に制限する。

このような構成は、様々なタイプの管理者(ローカルの内部管理者だけでなく、海外および契約管理者も含む)を制限する場合に便利です。

このチュートリアルでは、管理者が使用しているコンピュータのIPアドレスに基づく、セキュアおよび非セキュアなネットワーク・アクセスのアイデンティティが含まれるように、Domainファクタを変更します。管理者が標準勤務時間外に、あるいは異なるIPアドレスからアクションを実行しようとすると、Oracle Database Vaultはそれを阻止します。

手順1: 管理者ユーザーの作成

1. SQL*Plusで、DV_ACCTMGRロールを付与されているユーザーとしてログインし、ユーザー・アカウントmwaldronを作成します。
次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

CREATE USER mwaldron IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

2. SYSDBA権限を使用して、SYSとして接続し、ユーザーmwaldronにDBA権限を付与します。

CONNECT SYS AS SYSDBA
Enter password: password

GRANT CREATE SESSION, DBA TO mwaldron;

手順2: Domainファクタへのアイデンティティの追加

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「ファクタ」を選択します。
「ファクタ」ページが表示されます。

3. Domainファクタを選択し、「編集」を選択します。
Domainファクタが親ファクタとなります。

4. 「アイデンティティ」で「作成」を選択します。

5. 「アイデンティティの作成」ページで、次の情報を入力します。

- 値: HIGHLY SECURE INTERNAL NETWORKと入力します。

- 信頼レベル: 「信頼度高」を選択します。

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

7. 「ファクタの編集: Domain」ページで、NOT SECUREというもう1つのアイデンティティを作成し、その信頼レベルを「信頼されない」に設定します。

手順3: Domainファクタ・アイデンティティのClient_IPファクタへのマップ

1. Oracle Database Vault Administratorの「ファクタの編集: Domain」ページで、HIGHLY SECURE INTERNAL NETWORKアイデンティティを選択し、「編集」を選択します。

2. 「アイデンティティのマップ」で、「作成」を選択します。

3. 「アイデンティティ・マップの作成」ページで、次の情報を入力します。

- 構成ファクタ: 子ファクタとなる「Client_IP」を選択します。

- マップ条件: 「=」を選択し、「下限値」ボックスに、仮想マシンのIPアドレス(たとえば、192.0.2.12)を入力します。(これは、ユーザーmwaldronが使用するコンピュータです。このチュートリアルでは、自身のコンピュータのIPアドレスを入力できます。Microsoft Windowsを使用している場合は、ループバック・アダプタに割り当てられたIPアドレスを使用します。)

4. 「OK」をクリックし、再び「OK」をクリックして「ファクタの編集: Domain」ページに戻ります。

5. NOT SECUREアイデンティティ用に次の2つのアイデンティティ・マップを作成します。

子ファクタ名

演算値

オペランド1

オペランド2

Client_IP

Less

192.0.2.5

(空白のまま)

Client_IP

Greater

192.0.2.20

(空白のまま)

NOT SECUREアイデンティティでのアイデンティティ・マップは、ユーザーmwaldronによって使用されるIPアドレス(192.0.2.12)以外の範囲のIPアドレスにあります。ここでのIPアドレスは、mwaldronのIPアドレス以外のいずれかの範囲にある必要があります。

このアイデンティティ・マップにより、ユーザーが正しいIPアドレスからログインすると、Oracle Database VaultではHIGHLY SECURE INTERNAL NETWORKアイデンティティにより、その接続がセキュアであると判断する、という条件が作成されます。しかし、ユーザーが192.0.2.5未満または192.0.2.20より大きいIPアドレスからログインすると、NO SECUREアイデンティティにより、その接続はセキュアではないと判断されます。

6. 「OK」をクリックして「ファクタの編集: Domain」ページに戻り、再び「OK」をクリックして「ファクタ」ページに戻ります。

7. ファクタ・アイデンティティをテストします。

最初に、SQL*Plusにユーザーmwaldronとして接続しますが、データベース・インスタンスは指定しません。

CONNECT mwaldron
Enter password: password

SELECT DVF.F$CLIENT_IP FROM DUAL;

次のような出力結果が表示されます。

F$CLIENT_IP
-------------------------------------

続いて次のように入力します。

SELECT DVF.F$DOMAIN FROM DUAL;

次のような出力結果が表示されます。

F$DOMAIN
-------------------------------------
NOT SECURE

ユーザーmwaldronはデータベース・インスタンスに直接接続していないので、Oracle Database Vaultではユーザーの接続元であるIPアドレスが認識されません。この場合、Oracle DatabaseではIPCプロトコルを使用して、IP値をNULLに設定する接続を実行します。したがって、この接続のアイデンティティはNOT SECUREに設定されます。

ここで、データベース・インスタンス(たとえば、orcl)を指定してSQL*Plusに接続し、再びファクタ・アイデンティティを確認します。

CONNECT mwaldron@orcl
Enter password: password

SELECT DVF.F$CLIENT_IP FROM DUAL;

次のような出力結果が表示されます。

F$CLIENT_IP
-------------------------------------
192.0.2.12

続いて次のように入力します。

SELECT DVF.F$DOMAIN FROM DUAL;

次のような出力結果が表示されます。

F$DOMAIN
-------------------------------------
HIGHLY SECURE INTERNAL NETWORK

ユーザーmwaldronはorclデータベース・インスタンスに接続しているので、そのIPアドレスが認識されます。これはデータベースでTCPプロトコルが使用されていて、ホストIP値を適切に移入できるようになったからです。IPアドレスは正しい範囲内にあるため、ファクタ・アイデンティティはHIGHLY SECURE INTERNAL NETWORKに設定されます。

手順4: 時間を設定するルール・セットの作成およびファクタ・アイデンティティの選択

1. Oracle Database Vaultで、「管理」ページに戻ります。

2. 「ルール・セット」を選択します。

3. 「ルール・セット」ページで「作成」を選択します。

4. 「ルール・セットの作成」ページで、次の設定を入力します。

- 名前: Internal DBA Standard Working Hoursと入力します。

- ステータス: 「有効」を選択します。

- 評価オプション: 「すべてTrue」を選択します。

残りの設定はデフォルトのままにします。

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

6. 「ルール・セット」ページで、Internal DBA Standard Working Hoursルール・セットを選択し、「編集」を選択します。

7. 「ルール・セットの編集: Internal DBA Standard Working Hours」ページの「ルール・セットに関連付けられたルール」で、「作成」を選択します。

8. 「ルールの作成」ページで、次のルールを作成します。

- 名前: Internal DBA
ルール式: DVF.F$SESSION_USER='MWALDRON'

(ユーザー名を含む式を作成する場合、ユーザー名は大文字で入力します。データベースではユーザー名が大文字で格納されるためです。)

- 名前: Internal Network Only
ルール式: DVF.F$DOMAIN='HIGHLY SECURE INTERNAL NETWORK'

- 名前: Week Day
ルール式: TO_CHAR(SYSDATE, 'D') BETWEEN '2' AND '6'

- 名前: Week Working Day Hours
ルール式: TO_CHAR(SYSDATE, 'HH24') BETWEEN '08' AND '19'

9. 「OK」をクリックして「ルール・セット」ページに戻ります。

手順5: ルール・セットを使用するコマンド・ルールの作成

1. Oracle Database Vault Administratorで、「管理」ページに戻ります。

2. 「コマンド・ルール」を選択し、「コマンド・ルール」ページで「作成」を選択します。

3. 「コマンド・ルールの作成」ページで、次の設定を入力します。

- コマンド: リストから「CREATE TABLE」を選択します。

- ルール・セット: リストから「Internal DBA Standard Working Hours」を選択します。

残りの設定はデフォルトのままにします。

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

手順6: ファクタ・アイデンティティの設定のテスト

システム・クロックを再設定して、mwaldron管理ユーザーとしてログインし、表を作成することにより、設定をテストします。

1. システム時間を午後9時に設定します。
UNIX: rootとしてログインし、dateコマンドを使用して時間を設定します。たとえば、今日の日付が2011年12月14日だとすると、次のように入力します。

su root
Password: password

date --set="14 DEC 2011 21:00:00"

Windows: 通常画面の右下隅にある時計アイコンをダブルクリックします。「日付と時刻のプロパティ」ウィンドウで、時刻を午後9時に設定し、「OK」をクリックします。

2. SQL*Plusで、ユーザーmwaldronとして接続し、表の作成を試行します。次の文で、orclを使用するデータベース・インスタンスの名前に置き換えます。

CONNECT mwaldron@orcl
Enter password: password

CREATE TABLE TEST (num number);

次のような出力結果が表示されます。

ORA-47400: Command Rule violation for create table on MWALDRON.TEST

ユーザーmwaldronは勤務時間外に表を作成するため、Database Vaultにより阻止されます。

3. システム時間をローカル時間に再設定します。

4. SQL*Plusで、ユーザーmwaldronとして、表の作成を再試行します。

CREATE TABLE TEST (num number);

Table created.

DROP TABLE TEST;
Table dropped.

ここで、ユーザーmwaldronはローカル時間に、HIGHLY SECURE INTERNAL NETWORKアイデンティティに関連付けられたIPアドレスから作業を行っているので、表を作成できます。

5. ユーザーmwaldronとして再接続し、ここで接続コマンドにデータベース・インスタンス名を追加せずに、再び表を作成してみます。

CONNECT mwaldron
Enter password: password

CREATE TABLE TEST (num number);

次のような出力結果が表示されます。

ORA-47400: Command Rule violation for create table on MWALDRON.TEST

ユーザーmwaldronは正しい時間に表を作成しようとしていますが、orclデータベース・インスタンスに直接ログインしていないため、作成できません。Oracle Database Vaultでは、ユーザーがNOT SECUREアイデンティティを使用しているものと判断し、アクセスを拒否します。

手順7: このチュートリアルのコンポーネントの削除

1. DV_ACCTMGRユーザーとしてSQL*Plusにログインし、ユーザーmwaldronを削除します。

sqlplus amalcolm_dvacctmgr
Enter password: password

DROP USER mwaldron CASCADE;

2. CREATE TABLEコマンド・ルールを削除します。
「管理」ページに戻り、「コマンド・ルール」を選択します。CREATE TABLEコマンド・ルールを選択して、「削除」を選択します。「確認」ページで「はい」を選択します。

3. Internal DBA Standard Working Hoursルール・セットを削除します。
Oracle Database Vault Administratorの「管理」ページで、「ルール・セット」を選択します。「ルール・セット」ページで、Internal DBA Standard Working Hoursルール・セットを選択し、「削除」を選択します。「確認」ページで「はい」を選択します。

4. SQL*Plusで、Internal DBA Standard Working Hoursルール・セットに関連付けられたルールを削除します。

CONNECT lbrown_dvowner
Enter password: password

EXEC DBMS_MACADM.DELETE_RULE('Internal DBA');
EXEC DBMS_MACADM.DELETE_RULE('Internal Network Only');
EXEC DBMS_MACADM.DELETE_RULE('Week Day');
EXEC DBMS_MACADM.DELETE_RULE('Week Day Working Hours');
COMMIT;

5. DomainファクタからHIGHLY SECURE INTERNAL NETWORKおよびNOT SECUREファクタ・アイデンティティを削除します。
「管理」ページに戻り、「ファクタ」を選択します。Domainファクタを選択して「編集」を選択し、「アイデンティティ」でHIGHLY SECURE INTERNAL NETWORKおよびNOT SECUREファクタ・アイデンティティを削除します。「確認」ページで「はい」を選択します。

ファクタ設計のガイドライン

次に示すファクタ設計のガイドラインに従ってください。

- セキュリティまたは外部システムからのセッションに関するその他のコンテキスト情報を統合するには、UTL_TCP、UTL_HTTP、DBMS_LDAPおよびDBMS_PIPEなどのOracleユーティリティ・パッケージを使用できます。

- ファクタの識別が「ファクタによる識別」に設定されている場合は、取得メソッドを指定しないでください。取得メソッドが必要なのは、ファクタを「メソッド」または「定数」に設定した場合のみです。

- ファクタに割当てルール・セットがある場合は、検証メソッドの使用を検討します。これにより、無効なアイデンティティが発行されないことを検証できます。

- 指定されている値は、クライアント・ソフトウェアが信頼されていて、クライアント・ソフトウェアからの通信チャネルが安全であることがわかっている場合にのみ信頼できるため、クライアント指定のProgram、OS Userおよびその他のファクタは注意して使用します。

- 時間ベースのファクタなど、同じセッション内のある起動と次の起動で、取得メソッドによって返される値が変わる可能性がある場合には、「アクセス」評価オプションのみを指定します。

- 従来のSQLおよびPL/SQLの最適化技術を使用して、ファクタ取得メソッドに使用されるファンクションの内部ロジックを最適化します。パフォーマンスおよび最適化の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

- 取得メソッドによって返される離散値がわかっている場合は、各値にアイデンティティを定義し、信頼レベルを割り当てられるようにします。ファクタに基づくアプリケーション・ロジックに信頼レベルを使用するにつれ、信頼レベルによりファクタに値が追加されます。

- 通常、より多くのファクタに基づくセキュリティ・ポリシーは、少ないファクタに基づくセキュリティ・ポリシーよりも強力です。別のファクタによって識別される新しいファクタを作成し、アイデンティティ・マップを使用してファクタの組合せを論理グループに保存できます。これにより、ファクタをOracle Label Securityラベルと統合する際の、親ファクタのラベル付けもより簡単になります。(詳細は、「Oracle Database VaultとOracle Label Securityの統合」を参照してください。)

- Oracle Label Securityを統合する際は、ファクタとラベル付けされているファクタよりも、自己とラベル付けされているファクタを構成してデバッグする方が簡単です。

- 1つ以上のセキュリティ、エンドユーザーまたは環境属性を関連付けられたデータベース・セッションで使用できるように、それらの属性を渡すデータベース・クライアント・アプリケーションを設計できます。これを行うには、属性ごとに1つのファクタを作成し、割当てルール・セットを使用してこれらの属性が割り当てられる場合(特定のWebアプリケーションを指定された名前付きアプリケーション・サーバー・コンピュータで使用するときのみ、など)を制御します。この方法で使用されるOracle Database Vaultファクタは、OracleプロシージャDBMS_SESSION.SET_IDENTIFIERに非常によく似ていますが、設定可能な場合を制御する機能も含まれています。DBMS_SESSIONパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

ファクタのパフォーマンスへの影響

各ファクタには、検証メソッドや信頼レベルのような処理される要素があります。セッションによって評価されるDatabase_HostnameおよびProxy_Userのようなファクタの場合は、Oracle Database Vaultによりセッションの初期化中にこのプロセスが実行され、その値に対する後続のリクエスト用に結果がキャッシュされます。

「デフォルトのファクタ」に示されているデフォルトの17のファクタは、典型的なセキュリティ・ポリシーで使用される可能性が高いためキャッシュされます。ただし、ルール・セットやその他のコンポーネントなどで5つのファクタしか使用しない場合、別のことに使用できるリソースが残りのファクタにより消費されます。このような場合は、不要なファクタを削除する必要があります。(Oracle Database Vaultでは、これらのファクタを内部的に使用しないため、不要な場合は削除できます。)

ユーザー数が多い場合やアプリケーション・サーバーで接続の作成や切断を頻繁に行う場合、使用されるリソースがシステムのパフォーマンスに影響を与える可能性があります。不要なファクタは削除できます。

Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、StatspackおよびTKPROFなどのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。StatspackおよびTKPROFユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。

関連するレポートおよびデータ・ディクショナリ・ビュー

表7-1に、ファクタおよびそのアイデンティティの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表7-1 ファクタおよびアイデンティティに関連するレポート

レポート

説明

「「ファクタの監査」レポート」

評価に失敗したファクタの検出など、ファクタが監査されます。

「「ファクタ構成の問題」レポート」

無効なルール・セットまたは不完全のルール・セットなどの構成問題の表示、またはファクタに影響を与える可能性のある問題の監査が行われます。

「「アイデンティティのないファクタ」レポート」

アイデンティティが割り当てられていないファクタが表示されます。

「「アイデンティティ構成の問題」レポート」

無効なラベル・アイデンティティがあるファクタ、またはアイデンティティがマップされていないファクタが表示されます。

「「ルール・セット構成の問題」レポート」

ルールが定義されていないか、有効ではなく、それらを使用するファクタに影響を与える可能性があるルール・セットが表示されます。

表7-2に、既存のファクタおよびファクタ・アイデンティティに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表7-2 ファクタおよびファクタ・アイデンティティに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー

説明

「DVSYS.DBA_DV_FACTORビュー」

現行のデータベース・インスタンス内の既存のファクタが表示されます。

「DVSYS.DBA_DV_FACTOR_LINKビュー」

子ファクタの関連によりアイデンティティが決定される各ファクタの関係が表示されます。

「DVSYS.DBA_DV_FACTOR_TYPEビュー」

システムで使用されているファクタ・タイプの名前および説明が表示されます。

「DVSYS.DBA_DV_IDENTITYビュー」

各ファクタのアイデンティティが表示されます。

「DVSYS.DBA_DV_IDENTITY_MAPビュー」

各ファクタのアイデンティティのマップが表示されます。

8 Oracle Database Vaultのセキュア・アプリケーション・ロールの構成

この章の内容は次のとおりです。

- Oracle Database Vaultのセキュア・アプリケーション・ロールの概要

- セキュア・アプリケーション・ロールの作成および編集

- セキュア・アプリケーション・ロールの保護

- セキュア・アプリケーション・ロールの削除

- セキュア・アプリケーション・ロールの動作

- チュートリアル: Database Vaultセキュア・アプリケーション・ロールによるアクセス権限の付与

- セキュア・アプリケーション・ロールのパフォーマンスへの影響

- 関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database Vaultのセキュア・アプリケーション・ロールの概要

Oracle Database Vaultでは、Oracle Database Vaultルール・セットで有効にするセキュア・アプリケーション・ロールを作成できます。通常のOracle Databaseセキュア・アプリケーション・ロールはカスタムPL/SQLプロシージャによって有効になります。セキュア・アプリケーション・ロールは、ユーザーによるアプリケーション外からのデータへのアクセスを阻止します。これにより、ユーザーはロールに付与されているアプリケーション権限のフレームワーク内での作業を強制されます。

ルール・セットを基準にしてロールのデータベース・アクセスを行う利点は、データベース・セキュリティ・ポリシーをすべてのアプリケーションに保存するのではなく、中央の1つの場所に保存できることです。ルール・セットに基づいたロールにより、一貫性と柔軟性を兼ね備えたメソッドを作成し、ロールが提供するセキュリティ・ポリシーを実行できます。この方法では、アプリケーション・ロールのセキュリティ・ポリシーを更新する必要がある場合、1つの場所、つまりルール・セットで行うことができます。さらに、ユーザーがどのようにしてデータベースに接続しても、ルール・セットがロールにバインドされているため、結果は同じです。ユーザーは、ロールを作成して、それをルール・セットに関連付けるのみです。関連付けられているルール・セットでは、ロールの有効化を試行するユーザーが検証されます。

Oracle Database Vaultに作成するセキュア・アプリケーション・ロール上でレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してセキュア・アプリケーション・ロールを構成する方法を説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してセキュア・アプリケーション・ロールを構成するには、次の章を参照してください。

- 第12章「DBMS_MACADMパッケージの使用方法」

- 第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」

セキュア・アプリケーション・ロールの作成および編集

次の手順に従います。

1. ユーザーにロールの有効化を許可または禁止する条件を設定する1つ以上のルールが含まれるルール・セットを作成します。
ルール・セットの基礎となるルールを作成する場合、ルールでロールの有効化を試行するユーザーを検証する必要があります。ルールで、ログインを試行するユーザーを検証する必要があります。ルール・セットの詳細は、第5章「ルール・セットの構成」を参照してください。

2. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

3. 「管理」ページの「Database Vault機能管理」で、「セキュア・アプリケーション・ロール」をクリックします。

4. 「セキュア・アプリケーション・ロール」ページで、次のようにします。

- 新しいセキュア・アプリケーション・ロールを作成するには、「作成」をクリックします。

- 既存のセキュア・アプリケーション・ロールを編集するには、リストからセキュア・アプリケーション・ロールを選択して「編集」をクリックします。
既存のセキュア・アプリケーション・ロールを変更できるのは、それがOracle Database Vaultで作成された場合のみです。Oracle Database Vault以外を使用して作成されたセキュア・アプリケーション・ロールやデータベース・ロールは変更できません。既存のOracle Databaseロールを変更してOracle Database Vaultで使用できるようにする場合は、Oracle Database Vaultで新しいセキュア・アプリケーション・ロールを作成し、既存のロールにそのセキュア・アプリケーション・ロールを付与します。たとえば、SQL*Plusでは次のようにします。

GRANT myExistingDBrole TO myDVrole;

新しいセキュア・アプリケーション・ロールを作成したら、この新しいロールを使用するようコードを変更する必要があります。これを実行するには、アプリケーション・コードにDBMS_MACSEC_ROLES.SET_ROLEを使用します。SET_ROLEファンクションの詳細は、「SET_ROLEプロシージャ」を参照してください。

5. 「ロールの作成」(または「ロールの編集」)ページで、次の設定を入力して「OK」をクリックします。

- 一般

- ルール・セット

一般

次の設定を入力します。

- ロール: 空白は使用せず、30文字以内の名前を入力します。必須ではありませんが、ロール名は大文字で入力することをお薦めします。この名前が、『Oracle Database SQL言語リファレンス』で説明されている、CREATE ROLE文を使用したロール作成の標準のOracleネーミング規則に準拠していることを確認してください。この属性は必須です。

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にセキュア・アプリケーション・ロールを有効または無効にします。デフォルトは「有効」です。この属性は必須です。

- 有効: 使用できるようにロールを有効にします。すなわち、ユーザーはDBMS_MACSEC_ROLES.SET_ROLEファンクションを呼び出してロールの有効化を試行できます。ロールを有効化できるかどうかは、関連付けられているルール・セットの評価結果によって決まります。
このファンクションの詳細は、「SET_ROLEプロシージャ」を参照してください。

- 無効: 使用できないようにロールを無効にします。DBMS_MACSEC_ROLES.SET_ROLEファンクションでロールを有効化できません。

DBMS_MACSEC_ROLES.SET_ROLEファンクションの詳細は、「Oracle Database VaultのPL/SQLパッケージ」を参照してください。

ルール・セット

リストから、セキュア・アプリケーション・ロールに関連付けるルール・セットを選択します。この属性は必須です。

DBMS_MACSEC_ROLES.SET_ROLEを呼び出す際に、ルール・セットがTrueと評価されると、Oracle Database Vaultによりデータベース・セッションにそのロールが設定されます。ルール・セットがFalseと評価されると、ロールは設定されません。

ルール・セットの詳細は、第5章「ルール・セットの構成」を参照してください。

関連項目:
「Oracle Database Vaultポリシーの他のデータベースへの伝播」

セキュア・アプリケーション・ロールの保護

データベース管理権限を持っているユーザーはDROP ROLE SQL文を使用して、Oracle Database Vaultを使用して作成されたセキュア・アプリケーション・ロールの削除を試行できます。

Oracle Database Vaultセキュア・アプリケーション・ロールが作成されると、Database Vaultによりセキュア・アプリケーション・ロールがDatabase Vaultレルムに追加されます。これにより、データベース管理者によるセキュア・アプリケーション・ロールの削除を防ぐことができます。

セキュア・アプリケーション・ロールの削除

セキュア・アプリケーション・ロールを削除する前に、そのロールに関連するOracle Database Vaultビューに問い合せることで、そのセキュア・アプリケーション・ロールへの様々な参照を特定できます。詳細は、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

セキュア・アプリケーション・ロールを削除するには、次のようにします。

1. 削除するセキュア・アプリケーション・ロールを使用している可能性のあるアプリケーションを確認して変更します。

2. Oracle Database Vaultの「管理」ページで、「セキュア・アプリケーション・ロール」を選択します。

3. 「セキュア・アプリケーション・ロール」ページで、削除するロールを選択します。

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

5. 「確認」ページで「はい」をクリックします。

セキュア・アプリケーション・ロールの動作

Oracle Database Vaultによって管理されているセキュア・アプリケーション・ロールの処理フローは、次のとおりです。

1. Oracle Database Vault Administrator、またはDBMS_MACADMパッケージのセキュア・アプリケーション・ロール固有のファンクションを使用してロールを作成または更新します。
詳細は、「DBMS_MACADMのセキュア・アプリケーション・ロール・プロシージャ」を参照してください。

2. DBMS_MACSEC_ROLES.SET_ROLEファンクションを使用して、そのロールを呼び出すようにアプリケーションを変更します。
詳細は、「SET_ROLEプロシージャ」を参照してください。

3. Oracle Database Vaultにより、セキュア・アプリケーション・ロールに関連付けられているルール・セットが評価されます。
ルール・セットがTrueと評価されると、ロールが現行のセッションに対して有効になります。ルール・セットがFalseと評価されると、ロールは有効になりません。どちらの場合も、Oracle Database Vaultにより、セキュア・アプリケーション・ロールに関連付けられているルール・セットの関連する監査およびカスタム・イベント・ハンドラが処理されます。

チュートリアル: Database Vaultセキュア・アプリケーション・ロールによるアクセス権限の付与

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: OEユーザー・アカウントの有効化

- 手順3: ルール・セットとそのルールの作成

- 手順4: Database Vaultセキュア・アプリケーション・ロールの作成

- 手順5: セキュア・アプリケーション・ロールへのSELECT権限の付与

- 手順6: Database Vaultセキュア・アプリケーション・ロールのテスト

- 手順7: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

このチュートリアルでは、OEスキーマのORDERS表に対するSELECT SQL文を特定のユーザーに制限します。さらに、これらのユーザーは、リモート接続からではなく、オフィス内でのみOE.ORDERS表に対してこれらの文を実行できます。これを実行するには、Oracle Database Vaultセキュア・アプリケーション・ロールを作成し、これに関連付けたルール・セットによって実施されるチェックに合格した場合のみ、ユーザーにこのロールが有効化されるようにします。

手順1: このチュートリアル用のユーザーの作成

1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusにログインします。
次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

2. 次のユーザー・アカウントを作成します。

CREATE USER eabel IDENTIFIED BY password;
CREATE USER ahutton IDENTIFIED BY password;
CREATE USER ldoran IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

3. SYSDBA権限を使用して、SYSとして接続し、これらのユーザーにCREATE SESSION権限を付与します。

CONNECT SYS AS SYSDBA
Enter password: password

GRANT CREATE SESSION TO eabel, ahutton, ldoran;

手順2: OEユーザー・アカウントの有効化

1. DV_ACCTMGRユーザーとしてSQL*Plusに接続します。
次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

2. OEアカウントのアカウント・ステータスを確認します。

SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = 'OE';

3. OEアカウントがロックされて無効になっている場合、ロックを解除し、新しいパスワードを割り当てます。

ALTER USER OE ACCOUNT UNLOCK IDENTIFIED BY password;

手順3: ルール・セットとそのルールの作成

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「ルール・セット」を選択します。
「ルール・セット」ページが表示されます。

3. 「作成」をクリックします。
「ルール・セットの作成」ページが表示されます。

4. 次の情報を入力します。

- 名前: Can Modify Orders

- 説明: Rule set to control who can modify orders in the OE.ORDERS table

5. 残りの設定はデフォルトのままにして、「OK」をクリックします。

6. 「ルール・セット」ページで、Can Modify Ordersルール・セットを選択し、「編集」をクリックします。
「ルール・セットの編集: Can Modify Orders」ページが表示されます。

7. ページの最下部までスクロールし、「ルール・セットに関連付けられたルール」で「作成」をクリックします。

8. 次の2つのルール・セットを作成します。

ルール名

ルール式

Check IP Address

DVF.F$CLIENT_IP = '192.0.2.12'

Check Session User

DVF.F$SESSION_USER IN ('EABEL', 'AHUTTON')

Check IP Addressルールでは、123.45.67.89を自身のコンピュータのIPアドレスに置き換えます。実際には、アクセスを許可されるユーザーのすべてのIPアドレスを含む式を作成します。

これらのルールのどちらでも、デフォルト・ファクタClient_IPおよびSession_Userを使用します。これらのファクタの詳細は、「デフォルトのファクタ」を参照してください。これらのファクタが削除または変更されている場合、かわりに次のルール式を使用できます。

- Check IP Address: UPPER(SYS_CONTEXT('USERENV','IP_ADDRESS')) = '192.0.2.12'

- Check Session User: UPPER(SYS_CONTEXT('USERENV','SESSION_USER')) IN ('EABEL', 'AHUTTON')

9. Can Modify Orders表の「ステータス」設定が「有効」に、「評価オプション」が「すべてTrue」に設定されていることを確認します。

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

手順4: Database Vaultセキュア・アプリケーション・ロールの作成

1. Oracle Database Vaultで、「管理」ページに戻ります。

2. 「管理」で「セキュア・アプリケーション・ロール」を選択します。
「セキュア・アプリケーション・ロール」ページが表示されます。

3. 「作成」をクリックします。
「ロールの作成」ページが表示されます。

4. 「ロール」ボックスで、ORDERS_MGMTと入力し、ロールに名前を付けます。

5. 「ルール・セット」で、「Can Modify Orders」を選択します。

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

この段階で、Database Vaultセキュア・アプリケーション・ロールとそれに関連付けられたルール・セットが作成されますが、ロールにはまだ権限がありません。

手順5: セキュア・アプリケーション・ロールへのSELECT権限の付与

1. ユーザーOEとしてSQL*Plusに接続します。

CONNECT OE
Enter password: password

2. ORDERS_MGMT Database Vaultセキュア・アプリケーション・ロールにSELECT権限を付与します。

GRANT SELECT ON ORDERS TO ORDERS_MGMT;

手順6: Database Vaultセキュア・アプリケーション・ロールのテスト

1. SQL*Plusで、ユーザーeabelとしてデータベースに直接接続します。

CONNECT eabel@orcl
Enter password: password

orclを使用するデータベース・インスタンスの名前に置き換えます。

2. ORDERS_MGMTロールを設定します。

EXEC DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');

通常、このコールはユーザーがログインするアプリケーションに埋め込みます。

3. OE.ORDERS表から選択します。

SELECT COUNT(*) FROM OE.ORDERS;

次のような出力結果が表示されます。

COUNT(*)
----------
105

ユーザーeabelは、正しいIPアドレスからデータベースに直接ログインし、有効セクション・ユーザーとしてリストにあるため、OE.ORDERS表から選択できます。ユーザーahuttonが同様にSQL*Plusにログインした場合も、OE.ORDERS表から選択できます。

4. データベース・インスタンスを指定せずに、ユーザーeabelとして再接続し、再びOE.ORDERS表からの選択を試行します。

CONNECT eabel
Enter password: password

EXEC DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');

次のような出力結果が表示されます。

Error at line 1:
ORA-47305: Rule Set Violation on SET ROLE (Can Modfiy Orders)
...

続いて次のように入力します。

SELECT COUNT(*) FROM OE.ORDERS;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-00942: table or view does not exist

ユーザーeabelは、有効なユーザーであっても、ルール・セットのCheck IP Addressルールに違反しているため、ORDERS_MGMTロールを付与されません。IPアドレスが認識される唯一の方法は、ユーザーeabelが手順1で行ったように、データベース・インスタンスを指定して接続することです。(これがどのように機能するかは、第7章の「手順3: Domainファクタ・アイデンティティのClient_IPファクタへのマップ」、手順7を参照してください。)

5. ユーザーldoranとして接続し、次の文を入力します。

EXEC DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');
SELECT COUNT(*) FROM OE.ORDERS;

ユーザーldoranは有効なユーザーではないので、ORDERS_MGMTロールを付与されません。したがって、OE.ORDERS表から選択できません。

手順7: このチュートリアルのコンポーネントの削除

1. DV_OWNERまたはDV_ADMINユーザーとしてSQL*Plusにログインします。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

2. ORDERS_MGMTセキュア・アプリケーション・ロールを削除します。

EXEC DBMS_MACADM.DELETE_ROLE('ORDERS_MGMT');

3. Can Modify Ordersルール・セットを削除するために、次のコマンドを示した順序で入力します。

EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Can Modify Orders', 'Check IP Address');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('Can Modify Orders', 'Check Session User');
EXEC DBMS_MACADM.DELETE_RULE('Check IP Address');
EXEC DBMS_MACADM.DELETE_RULE('Check Session User');
EXEC DBMS_MACADM.DELETE_RULE_SET('Can Modify Orders');
COMMIT;

4. Database Vaultアカウント・マネージャとして接続し、ユーザーを削除します。
次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

DROP USER eabel;
DROP USER ahutton;
DROP USER ldoran;

5. 必要がなければ、OEユーザー・アカウントをロックし、無効にします。

ALTER USER OE ACCOUNT LOCK PASSWORD EXPIRE;

セキュア・アプリケーション・ロールのパフォーマンスへの影響

Oracle Enterprise Manager(デフォルトでOracle DatabaseとともにインストールされるOracle Enterprise Manager Database Controlを含む)、StatspackおよびTKPROFなどのツールを実行してシステム・パフォーマンスを確認できます。Oracle Enterprise Managerの詳細は、Oracle Enterprise Managerのドキュメント・セットを参照してください。Database Controlの詳細は、オンライン・ヘルプを参照してください。StatspackおよびTKPROFユーティリティについては、『Oracle Databaseパフォーマンス・チューニング・ガイド』で説明されています。

関連するレポートおよびデータ・ディクショナリ・ビュー

表8-1に、Oracle Database Vaultセキュア・アプリケーション・ロールの分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表8-1 セキュア・アプリケーション・ロールに関連するレポート

レポート

説明

「「セキュア・アプリケーション・ロールの監査」レポート」

Oracle Database Vaultセキュア・アプリケーション・ロールを有効にする操作によって生成された監査レコードが表示されます。

このタイプの監査レコードを生成するには、ロールに関連付けられているルール・セットの監査を有効にします。

「「セキュア・アプリケーション構成の問題」レポート」

存在しないデータベース・ロールや、不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。

「「ルール・セット構成の問題」レポート」

ルールが定義されていないか、有効ではなく、それらを使用するセキュア・アプリケーション・ロールに影響を与える可能性のあるルール・セットが表示されます。

「強力なデータベース・アカウントおよびロールのレポート」

強力な権限のあるデータベース・アカウントおよびロールに関する情報が示されます。

DVSYS.DBA_DV_ROLEデータ・ディクショナリ・ビューを使用すれば、権限管理で使用されるOracle Database Vaultセキュア・アプリケーション・ロールを検索できます。詳細は、「DVSYS.DBA_DV_ROLEビュー」を参照してください。

9 Oracle Database Vaultとその他のOracle製品の統合

この章の内容は次のとおりです。

- Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合

- Oracle Database Vaultと透過的データ暗号化の統合

- Oracle Virtual Private Databaseへのファクタの追加

- Oracle Database VaultとOracle Label Securityの統合

注意:
Oracle Data GuardでOracle Database Vaultを使用する場合は、My Oracle Supportでノート754065.1を参照してください。My Oracle Supportには、次のWebサイトからアクセスできます。
https://support.oracle.com

Oracle Database Vaultとエンタープライズ・ユーザー・セキュリティの統合

Oracle Database Vaultは、Oracle Enterprise User Securityと統合できます。エンタープライズ・ユーザー・セキュリティを使用すると、データベース・ユーザーと認可を1箇所で集中管理できます。Oracle Identity Managementと組み合せ、Oracle Database Enterprise Editionで使用できます。

通常、Oracle Database VaultをOracle Enterprise User Securityと統合するには、適切なレルムを構成して、保護の対象となるデータベース内のデータを保護します。

必要に応じてOracle Database Vaultロールを定義した後に、エンタープライズ・ユーザーに対してアクセスを許可または禁止するルール・セットを作成できます。

エンタープライズ・ユーザーの認可を構成するには、次のようにします。

1. ユーザー・アクセスを許可または禁止するルールを作成します。
「ルール・セットに追加するルールの作成」の説明に従って新しいルールを作成します。「ルールの作成」ページで、次のPL/SQLを「ルール式」フィールドに入力します。

SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'user_domain_name'

user_domain_nameをドメインに置き換えます。たとえば、次のようになります。

SYS_CONTEXT('USERENV','AUTHENTICATED_IDENTITY') = 'myserver.us.example.com'

2. このルールを新しいルール・セットに追加します。

新しいルール・セットの作成方法は、既存のルールの追加方法も含め、「ルール・セットの作成」で説明されています。

3. このルール・セットを保護対象のデータベースのレルム認可に追加します。
レルム認可の作成方法は、「レルム認可の定義」で説明されています。「認可ルール・セット」リストで、手順2で作成したルール・セットを選択します。後で、レルム認可がすべてのユーザーに適用されます。

エンタープライズ・ユーザー・セキュリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください。

Oracle Database Vaultと透過的データ暗号化の統合

データがデータベースのセキュアな範囲外にある場合のデータ保護を提供するという意味で、透過的データ暗号化はOracle Database Vaultを補完するものです。透過的データ暗号化を使用して、データベース管理者またはデータベース・セキュリティ管理者は、アプリケーション表の機密情報の列のみを暗号化したり、アプリケーション表領域全体を暗号化したりできます。アプリケーションを変更する必要はありません。透過的データ暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

ユーザーが認証チェックと認可チェックを通ると、透過的データ暗号化によりユーザーの情報は自動的に暗号化および復号化されます。このように、アプリケーションを変更しなくても暗号化を実装できます。

Oracle Database Vaultと透過的データ暗号化を組み合せて使用するには、最低でもデータベース・ディクショナリ・レルムの参加者としてSYSTEMユーザー(または透過的データ暗号化を管理する権限を持つ他のユーザー)を有効にする必要があります。ユーザーのレルムへの追加の詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

透過的データ暗号化ユーザーに適切な権限を付与したら、透過的データ暗号化を通常どおり管理でき、Database Vaultを補完するものとして使用できます。

図9-1に、Oracle Database Vaultレルムで暗号化されたデータがどのように処理されるかを示します。

図9-1 暗号化されたデータとOracle Database Vault

Oracle Virtual Private Databaseへのファクタの追加

Oracle Virtual Private Databaseにはファクタを追加できます。これを実行するには、PL/SQLファンクションまたはPL/SQL式であるポリシー述語を定義します。その結果、各ファンクションまたは式に対して、ファクタごとに作成されるPL/SQLファンクションDVF.F$を使用できます。

Oracle Virtual Private Databaseの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

Oracle Database VaultとOracle Label Securityの統合

この項の内容は次のとおりです。

- Oracle Database VaultとOracle Label Securityの統合方法

- Oracle Database VaultをOracle Label Securityとともに使用するための要件

- Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法

- チュートリアル: Oracle Database VaultとOracle Label Securityの統合

- 関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database VaultとOracle Label Securityの統合方法

Oracle Database VaultとOracle Label Securityを統合するということは、Oracle Label SecurityラベルをOracle Database Vaultファクタ・アイデンティティに割り当てることができるということです。

Oracle Label Securityでは、データベース表またはPL/SQLプログラムのレコードへのアクセスを制限できます。たとえば、アクセスを特定の管理者に限定する必要があるレコードを含むEMPLOYEE表の、HIGHLY SENSITIVEラベル(Oracle Label Securityラベル)で保護されたデータをMaryは参照できます。もう1つのラベルを、このデータへのよりオープンなアクセスを許可するPUBLICとすることができます。

Oracle Database Vaultでは、データベース・セッションが発生するネットワーク用に、次のアイデンティティを指定してNetworkというファクタを作成できます。

- Intranet: 従業員が会社のイントラネット内の場所で作業している場合に使用します。

- Remote: 従業員がVPN接続から在宅で作業している場合に使用します。

次に、両方のアイデンティティに最大のセッション・ラベルを割り当てます。次に例を示します。

- IntranetアイデンティティをOracle Label SecurityラベルのHIGHLY SENSITIVEに割り当てます。

- RemoteアイデンティティをPUBLICラベルに割り当てます。

つまり、MaryがVPN接続を使用して在宅で作業している場合は、PUBLICアイデンティティのもとに保護される、限定された表データにのみアクセスできます。しかし、職場にいる場合は、Intranetアイデンティティを使用しているため、HIGHLY SENSITIVEデータにアクセスできます。「チュートリアル: Oracle Database VaultとOracle Label Securityの統合」に、このような統合を実現する方法の例を示します。

Oracle Label Securityとの統合は、「Label Security統合の監査」レポートを使用して監査できます。詳細は、「「Label Security統合の監査」レポート」を参照してください。Oracle Database VaultはDVSYS.AUDIT_TRAIL$システム・ファイルに監査証跡を書き込みます。これについては、付録A「Oracle Database Vaultの監査」に説明されています。

Oracle Database VaultのAPIを使用してOracle Database VaultとOracle Label Securityを統合できます。詳細は、第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

Oracle Label Securityのラベル、レベルおよびポリシーの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

レポートは、Oracle Database Vault-Oracle Label Security統合で実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

Oracle Database VaultをOracle Label Securityとともに使用するための要件

Oracle Database VaultをOracle Label Securityとともに使用するには、次の要件を満たす必要があります。

- Oracle Label Securityは別個にライセンス許可されます。それを使用するためのライセンスを購入済であることを確認してください。

- Oracle Database Vaultをインストールする前に、Oracle Label Securityのインストールを済ませておく必要があります。

- Oracle Label Securityのインストール・プロセスでLBACSYSユーザー・アカウントが作成されます。DV_ACCTMGRロールを付与されているユーザーとして、このアカウントをロック解除し、新しいパスワードを付与します。次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

- Oracle Enterprise ManagerでLBACSYSユーザー・アカウントを使用する場合、SYSDBA権限を持つユーザーSYSとしてEnterprise Managerにログインし、このユーザーにSELECT ANY DICTIONARYおよびSELECT_CATALOG_ROLEシステム権限を付与します。

- 適切なOracle Label Securityポリシーが定義されていることを確認してください。詳細は、『Oracle Label Security管理者ガイド』を参照してください。

- Oracle Label SecurityポリシーをDatabase Vaultポリシーと統合する場合、Oracle Label Securityのポリシー名が24文字未満であることを確認します。ALL_SA_POLICIESデータ・ディクショナリ・ビューのPOLICY_NAME列を問い合せることで、Oracle Label Securityポリシーの名前がチェックできます。

Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法

Oracle Database Vaultでは、Oracle Label Securityポリシーに関連付けられているOracle Database Vaultファクタのラベルをマージすることによって、データベース・セッションにおける各ラベルの最大許容データをマージして、データベース・セッションの最大セキュリティ・チェックを制御します。つまり、ラベルは、データベース表の行のアクセス権限に対する識別子として機能します。ポリシーは、表の行へのアクセスを管理するラベル、ルールおよび認可と関連付けられた名前です。行ラベルおよびポリシーの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

次の手順に従って、Oracle Label Securityポリシーの最大許容データ・ラベルに含めるファクタを定義します。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. ユーザー・アカウントLBACSYSを、Label Securityポリシーが適用されているスキーマを含むレルムの所有者にします。
これにより、レルム内で保護されているすべてのデータへのアクセス権がLBACSYSアカウントに付与され、データを適切に分類できるようになります。

LBACSYSアカウントは、Oracle Universal Installerのカスタム・インストール・オプションを使用してOracle Label Security内に作成されます。Oracle Database Vaultとともに使用するOracle Label Securityポリシーを作成するには、LBACSYSを使用予定のレルムの所有者にする必要があります。詳細は、「レルム認可の定義」を参照してください。

3. レルムの参加者または所有者として(ラベル・セキュリティ・ポリシーが適用されている)スキーマの所有者を認可します。

4. 「管理」ページの「Database Vault機能管理」で、「Label Security統合」をクリックします。

5. 「Label Securityポリシー」ページで次のようにします。

- 新しいLabel Securityポリシーを登録するには、「作成」をクリックします。

- 既存のLabel Securityポリシーを編集するには、リストからLabel Securityポリシーを選択して「編集」をクリックします。

6. 次の設定を入力した後、「OK」をクリックします。

- 一般

- Label Securityポリシー・ファクタ

一般

「一般」で次の設定を入力します。

- Label Securityポリシー: リストから使用するOracle Label Securityポリシーを選択します。

- アルゴリズム: Oracle Label Securityで2つのラベルをマージしている場合、ラベルマージ・アルゴリズムを必要に応じて変更します。ほとんどの場合、「LII - 最小レベル/論理積/論理積」を選択します。この設定は、Oracle Label Security管理者が2つのラベルをマージする際に最も一般的に使用する方法です。この設定により、ラベルが異なる2つのデータ・セットを組み合せる際に必要な結果のラベルをアプリケーションで特定する必要がある場合に、最適な柔軟性が提供されます。これは、データ・ラベルが異なる行で結合を使用して問合せを実行する必要がある場合にも必要です。
これらのラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。マージ・アルゴリズムの指定にDBMS_MACADMパッケージを使用する場合、使用可能なマージ・アルゴリズムの完全なリストについては、表12-57「Oracle Label Securityマージ・アルゴリズム・コード」を参照してください。

- 初期化エラーのラベル: 必要に応じて、初期化エラーのラベルを入力します。初期化エラーに指定されたラベルは、セッションを初期化する際に構成エラーまたはランタイム・エラーが発生すると設定されます。この設定を使用してセッションにデータ・ラベルを割り当て、ポリシーによって保護されるデータに対するアクセスまたは更新を、問題が解決するまで抑制することができます。

Label Securityポリシー・ファクタ

Oracle Label Securityポリシーと関連付けるファクタを選択するには、次のようにします。

1. 「Label Securityポリシー・ファクタ」の「使用可能なファクタ」リストから、Oracle Label Securityポリシーと関連付けるファクタを選択します。

2. 「移動」をクリックして、ファクタを「選択したファクタ」リストに移動します。

注意:
[Ctrl]キーを押しながら必要な各ファクタをクリックすると、複数のファクタを選択できます。

ファクタをOracle Label Securityポリシーと関連付けると、ポリシーのラベルを使用してファクタ・アイデンティティにラベルを付けることができます。詳細は、「ファクタへのアイデンティティの追加」を参照してください。

注意:
Oracle Label Securityポリシーをファクタと関連付けない場合、Oracle Database Vaultではポリシーに対するOracle Label Securityのデフォルト動作が維持されます。

チュートリアル: Oracle Database VaultとOracle Label Securityの統合

この項の内容は次のとおりです。

- このチュートリアルの概要

- 手順1: このチュートリアル用のユーザーの作成

- 手順2: Oracle Label Securityポリシーの作成

- 手順3: OLS認可を制御するためのOracle Database Vaultルールの作成

- 手順4: ルール・セットを使用するためのALTER SYSTEMコマンド・ルールの更新

- 手順5: 認可のテスト

- 手順6: このチュートリアルのコンポーネントの削除

このチュートリアルの概要

Oracle Database VaultファクタをOracle Label SecurityおよびOracle Virtual Private Database(VPD)テクノロジとともに使用すると、機密データへのアクセスを制限できます。このようなデータを制限して、セキュリティ管理者が任意のデータ・セッションに対して定義するファクタの適切な組合せが存在する場合にのみデータベース・セッションに公開されるようにすることができます。

このチュートリアルでは、通常同じ権限を持つ2人の管理ユーザーに異なるレベルのアクセス権限を付与するために、どのようにOracle Database VaultをOracle Label Securityと統合できるかを示します。

手順1: このチュートリアル用のユーザーの作成

1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusにログインします。
次に例を示します。

sqlplus amalcolm_dvacctmgr
Enter password: password

2. 次のユーザーを作成します。

CREATE USER mdale IDENTIFIED BY password;
CREATE USER jsmith IDENTIFIED BY password;

passwordをセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

3. SYSDBA権限を持つユーザーSYSとして接続し、ユーザーmdaleとユーザーjsmithに管理権限を付与します。

CONNECT SYS AS SYSDBA
Enter password: password

GRANT CREATE SESSION, DBA TO mdale, jsmith;

この段階で、ユーザーmdaleとユーザーjsmithは、同じ管理権限を持ちます。

手順2: Oracle Label Securityポリシーの作成

1. SQL*Plusで、Oracle Label Security管理者LBACSYSとして接続します。

CONNECT LBACSYS
Enter password: password

ユーザーLBACSYSがロックされて無効になっている場合、Database Vaultアカウント・マネージャとして接続し、LBACSYSアカウントのロックを解除して有効にしてから、LBACSYSとして再びログインします。

次に例を示します。

CONNECT amalcolm_dvacctmgr
Enter password: password

ALTER USER LBACSYS ACCOUNT UNLOCK IDENTIFIED BY password;

CONNECT LBACSYS
Enter password: password

2. 新規のOracle Label Securityポリシーを作成します。

EXEC SA_SYSDBA.CREATE_POLICY('PRIVACY','PRIVACY_COLUMN','NO_CONTROL');

3. PRIVACYポリシーに次のレベルを作成します。

EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',2000,'S','SENSITIVE');
EXEC SA_COMPONENTS.CREATE_LEVEL('PRIVACY',1000,'C','CONFIDENTIAL');

4. PII区分を作成します。

EXEC SA_COMPONENTS.CREATE_COMPARTMENT('PRIVACY',100,'PII','PERS_INFO');

5. ユーザーmdaleとユーザーjsmithに次のラベルを付与します。

EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','mdale','S:PII');
EXEC SA_USER_ADMIN.SET_USER_LABELS('PRIVACY','jsmith','C');

ユーザーmdaleは、PII区分を含むより機密性の高いラベル、Sensitiveを付与されます。ユーザーjsmithは、機密性の低いConfidentialラベルを取得します。

手順3: OLS認可を制御するためのOracle Database Vaultルールの作成

1. Database Vault所有者としてSQL*Plusに接続します。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

2. 次のルール・セットを作成します。

EXEC DBMS_MACADM.CREATE_RULE_SET('PII Rule Set',
'Protect PII data from privileged users','Y',1,0,2,NULL,NULL,0,NULL);

3. PII Rule Setにルールを作成します。

EXEC DBMS_MACADM.CREATE_RULE('Check OLS Factor',
'dominates(sa_utl.numeric_label(''PRIVACY''),
char_to_label(''PRIVACY'',''S:PII'')) = ''1''');

この例のように、二重引用符ではなく、必ず一重引用符を使用してください。

4. Check OLS FactorルールをPII Rule Setに追加します。

EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET('PII Rule Set',
'Check OLS Factor');

5. Check OLS Factorルールを同期化します。

EXEC DBMS_MACADM.SYNC_RULES;
COMMIT;

手順4: ルール・セットを使用するためのALTER SYSTEMコマンド・ルールの更新

1. Database Vault所有者として、ALTER SYSTEMコマンド・ルールの現行値を確認します。このコマンド・ルールは、Oracle Database Vaultインストール時のデフォルト・コマンド・ルールの1つです。

SELECT * FROM DVSYS.DBA_DV_COMMAND_RULE WHERE COMMAND = 'ALTER SYSTEM';

2. 後で元の値に戻せるように、これらの設定をメモします。
デフォルトのインストールでは、ALTER SYSTEMコマンド・ルールはAllow System Parametersルール・セットを使用し、オブジェクト所有者またはオブジェクト名がなく、有効になっています。

3. ALTER SYSTEMコマンド・ルールを更新して、PII Rule Setを含めます。

EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'PII Rule Set', '%', '%', 'Y');

このコマンドでは、PII Rule SetをALTER SYSTEMコマンド・ルールに追加し、すべてのオブジェクト所有者およびオブジェクト名に適用し、コマンド・ルールを有効にします。

手順5: 認可のテスト

1. ユーザーmdaleとしてSQL*Plusにログインします。

CONNECT mdale
Enter password: password

2. AUDIT_TRAIL初期化パラメータの現行設定を確認します。

SHOW PARAMETER AUDIT_TRAIL

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------
audit_trail                          string      DB

後で元の設定に戻せるように、これらの設定をメモします。

3. ユーザーmdaleとして、ALTER SYSTEM文を使用し、AUDIT_TRAILパラメータを変更します。

ALTER SYSTEM SET AUDIT_TRAIL=OS, EXTENDED SCOPE=SPFILE;
System altered.

ユーザーmdaleはPII区分を含むSensitiveラベルを割り当てられたので、ALTER SYSTEM文を使用して、AUDIT_TRAILシステム・パラメータを変更できます。

4. AUDIT_TRAILパラメータを、たとえば次のように元の値に戻します。

ALTER SYSTEM SET AUDIT_TRAIL=DB, EXTENDED SCOPE=SPFILE;

5. ユーザーjsmithとしてログインし、同じALTER SYSTEM文を発行します。

CONNECT jsmith
Enter password: password

ALTER SYSTEM SET AUDIT_TRAIL=OS, EXTENDED SCOPE=SPFILE;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

ユーザーjsmithはConfidentialラベルしか割り当てられていないので、ALTER SYSTEM文を実行できません。

6. ここで通常ALTER SYSTEM権限を持つユーザーSYSTEMとしてログインし、同じALTER SYSTEM文を発行します。

CONNECT SYSTEM
Enter password: password

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

SYSTEMには、もうALTER SYSTEM文を実行するのに必要な十分な権限がありません。ユーザーmdaleのように、Sensitiveラベルを割り当てられているユーザーのみが、ALTER SYSTEM文を使用できます。

手順6: このチュートリアルのコンポーネントの削除

1. Oracle Label Security管理者として接続し、ラベル・ポリシーとそのコンポーネントを削除します。

CONNECT LBACSYS
Enter password: password

EXEC SA_SYSDBA.DROP_POLICY('PRIVACY', TRUE);

2. Oracle Database Vault所有者として接続し、次のコマンドを示した順序で発行し、ALTER SYSTEMコマンド・ルールを以前の設定に戻して、ルール・セットを削除します。
次に例を示します。

CONNECT lbrown_dvowner
Enter password: password

EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'Allow System Parameters','%', '%', 'Y');
EXEC DBMS_MACADM.DELETE_RULE_FROM_RULE_SET('PII Rule Set', 'Check OLS Factor');
EXEC DBMS_MACADM.DELETE_RULE('Check OLS Factor');
EXEC DBMS_MACADM.DELETE_RULE_SET('PII Rule Set');
COMMIT;

3. Database Vaultアカウント・マネージャとして接続し、ユーザーmdaleとユーザーjsmithを削除します。

CONNECT amalcolm_dvacctmgr
Enter password: password

DROP USER mdale;
DROP USER jsmith;

関連するレポートおよびデータ・ディクショナリ・ビュー

表9-1に、Oracle Database VaultとOracle Label Securityの統合の分析に便利なOracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

表9-1 Oracle Database Vault-Oracle Label Security統合に関連するレポート

レポート

説明

「「ファクタ構成の問題」レポート」

Oracle Label Securityポリシーが存在しないファクタが表示されます。

「「アイデンティティ構成の問題」レポート」

無効なラベル・アイデンティティ(このアイデンティティのOracle Label Securityラベルが削除されていて、すでに存在しない)が表示されます。

「「セキュリティ・ポリシー除外」レポート」

EXEMPT ACCESS POLICYシステム権限が付与されているアカウントおよびロールが表示されます。この権限を持つアカウントは、すべてのVirtual Private Databaseのポリシー・フィルタと、Oracle Virtual Private Databaseを間接的に使用するOracle Label Securityポリシーを無視できます。

表9-2に、Oracle Database Vaultで使用される既存のOracle Label Securityポリシーに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表9-2 Oracle Label Securityに使用されるデータ・ディクショナリ・ビュー

データ・ディクショナリ・ビュー

説明

「DVSYS.DBA_DV_MAC_POLICYビュー」

定義されているOracle Label Securityポリシーが表示されます。

「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」

Oracle Label Securityポリシーに関連付けられているファクタが表示されます。

「DVSYS.DBA_DV_POLICY_LABELビュー」

各ポリシーのDVSYS.DBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。

10 Oracle Database Vault環境でのDBA操作

この章の内容は、次のとおりです。

- Oracle Database VaultのOracle Enterprise Managerとの使用

- Oracle Database Vault環境でのOracle Data Pumpの使用

- Oracle Database Vault環境でのデータベース・ジョブのスケジュール

- Oracle Database VaultのOracle Recovery Managerとの使用

- Oracle Database Vault環境でのOracle Streamsの使用

- Oracle Database Vault環境でのXStreamの使用

- Oracle Database Vault環境でのOracle GoldenGateの使用

- Oracle Database Vault環境でのデータ・マスキングの使用

Oracle Database VaultのOracle Enterprise Managerとの使用

この項の内容は、次のとおりです。

- Oracle Enterprise ManagerのDatabase Vault AdministratorのURLの設定

- Oracle Database Vaultポリシーの他のデータベースへの伝播

- Oracle Database Vaultポリシーに対するEnterprise Manager Grid Controlアラートの使用

- Enterprise Manager Grid ControlでのOracle Database Vault固有レポートの使用

- Oracle Database Vault環境でのDBSNMPアカウント・パスワードの変更

Oracle Enterprise ManagerのDatabase Vault AdministratorのURLの設定

特定のDatabase Vault AdministratorのURLを使用するようにDatabase ControlまたはGrid Controlを設定できます。

1. Oracle Enterprise ManagerからOracle Database Vaultホームページへのアクセス
「Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス」を参照してください。

Database VaultのURLを保存する場合:

- Database Controlの場合: DV_OWNERまたはDV_ADMINロールが付与されているだけでなく、Enterprise Managerの管理者であることも確認します。

- Grid Controlの場合: ターゲット・データベースでOPERATOR権限が付与されていることを確認します。

2. 「Database Vault Administrator URL」ページにアクセスします。
Database Vaultのホームページから、「管理」タブをクリックし、「ポリシー管理」で「Database Vault Administratorの起動」リンクをクリックします。

「Database Vault Administrator URL」ページが表示されます。

3. 「Database Vault Administrator URL」フィールドで、使用するDatabase Vault AdministratorのURLを入力します。
次に例を示します。

https://myserver.us.example.com:1148/dva

4. URLをテストするには、「テストURLの起動」ボタンをクリックします。

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

Oracle Database Vaultポリシーの他のデータベースへの伝播

Oracle Database VaultがOracle Enterprise Manager Grid Controlリリース10.2.0.5環境にインストールされている場合、Database VaultポリシーをDatabase Vaultで保護されている他のデータベースに伝播できます。Grid Controlを使用してDatabase Vaultポリシーを作成したり、Database Vault Administratorで通常提供されているアクションを実行することはできません。これらの機能を実行する場合は、Database Vault Administratorを使用します。

Oracle Database Vaultポリシーを他のデータベースに伝播するには、次のようにします。

1. Oracle Enterprise ManagerからOracle Database Vault Administratorにアクセスして、DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてDatabase Vaultにログインします。

伝播するポリシーを含むデータベースを選択したことを確認します。

「Oracle Enterprise ManagerからのOracle Database VaultページおよびDVAへのアクセス」を参照してください。

2. Database Vaultホームページから「管理」サブページを選択します。

3. 「管理」ページの「ポリシー伝播」で、「Database Vaultポリシー伝播」リンクを選択します。
「ポリシー伝播」サブページの「使用可能なポリシー」領域に、手順1で選択したデータベースに作成されたOracle Database Vaultポリシーのサマリーが表示されます。ここから、ポリシーを他のデータベースに伝播できます。

4. 「使用可能なポリシー」で、他のデータベースに伝播する各ポリシーを選択します。
デフォルトでは、すべてのポリシーが選択されています。

5. 「宛先データベース」で「追加」ボタンをクリックします。

6. 「検索と選択: Database Vaultに対応した宛先データベース」で宛先データベースを検索し、ポリシーの伝播先データベースを選択します。「選択」ボタンをクリックします。

7. 「宛先データベース」で次の処理を行います。

1. 「宛先データベースに資格証明を適用」で、伝播するポリシーを含むDatabase Vaultデータベースの管理者のユーザー名とパスワードを入力します。
この機能により、Database Vault管理者のユーザー名とパスワードが、選択したすべての宛先データベースに適用されます。

2. ポリシーの伝播先データベースを選択します。

3. 各データベースのDatabase Vault管理者のユーザー名とパスワードを入力します。

4. 「Apply」ボタンをクリックします。

8. 「伝播オプション」ページで、次のオプションのオン/オフを選択します。
シードされたレルム、コマンド・ルール、ルール・セットなどに加えられた変更は、宛先データベースに伝播されません。カスタム作成されたデータのみが伝播されます。

- 失敗時にリストアします。: ポリシーの伝播でエラーが発生した場合に、伝播がロールバックされます。つまり、宛先データベースの元のポリシーがリストアされます。このオプションを選択しない場合、宛先データベースでポリシーの伝播が続けられ、エラーは無視されます。

- ユーザー定義ポリシーが存在する場合は、伝播をスキップします。: 宛先データベースにユーザー定義ポリシーがすでにある場合、ポリシーの伝播は試行されません。このオプションを選択しない場合、ユーザー定義ポリシーが宛先データベースにあるかどうかに関係なく、既存のポリシーはすべてクリアされ、ソース・データベースのポリシーが宛先データベースに適用されます。

- Database VaultメトリックのEnterprise Managerメトリックしきい値を伝播します。: ソース・データベースにOracle Database Vaultメトリックしきい値が設定されている場合、これらのしきい値も宛先データベースに伝播されます。このオプションを選択しない場合、ポリシーのみが伝播され、Oracle Database Vaultしきい値は伝播されません。

9. 「OK」ボタンをクリックします。

10. 「確認」ウィンドウで「OK」をクリックします。
成功または失敗を示すメッセージが表示されます。伝播が成功した場合、ポリシーは宛先データベースでただちにアクティブになります。

Oracle Database Vaultポリシーに対するEnterprise Manager Grid Controlアラートの使用

Grid Controlでは、Oracle Database Vault固有のアラートが生成されます。これらのアラートを表示するには、DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールが付与されている必要があります。アラートは次のとおりです。

- Database Vaultレルム違反未遂。このアラートにより、Oracle Database Vaultセキュリティ分析者(DV_SECANALYSTロール)はDatabase Vaultデータベースでの違反試行を監視できます。アラートの影響を受けるレルムを選択し、エラー・コードを使用して様々な試行タイプに基づいてレルムをフィルタリングできます。このメトリックは、メトリックおよびポリシーの設定ページで有効化できます。デフォルトでは、レルム違反未遂は24時間ごとに収集されます。

- Database Vaultコマンド・ルール違反未遂。このアラートの機能は、対象がコマンド・ルール違反であることを除き、Database Vaultレルム違反未遂と同じです。

- Database Vaultレルム構成の問題。このメトリックは、レルムの構成を追跡し、構成が正しくない場合にアラートを生成します。このメトリックは、Oracle Database Vaultのインストール時に有効化され、デフォルトで1時間ごとにデータを収集します。

- Database Vaultコマンド・ルール構成の問題。このアラートの機能は、対象がコマンド・ルールに対する構成変更であることを除き、Database Vaultレルム構成の問題と同じです。

- Database Vaultポリシー変更。このメトリックでは、Database Vaultポリシー(レルムやコマンド・ルールに対するポリシー)に変更があると、アラートが生成されます。詳細なポリシー変更レポートが提供されます。

Enterprise Manager Grid ControlでのOracle Database Vault固有レポートの使用

Database Vaultのホームページからは、次のタイプの違反に関する情報を確認できます。

- レルムおよびコマンド・ルール違反未遂トップ5

- データベース・ユーザーおよびクライアント・ホストによる違反未遂トップ5

- 違反未遂の詳細分析の時系列グラフィック・レポート

Database Vaultレポートの完全なアクセス権を持つには、DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールが付与されたユーザーとしてDatabase Vault Administratorにログインする必要があります。

関連項目:
第18章「Oracle Database Vaultレポート」

Oracle Database Vault環境でのDBSNMPアカウント・パスワードの変更

DBSNMPユーザー・アカウントのパスワードを変更するには、あらかじめ、このアカウントからDV_MONITORロールを取り消しておく必要があります。Oracle Database Vault環境では、DBSNMPユーザー・アカウントにはDV_MONITORロールが付与されます。(DBSNMPユーザーが自分自身のパスワードを変更する場合は、DV_MONITORロールを取り消さずにすぐに変更できます。)

DBSNMPユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、SQL*Plusにログインします。

2. DBSNMPユーザー・アカウントからDV_MONITORロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、DBSNMPユーザー・アカウントのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_MONITORロールをDBSNMPユーザー・アカウントに再び付与します。

一時的にOracle Database Vaultを無効にして、ALTER USER権限を付与されているユーザーとしてログオンし、DBSNMPパスワードを変更することもできます。その後、Database Vaultを再び有効にします。詳細は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vault環境でのOracle Data Pumpの使用

この項の内容は次のとおりです。

- Oracle Database Vault環境でのOracle Data Pumpの使用について

- データベース管理者に対するOracle Data Pumpの使用の認可

- Oracle Database Vault環境でのデータのエクスポートまたはインポートのガイドライン

- Data Pumpを使用するデータベース管理者の認可の取消し

Oracle Database Vault環境でのOracle Data Pumpの使用について

Oracle Data Pumpを使用するデータベース管理者がOracle Database Vault環境でデータをエクスポートおよびインポートする場合、Oracle Data Pumpの標準の権限に加えて、Oracle Database Vault固有の認可が付与されている必要があります。(Oracle Database Vaultが有効になっている場合、レガシーのEXPとIMPユーティリティを使用できないことに注意してください。)Oracle Database Vault環境でデータ・ポンプを使用するためにユーザーの認可を確認するには、DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューを問い合せます。

付与する必要のある権限レベルは、次のシナリオによって決まります。

- データを別のスキーマにインポートするユーザーは、BECOME USERシステム権限を持つ必要があります。ユーザーに付与された権限を確認するには、USER_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。

- データベース管理者は、レルム保護なしのスキーマでデータをエクスポートまたはインポートします。この場合、Oracle Data Pumpの標準の権限のみ必要で、Oracle Database Vault権限は不要です。

- データベース管理者は、保護スキーマでデータをエクスポートまたはインポートします。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用して、このユーザーにDatabase Vault固有の権限を付与する必要があります。この認可は、EXPDPとIMPDPの両方のユーティリティに適用されます。後から、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERプロシージャを使用してこの権限を取り消すことができます。

- データベース管理者は、データベース全体の内容をエクスポートまたはインポートします。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限に加えて、このユーザーにDV_OWNERロールを付与する必要があります。インポート操作の場合、このユーザーはBECOME USER権限を持つ必要があります。

関連項目:
「DVSYS.DBA_DV_DATAPUMP_AUTHビュー」

データベース管理者に対するOracle Data Pumpの使用の認可

データベース管理者がOracle Database Vault環境でData Pumpを使用することを認可するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。

2. 権限を付与するユーザーが、Oracle Data Pumpの使用に必要なEXP_FULL_DATABASEおよびIMP_FULL_DATABASEロールを付与されていることを確認します。

SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS
WHERE GRANTED_ROLE LIKE '%FULL%';

3. このユーザーにOracle Database Vaultに対する権限を付与します。
たとえば、Data Pumpユーザーdp_mgrにデータベース全体のオブジェクトをエクスポートおよびインポートする権限を付与するには、次のようになります。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('dp_mgr');

オプションで、dp_mgrのアクティビティを特定のスキーマまたは表に制限することもできます。次に例を示します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

このプロシージャの詳細は、「AUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャの実行後、権限は、「デフォルトのルール・セット」に説明されている「Oracle Data Pump操作を許可」ルール・セットにルールとして格納されます。ユーザーの権限を確認する場合は、DVSYS.DBA_DV_RULE_SETビューに問い合せてこのルール・セットを参照できます。

4. このユーザーがインポートするオブジェクトが、レルムで保護されている他のオブジェクトに関連付けられている場合、ユーザーによるそのレルムへのアクセスを認可します。

たとえば、ユーザーdp_mgrがSCOTTスキーマをエクスポートするとします。ただし、SCOTTスキーマはSYSMAN.AQ$_MGMT_NOTIFY_QTABLE_S表に関連付けられていて、SYSMANスキーマはレルムで保護されています。このため、ユーザーdp_mgrがSCOTTスキーマをエクスポートするには、次のような認可が必要です。

まず、このユーザーがレルム参加者であることを確認します。次に例を示します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name   => 'SYSMAN Realm',
grantee      => 'DP_MGR',
auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
END;
/

次に、次のプロシージャを実行して。ユーザーがOracle Data Pump操作を行うことを認可します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR','SYSMAN');

5. データベース全体をエクスポートする必要がある場合は、ユーザーにDV_OWNERロールを付与します。

GRANT DV_OWNER TO dp_mgr;

6. DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せて、「Oracle Data Pump操作を許可」ルール・セットが有効化されていることを確認してください。

SELECT ENABLED FROM DVSYS.DBA_DV_RULE_SET
WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation';

Oracle Database Vault環境でのデータのエクスポートまたはインポートのガイドライン

Data Pumpを使用するデータベース管理者に必要な認可を行うと、ユーザーは必要なエクスポートまたはインポート操作を実行できるようになります。作業を開始する前に、次のガイドラインに従う必要があります。

- データベースのデータファイルの完全バックアップを作成します。これにより、新しくインポートしたデータが気に入らなかった場合、容易にデータベースを元の状態に戻すことができます。このガイドラインは、侵入者が自分のポリシーを使用するようにデータ・ポンプ・エクスポート・データを変更した場合に特に有用です。

- 複数のスキーマまたは表をエクスポートおよびインポートする方法を決定します。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャでは複数のスキーマまたは表は指定できませんが、次のいずれかの方法でこの作業を行うことできます。

- スキーマまたは表ごとに個別にDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを実行し、expdpおよびimpdpユーティリティのSCHEMASまたはTABLESパラメータで、これらのオブジェクトのリストを指定します。

- 全データベースのエクスポートまたはインポート操作を実行します。この場合、次のガイドランを参照してください。

- データベース全体のエクスポートまたはインポート操作を実行する場合は、expdpまたはimpdp FULLオプションをYに設定します。この設定により、DVSYSスキーマが取得されるため、ユーザーにDV_OWNERロールが付与されていることを確認してください。Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

- Oracle Database Vaultが有効になっている場合、ダイレクト・パス・オプション(direct=y)でレガシーのEXPユーティリティとIMPユーティリティは使用できません。

Data Pumpを使用するデータベース管理者の認可の取消し

Data Pumpを使用するデータベース管理者の認可を取り消すには、次のようにします。

1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。

REVOKE DV_OWNER FROM dp_mgr;

2. DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せて、「Oracle Data Pump操作を許可」ルール・セットで定義されているユーザーの権限をメモします。

SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET_RULE
WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation';

たとえば、ユーザーdp_mgrにデータベース全体に対してエクスポートおよびインポート操作を実行する権限を付与した場合、この権限を定義するルールが、「Oracle Data Pump操作を許可」ルール・セットのルール式のリストに表示されます。

3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERコマンドを作成します。
次に例を示します。

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');

この権限取消しが、元の権限付与アクションを補完するものであることを確認します。すなわち、最初にdp_mgrにデータベース全体に対する権限を付与した場合、次のコマンドは機能しません。

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

詳細は、「UNAUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

4. ユーザーをレルム参加者にする必要があった場合(「データベース管理者に対するOracle Data Pumpの使用の認可」のステップ4のようにSYSMAN.AQ$_MGMT_NOTIFY_QTABLE_S表オブジェクトにアクセスする場合など)、このユーザーのレルム認可を削除します。
次に例を示します。

BEGIN
DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name => 'SYSMAN Realm',
grantee    => 'DP_MGR');
END;
/

Oracle Database Vault環境でのデータベース・ジョブのスケジュール

この項の内容は次のとおりです。

- Oracle Database Vault環境でのデータベース・ジョブのスケジュールについて

- ジョブ・スケジュール管理者へのOracle Database Vaultに対する権限の付与

- ジョブ・スケジュール管理者からの権限の取消し

Oracle Database Vault環境でのデータベース・ジョブのスケジュールについて

データベース・ジョブのスケジュールを行うユーザーは、データベース・ジョブのスケジュールに必要な標準のシステム権限に加えて、Oracle Database Vault固有の権限が必要です。

付与する必要のある権限レベルは、次のシナリオによって決まります。

- 管理者が、独自のスキーマでジョブをスケジュールする場合。スキーマがレルムで保護されている場合を除き、データベース・ジョブをスケジュールする権限が付与されている管理者は、Oracle Database Vault固有の権限がなくても作業を続行できます。スキーマがレルムで保護されている場合は、このユーザーがレルムへのアクセスを許可されていることを確認してください。ユーザーにレルム認可を付与する手順は、「レルム認可の定義」を参照してください。

- 管理者は別のスキーマでジョブを実行するが、このジョブでOracle Database Vaultのレルムまたはコマンド・ルールで保護されたオブジェクトにアクセスしない場合。この場合、このユーザーには、ジョブに関連するシステム権限のみが必要で、Oracle Database Vault権限は必要ありません。

- 管理者がデータベースまたはリモート・データベースの任意のスキーマを含む、他のユーザーのスキーマでジョブを実行する場合。このジョブがOracle Database Vaultレルムまたはコマンド・ルールで保護されているオブジェクトにアクセスする場合、DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャを使用して、このユーザーにDatabase Vault固有の権限を付与する必要があります。この権限は、バックグラウンド・ジョブおよびフォアグラウンド・ジョブの両方に適用されます。フォアグラウンド・ジョブの場合、権限はジョブを作成または変更した最後のユーザーに適用されます。また、スキーマ所有者(ジョブが作成された保護スキーマ)がレルムに対して認可されていることを確認してください。
後から、DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERプロシージャを使用してこの権限を取り消すことができます。スキーマがレルムで保護されていない場合、ユーザーにDBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャを実行する必要はありません。

ジョブ・スケジュール管理者へのOracle Database Vaultに対する権限の付与

ユーザーにデータベース・ジョブをスケジュールする権限を付与する手順:

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。
これらのどちらかのロールを付与されているユーザーのみ、必要な権限を付与できます。

2. 権限を付与するユーザーに、データベース・ジョブをスケジュールするシステム権限が付与されていることを確認してください。

この権限には、CREATE JOB、CREATE ANY JOB、CREATE EXTERNAL JOB、EXECUTE ANY PROGRAM、EXECUTE ANY CLASS、MANAGE SCHEDULERが含まれます。DBAおよびSCHEDULER_ADMINロールがこれらの権限を提供しますが、Oracle Database Vaultが有効な場合、権限はこれらのロールから取り消されます。

次に例を示します。

SELECT GRANTEE, PRIVILEGE FROM DBA_SYS_PRIVS
WHERE PRIVILEGE IN ('CREATE JOB', 'CREATE ANY JOB');

3. このユーザーにOracle Database Vaultに対する権限を付与します。
たとえば、ユーザーjob_mgrにデータベースの任意のスキーマのジョブをスケジュールする権限を付与するには、次のようになります。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

オプションで、job_mgrのアクティビティを特定のスキーマに制限することもできます。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

このプロシージャの詳細は、「AUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャの実行後、権限は、「デフォルトのルール・セット」に説明されている「スケジューラ・ジョブの許可」ルール・セットにルールとして格納されます。ユーザーの権限を確認する場合は、DVSYS.DBA_DV_RULE_SETビューに問い合せてこのルール・セットを参照できます。

4. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、ユーザーに権限が付与されていることを確認してください。

SELECT GRANTEE,OBJECT_OWNER FROM DVSYS.DBA_DV_JOB_AUTH
WHERE GRANTEE = 'user_name';

ジョブ・スケジュール管理者からの権限の取消し

ユーザーからデータベース・ジョブをスケジュールする権限を取り消す手順:

1. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、「スケジューラ・ジョブの許可」ルール・セットで定義されているユーザーの権限をメモします。

SELECT GRANTEE FROM DVSYS.DBA_DV_JOB_AUTH;

たとえば、ユーザーjob_mgrにデータベース全体に対してデータベース・ジョブのスケジュールを実行する権限を付与した場合、この権限を定義するルールが、「スケジューラ・ジョブの許可」ルール・セットのルール式のリストに表示されます。

2. 手順1で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERコマンドを作成します。
次に例を示します。

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

この権限取消しが、元の権限付与アクションを補完するものであることを確認します。すなわち、最初にjob_mgrにデータベース全体に対する権限を付与した場合、次のコマンドは機能しません。

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

詳細は、「UNAUTHORIZE_SCHEDULER_USERプロシージャ」を参照してください。

Oracle Database VaultのOracle Recovery Managerとの使用

Oracle Database Vault環境ではRecovery Manager(RMAN)を使用できます。Oracle Database VaultでRMANを使用する場合の機能は、標準のOracle Database環境での機能と同じです。

RMANの詳細は、次のドキュメントを参照してください。

- 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

- 『Oracle Database Recovery Managerリファレンス』

Oracle Database Vault環境でのOracle Streamsの使用

Oracle Database Vaul環境でOracle Streamsを使用する場合、次の権限が必要です。

- Oracle Streams取得プロセスを構成するには、DV_STREAMS_ADMINロールが付与されている必要があります。詳細は、「DV_STREAMS_ADMIN Oracle Streams構成ロール」を参照してください。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのXStreamの使用

Oracle Database Vault環境でXStreamを使用する場合、次の権限が必要です。

- XStreamを構成するには、DV_XSTREAM_ADMINロールが付与されている必要があります。詳細は、「DV_XSTREAM_ADMIN XStream管理ロール」を参照してください。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのOracle GoldenGateの使用

Oracle Database Vault環境でOracle GoldenGateを使用する場合、次の権限が必要です。

- Oracle GoldenGateを構成するには、DV_GOLDENGATE_ADMINロールが付与されている必要があります。詳細は、「DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール」を参照してください。

- Oracle GoldenGateのTRANLOGOPTIONS DBLOGREADERメソッドを使用してREDOログにアクセスするには、DV_GOLDENGATE_REDO_ACCESSロールが付与されている必要があります。詳細は、「DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール」を参照してください。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください。

Oracle Database Vault環境でのデータ・マスキングの使用

この項の内容は次のとおりです。

- Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて

- データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加

- マスクする表またはスキーマへのアクセス権のユーザーへの付与

- データ・マスキングの権限を有効にするコマンド・ルールの作成

関連項目:
データ・マスキングの詳細は、『Oracle Database Real Application Testingユーザーズ・ガイド』を参照してください。

Oracle Database Vaultが有効なデータベースでのデータ・マスキングについて

Oracle Database Vaultが有効なデータベースでは、Database Vaultの認可を受けたユーザーのみがDatabase Vaultで保護されたデータベース・オブジェクトのデータをマスクできます。Database Vault以外の環境では、SELECT_CATALOG_ROLEおよびDBAロールを付与されたユーザーがデータ・マスキングを行えます。ただし、Database Vaultを使用する場合、ユーザーに追加の権限が必要です。この項では、ユーザーがDatabase Vaultで保護されたオブジェクトのデータをマスクできるようにするために使用できる3つの方法について説明します。

ユーザーに適切な権限がない場合、マスキング定義の作成時またはジョブの実行時に次のエラーが発生します。

ORA-47400: Command Rule violation for string on string

ORA-47401: Realm violation for string on string.

ORA-47408: Realm violation for the EXECUTE command

ORA-47409: Command Rule violation for the EXECUTE command

ORA-01301: insufficient privileges

データ・ディクショナリ・レルム認可へのデータ・マスキング・ユーザーの追加

Oracleデータ・ディクショナリでは、SYSおよびSYSTEMなどのOracle Databaseカタログ・スキーマへのアクセスが制御されます。(これらのスキーマの完全なリストは、「デフォルトのレルム」を参照してください。)システム権限およびデータベース管理者ロールを付与する機能も制御されます。ユーザーをデータ・ディクショナリ・レルムに追加する場合、これらのユーザーに、Oracleデータ・ディクショナリに関連付けられている権限がすでにあれば、これらのユーザーはDatabase Vault環境で同じ権限を持ちます。したがって、ユーザーをこのレルムに追加する場合、このユーザーが信頼できるユーザーであることを確認します。

次に例を示します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name   => 'Data Dictionary Realm',
grantee      => 'DBA_JSMITH',
auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
END;
/

マスクする表またはスキーマへのアクセス権のユーザーへの付与

データ・マスクする表または表のスキーマがレルム内にある場合、データ・マスキングを行うユーザーを参加者または所有者としてレルム認可に追加する必要があります。表またはスキーマに、他のレルムで保護された表内にある依存オブジェクトがある場合、それらのレルムに対する参加者または所有者認可もユーザーに付与する必要があります。

次の例では、ユーザーDBA_JSMITHに、Business Apps Realmと呼ばれるレルムで保護されたHR.EMPLOYEES表に対する認可を付与する方法を示します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name   => 'Business Apps Realm',
grantee      => 'DBA_JSMITH',
auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT;
END;
/

データ・マスキングの権限を有効にするコマンド・ルールの作成

データ・マスキングを行うには、ユーザーは、マスキング・オブジェクトに対するCREATE TABLE、SELECT TABLE、ALTER TABLEおよびDROP TABLE権限を持っている必要があります。作成する依存オブジェクトがある場合は、CREATE PACKAGE、CREATE TRIGGERなどの適切な権限を持っている必要があります。

データ・マスキングの権限を粒度レベルで制御するためのコマンド・ルールを作成できます。これを行うには、データ・マスクする必要のあるオブジェクトへのユーザー・アクセスを禁止または許可するコマンド・ルールを作成します。たとえば、ユーザーがデータ・マスキングを行うユーザーのリスト内にあるかどうかをチェックするAllow Data Maskingと呼ばれるコマンド・ルールを作成できます。ログインするユーザーがこれらのユーザーのいずれかの場合、コマンド・ルールはtrueと評価され、ユーザーは、保護されたオブジェクトに対してデータ・マスクを作成することが許可されます。

このタイプのコマンド・ルールを作成するには、次のようにします。

1. ルール・セット・ルールを作成します。
次に例を示します。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Is HDRISCOLL or DBA_JSMITH User',
rule_expr  =>'USER IN(''HDRISCOLL'',''DBA_JSMITH'')';
END;
/

2. ルール・セットを作成し、ルールを追加します。

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    => 'Allow Data Masking',
description      => 'Allows users HDRISCOLL and DBA_JSMITH access',
enabled          => 'Y',
eval_options     => 1,
audit_options    => 1,
fail_options     => 1,
fail_message     => 'You do not have access to this object.',
fail_code        => 20461,
handler_options  => 0,
is_static        => TRUE);
END;
/
BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Allow Data Masking',
rule_name     => 'Is HDRISCOLL or DBA_JSMITH User'),
rule_order    => 1);
END;
/

3. コマンド・ルールを作成し、このルールを追加します。

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE(
command         => 'CREATE TABLE',
rule_set_name   => 'Allow Data Masking',
object_owner    => 'HR',
object_name     => 'EMPLOYEES',
enabled         => DBMS_MACUTL.G_YES);
END;
/

11 Oracle Database Vaultオブジェクト

この章の内容は次のとおりです。

- Oracle Database Vaultスキーマ

- Oracle Database Vaultロール

- Oracle Database Vaultアカウント

Oracle Database Vaultスキーマ

Oracle Database Vaultオブジェクトには2つのスキーマがあり、これらのスキーマにはOracle Database Vaultの管理処理およびランタイム処理をサポートするデータベース表、順序、ビュー、トリガー、ロール、パッケージ、プロシージャ、ファンクションおよびコンテキストが含まれます。

Oracle Database Vaultには、次のスキーマがあります。

- DVSYSスキーマ: Oracle Database Vaultのスキーマおよび関連オブジェクトを所有します。

- DVFスキーマ: ファクタ・アイデンティティを取得するために作成されるOracle Database Vaultのファンクションを所有します。

DVSYSスキーマ

DVSYSスキーマには、Oracle Database Vaultデータベース・オブジェクトが含まれます。このオブジェクトは、Oracle Database Vault構成情報を格納し、Oracle Database Vaultの管理処理およびランタイム処理をサポートします。デフォルト・インストールでは、DVSYSスキーマはロックされています。DVSYSスキーマは、AUDIT_TRAIL$表も所有します。

Oracle Database Vaultでは、保護スキーマ設計を使用してDVSYSスキーマを保護します。保護スキーマ設計により、スキーマはシステム権限(SELECT ANY TABLE、CREATE ANY VIEW、DROP ANYなど)の不正使用から保護されます。

DVSYSスキーマは、Oracle Database Vaultによって次のように保護されます。

- DVSYS保護スキーマとその管理ロールは削除できません。デフォルトで、DVSYSアカウントはロックされています。

- CREATE USER、ALTER USER、DROP USER、CREATE PROFILE、ALTER PROFILE、DROP PROFILEなどの文は、DV_ACCTMGRロールを持つユーザーのみが発行できます。SYSDBAは、「アカウント/プロファイルを保守可能」ルール・セットを変更して発行できるようにした場合にかぎり、これらの文を発行できます。

- データベース定義言語(DDL)およびデータ操作言語(DML)のコマンドに対する強力なANYシステム権限は、保護スキーマではブロックされます。つまり、DVSYSスキーマのオブジェクトは、スキーマ・アカウント自体によって作成される必要があります。また、スキーマ・オブジェクトへのアクセスは、オブジェクト権限の付与により認可される必要があります。

- DVSYSスキーマのオブジェクト権限は、スキーマの管理ロールにのみ付与できます。つまり、ユーザーは、事前定義済管理ロールによってのみ保護スキーマにアクセスできます。

- スキーマの事前定義済管理ロールに対してALTER ROLE文を発行できるのは、保護スキーマのDVSYSアカウントのみです。Oracle Database Vaultの管理ロールの詳細は、「Oracle Database Vaultロール」を参照してください。

- 事前定義済ロールをADMIN OPTIONとともにユーザーに付与できるのは、保護スキーマのDVSYSアカウントのみです。つまり、ADMIN OPTIONが指定された権限受領者が、ADMIN OPTIONを指定せずにロールを別のユーザーに付与できます。

- SQL文の実行に、SYS.DBMS_SYS_SQL.PARSE_AS_USERプロシージャを保護スキーマDVSYSのかわりに使用することはできません。

注意:
データベース・ユーザーは、Oracle Database Vaultの管理ロール(たとえばDV_ADMINおよびDV_OWNER)に、追加のオブジェクト権限およびロールを付与できます。ただし、付与に必要な権限がある場合にかぎります。

DVFスキーマ

DVFスキーマは、Oracle Database VaultのDBMS_MACSEC_FUNCTION PL/SQLパッケージの所有者です。このパッケージには、ファクタ・アイデンティティを取得するファンクションが含まれます。Oracle Database Vaultのインストール後、DVFアカウントをより確実に保護するために、このアカウントがインストール処理によってロックされます。新しいファクタを作成すると、Oracle Database Vaultでそのファクタの取得ファンクションが新たに作成され、このスキーマに保存されます。

Oracle Database Vaultロール

この項では、Oracle Database Vaultに用意されているデフォルト・ロールについて説明します。次のトピックが含まれています。

- Oracle Database Vaultロールの概要

- DV_OWNER Database Vault所有者ロール

- DV_ADMIN Database Vault構成管理者ロール

- DV_MONITOR Database Vault監視ロール

- DV_SECANALYST Database Vaultセキュリティ分析者ロール

- DV_AUDIT_CLEANUP監査証跡クリーンアップ・ロール

- DV_STREAMS_ADMIN Oracle Streams構成ロール

- DV_XSTREAM_ADMIN XStream管理ロール

- DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール

- DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール

- DV_PATCH_ADMIN Database Vaultデータベース・パッチ・ロール

- DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール

- DV_REALM_OWNER Database VaultレルムDBAロール

- DV_REALM_RESOURCE Database Vaultアプリケーション・リソース所有者ロール

- DV_PUBLIC Database Vault PUBLICロール

関連項目:

- 「職務分離のガイドライン」

- 「Oracle Database管理アカウントの管理」

Oracle Database Vaultロールの概要

Oracle Database Vaultでは、Oracle Database Vaultの管理に必要な一連のロールが提供されます。

図11-1は、これらのロールがデータベース内の職務分離の第1段階を実現するために設計されていることを示しています。これらのロールをどのように使用するかは、会社の要件によって異なります。

関連項目:
ロール管理の一般的なガイドラインについては、『Oracle Databaseセキュリティ・ガイド』を参照してください。

図11-1 Oracle Database Vaultロールの分類方法

注意:
追加のオブジェクト権限およびロールをOracle Database Vaultロールに付与して、権限の範囲を拡大できます。たとえば、SYSDBAは、オブジェクトがDVSYSスキーマまたはレルムになければ、オブジェクト権限をOracle Database Vaultロールに付与できます。

表11-1に、Oracle Database Vaultロールで使用できる権限をまとめています。(DV_PATCH_ADMIN、DV_STREAMS_ADMIN、DV_XSTREAM、DV_GOLDENGATE_ADMINおよびDV_GOLDENGATE_REDO_ACCESSロールはシステム権限がないため、入っていません。)

表11-1 Oracle Database Vaultロールの権限

権限

DV_OWNER

DV_ADMIN

DV_MONITOR

DV_SECANALYST

DV_ACCTMGR

DV_REALM_OWNER

DV_REALM_RESOURCE

DV_PUBLIC

DV_AUDIT_CLEANUP

DVSYSスキーマ, EXEC

あり脚注1

あり脚注2

なし

なし

なし

なし

なし

なし

なし

DVSYSパッケージ, EXECUTE

あり

あり

なし

なし

なし

なし

なし

なし

なし

DVSYSスキーマ, SELECT

あり

あり

あり

あり(一部のDatabase Vaultビュー)脚注3

なし

なし

なし

なし脚注4

あり(一部のDatabase Vault表およびビュー)脚注5

DVSYSスキーマ、オブジェクトの権限の付与

なし

なし

なし

なし

なし

なし

なし

なし

なし

DVFスキーマ, EXECUTE

あり

なし

なし

なし

なし

なし

なし

なし

なし

DVFスキーマ, SELECT

なし

なし

なし

あり

なし

なし

なし

なし

なし

Database Vaultの監視

あり

あり

あり

あり

なし

なし

なし

なし

なし

Database Vaultレポートの実行

あり

あり

なし

あり

なし

なし

なし

なし

なし

SYSスキーマ, SELECT

あり

なし

あり

あり(DV_OWNERおよびDV_ADMINと同じシステム・ビュー)

なし

なし

なし

なし

なし

SYSMANスキーマ, SELECT

なし

なし

なし

あり(一部)

なし

なし

なし

なし

なし

CREATE、ALTER、DROPユーザー・アカウントおよびプロファイル脚注6

なし

なし

なし

なし

あり

なし

なし

なし

なし

レルムを定義するスキーマ内のオブジェクトの管理脚注7

なし

なし

なし

なし

なし

あり脚注8

なし

なし

なし

RESOURCEロール権限脚注9

なし

なし

なし

なし

なし

なし

あり

なし

なし

脚注1 すべてのOracle Database Vault PL/SQLパッケージに対するEXECUTE権限が含まれます。

脚注2 すべてのOracle Database Vault PL/SQLパッケージに対するEXECUTE権限が含まれます。

脚注3 DV_SECANALYSTは、Oracle Database Vaultで提供されるビューを使用した場合のみ、DVSYSスキーマ・オブジェクトに問い合せることができます。

脚注4 DV_PUBLICは、Oracle Database Vaultで提供されるビューを使用した場合のみ、DVSYSスキーマ・オブジェクトに問い合せることができます。

脚注5 DV_AUDIT_CLEANUPは、AUDIT_TRAIL$表でSELECT文を実行できます。

脚注6 この権限には、DVSYSアカウントの削除や変更、およびDVSYSパスワードの変更のための権限は含まれません。

脚注7 この権限には、CREATE ANY、ALTER ANYおよびDROP ANYなどのANY権限が含まれます。

脚注8 また、このロールを持つユーザーがシステム権限を実行するには、レルム参加者またはレルム所有者であることが必要です。

脚注9 RESOURCEロールは、CREATE CLUSTER、CREATE INDEXTYPE、CREATE OPERATOR、CREATE PROCEDURE、CREATE SEQUENCE、CREATE TABLE、CREATE TRIGGER、CREATE TYPEの各システム権限を提供します。

DV_OWNER Database Vault所有者ロール

DV_OWNERロールを使用して、Oracle Database Vaultロールおよびその構成を管理します。このマニュアルで、このロールを使用するサンプル・アカウントはlbrown_dvownerです。

DV_OWNERロールに関連付けられた権限

DV_OWNERロールには、DV_ADMINロールによって提供される管理機能とDV_SECANALYSTロールによって提供されるレポート機能が含まれます。Oracle Database Vaultを監視する権限も備わっています。Oracle Database Vaultのインストール時に作成され、DVSYSスキーマに対するほとんどの権限を有します。DV_ADMINロール以外に、DV_OWNERロールは、GRANT ANY ROLE、ADMINISTER DATABASE TRIGGERおよびALTER ANY TRIGGER権限を持ちます。

ヒント:
DV_OWNERユーザーに、別個の名前付きアカウントを作成することを検討してください。これにより、ユーザーが使用できなくなった場合(退社した場合など)、このユーザー・アカウントを再作成して、このユーザーにDV_OWNERロールを付与できます。

DV_OWNERロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_OWNER';
SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_OWNER';

Oracle Database Vaultをインストールして登録すると、DV_OWNERアカウントが作成されます。このロールを付与されたユーザーはADMINオプションも付与され、ADMIN OPTIONを使用せずに、任意のOracle Database Vaultロール(DV_ACCTMGRを除く)を任意のアカウントに対して実行できます。また、このロールを付与されたユーザーは、Oracle Database Vaultレポートの実行およびOracle Database Vaultの監視ができます。

DV_OWNERロールがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを持つすべてのユーザーは、別のユーザーにDV_OWNERおよびDV_ADMINロールを付与できます。このロールを付与されたアカウントは、付与された保護スキーマ・ロールを別のアカウントから取り消すことができます。SYSやSYSTEMなど、GRANT ANY ROLEシステム権限のみを持つ(直接またはロールを使用して間接的に付与された)アカウントには、他のデータベース・アカウントに対してDV_OWNERロールを付与する権限または取り消す権限がありません。また、DV_OWNERロールを持つユーザーは、DV_ACCTMGRロールの付与または取消しを実行できません。

DV_OWNERロールを持つユーザーのパスワード変更の管理

DV_OWNERロールを付与されている他のユーザーのパスワードを変更するには、あらかじめ、そのユーザー・アカウントからDV_OWNERロールを取り消しておく必要があります。ただし、DV_OWNERロールの取消しには注意が必要です。サイトの少なくとも1人のユーザーに、このロールが付与されている必要があります。このロールが付与されている他のDV_OWNERユーザーのパスワードを変更する必要がある場合は、そのユーザーから一時的にDV_OWNERを取り消すことができます。また、DV_OWNERロールを付与されているユーザーは、自分自身からロールを取り消さなくても、自分のパスワードを変更できます。

DV_OWNERユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、SQL*Plusにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_OWNERロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_OWNERロールをパスワードを変更したユーザーに再び付与します。

一時的にOracle Database Vaultを無効にして、ALTER USER権限を付与されているユーザーとしてログオンし、DV_OWNERユーザー・パスワードを変更することもできます。その後、Database Vaultを再び有効にします。詳細は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_ADMIN Database Vault構成管理者ロール

DV_ADMINロールはOracle Database VaultのPL/SQLパッケージを制御します。

DV_ADMINロールに関連付けられた権限

DV_ADMINロールは、DVSYSパッケージ(DBMS_MACADM、DBMS_MACSECROLESおよびDBMS_MACUTL)に対するEXECUTE権限を保持します。また、DV_ADMINにはDV_SECANALYSTロールによって提供された機能が含まれるため、これを使用するとOracle Database Vaultレポートの実行やOracle Database Vaultの監視が可能になります。インストール中、DV_ADMINロールがDV_OWNERロールにADMIN OPTION付きで付与されます。

DV_ADMINロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_ADMIN';
SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_ADMIN';

DV_ADMINロールがGRANT操作とREVOKE操作に及ぼす影響

SYSやSYSTEMなど、GRANT ANY ROLEシステム権限のみを持つアカウントには、他のデータベース・アカウントに対してDV_ADMINを付与する権限または取り消す権限がありません。DV_OWNERまたはDV_ADMINロールを持つユーザーは、任意のデータベース・アカウントに対してこのロールを付与する、または取り消すことができます。

DV_ADMINロールを持つユーザーのパスワード変更の管理

DV_ADMINロールを付与されているユーザーのパスワードを変更するには、あらかじめ、このアカウントからDV_ADMINロールを取り消しておく必要があります。DV_ADMINロールを付与されているユーザーは、自分自身からロールを取り消さなくても、自分のパスワードを変更できます。

DV_ADMINユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、SQL*Plusにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_ADMINロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_ADMINロールをパスワードを変更したユーザーに再び付与します。

一時的にOracle Database Vaultを無効にして、ALTER USER権限を付与されているユーザーとしてログオンし、DV_ADMINユーザー・パスワードを変更することもできます。その後、Database Vaultを再び有効にします。詳細は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_MONITOR Database Vault監視ロール

DV_MONITORロールにより、Oracle Enterprise Manager Grid Controlエージェントは、Oracle Database Vaultでレルムまたはコマンド・ルール定義に関する違反未遂および構成の問題を監視できます。これにより、Grid Controlでは、レルム定義およびコマンド・ルール定義を読み取ってデータベース間で伝播できます。

DV_MONITORロールに関連付けられた権限

DV_MONITORロールに関連付けられているシステム権限はありませんが、一部のSYSオブジェクトとDVSYSオブジェクトに対するSELECT権限を持ちます。DV_MONITORオブジェクト権限の完全なリストを確認するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_MONITOR';

DV_MONITORロールがGRANT操作とREVOKE操作に及ぼす影響

デフォルトでは、このロールはDV_OWNERロール、DV_ADMINロール、DV_SECANALYSTロールおよびDBSNMPユーザーに付与されます。DV_OWNER権限を付与されているユーザーのみ、別のユーザーに対してDV_MONITORロールを付与する、または取り消すことができます。このロールをADMINオプション付きで付与することはできません。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

関連項目:

- 第17章「Oracle Database Vaultの監視」

- 第1987152章「Oracle Database Vaultの監査」

DV_SECANALYST Database Vaultセキュリティ分析者ロール

DV_SECANALYSTを使用して、Oracle Database Vaultレポートの実行およびOracle Database Vaultの監視を行います。このロールは、データベース関連のレポートにも使用されます。また、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」の説明にあるように、このロールを使用すると、DVSYSビューに問い合せることでDVSYS構成をチェックできます。

DV_SECANALYSTロールに関連付けられた権限

DV_SECANALYSTロールに関連付けられているシステム権限はありませんが、DVSYSおよびDVFに関連するエンティティについてレポートするために、DVSYSオブジェクト・スキーマと一部のSYSおよびSYSMANスキーマ・オブジェクトに対するSELECT権限を持ちます。DV_SECANALYSTオブジェクト権限の完全なリストを確認するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_SECANALYST';

DV_SECANALYSTロールがGRANT操作とREVOKE操作に及ぼす影響

SYSやSYSTEMなど、GRANT ANY ROLEシステム権限のみを持つアカウントには、他のデータベース・アカウントに対してこのロールを付与する権限または取り消す権限がありません。DV_OWNERロールを持つユーザーのみ、他のユーザーに対してこのロールを付与する、または取り消すことができます。

DV_SECANALYSTロールを持つユーザーのパスワード変更の管理

DV_SECANALYSTロールを付与されているユーザーのパスワードを変更するには、あらかじめ、このアカウントからDV_SECANALYSTロールを取り消しておく必要があります。DV_SECANALYSTロールを付与されているユーザーは、自分自身からロールを取り消さなくても、自分のパスワードを変更できます。

DV_SECANALYSTユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、SQL*Plusにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_SECANALYSTロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_SECANALYSTロールをパスワードを変更したユーザーに再び付与します。

一時的にOracle Database Vaultを無効にして、ALTER USER権限を付与されているユーザーとしてログオンし、DV_SECANALYSTユーザー・パスワードを変更することもできます。その後、Database Vaultを再び有効にします。詳細は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_AUDIT_CLEANUP監査証跡クリーンアップ・ロール

非統合監査環境でDatabase Vault監査証跡のパージを担当するユーザーにDV_AUDIT_CLEANUPロールを付与します。

DV_AUDIT_CLEANUPロールに関連付けられた権限

DV_AUDIT_CLEANUPロールには、DVSYS.AUDIT_TRAIL$表に対するSELECT権限およびDELETE権限があります。

DV_AUDIT_CLEANUPロールによってGRANT操作とREVOKE操作はどのような影響を受けますか。

デフォルトでは、このロールは、ADMIN OPTION付きのDV_OWNERロールに付与されます。DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_AUDIT_CLEANUPロールを付与する、または取り消すことができます。

DV_AUDIT_CLEANUPロールを持つユーザーのパスワード変更の管理

DV_AUDIT_CLEANUPロールを付与されているユーザーのパスワードを変更するには、あらかじめ、このアカウントからDV_AUDIT_CLEANUPロールを取り消しておく必要があります。DV_AUDIT_CLEANUPロールを付与されているユーザーは、自分自身からロールを取り消さなくても、自分のパスワードを変更できます。

DV_AUDIT_CLEANUPユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、データベース・インスタンスにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_AUDIT_CLEANUPロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、パスワードを変更したユーザーに再びDV_AUDIT_CLEANUPロールを付与します。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_STREAMS_ADMIN Oracle Streams構成ロール

DV_STREAMS_ADMINロールを、Oracle Database Vault環境でOracle Streamsの構成を行う任意のユーザーに付与します。これにより、Oracle Streamsプロセスの管理をDatabase Vaultで厳格に制御できます。ただし、管理者が通常Oracle Streamsを管理する方法は変更または制限されません。

DV_STREAMS_ADMINロールに関連付けられた権限

DV_STREAMS_ADMINロールに関連付けられているシステム権限はありませんが、DVSYSオブジェクトに対するSELECT権限を持ちます。DV_STREAMS_ADMINオブジェクト権限の完全なリストを確認するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_STREAMS_ADMIN';

DV_STREAMS_ADMINロールは、Oracle Streamsを構成するための十分なデータベース権限は提供しません。DV_STREAMS_ADMINロールは、データベース管理者がOracle Database Vault環境でOracle Streamsを構成するための追加要件(Oracle Streamsで現在必要な権限を補うもの)です。

DV_STREAMS_ADMINロールがGRANT操作とREVOKE操作に及ぼす影響

DV_STREAMS_ADMINロールをADMIN OPTION付きで付与することはできません。DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_STREAMS_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- 付録B「Oracle Database Vaultの無効化および有効化」

- Oracle Database Vault環境でのOracle Streamsの使用

DV_XSTREAM_ADMIN XStream管理ロール

DV_XSTREAM_ADMINロールを、Oracle Database Vault環境でXStreamの構成を行う任意のユーザーに付与します。これにより、XStreamプロセスの管理をDatabase Vaultで厳格に制御できます。ただし、管理者が通常XStreamを管理する方法は変更または制限されません。

DV_XSTREAM_ADMINロールに関連付けられた権限

DV_XSTREAM_ADMINロールに関連付けられた権限はありません。

DV_XSTREAM_ADMINロールは、XStreamを構成するための十分なデータベース権限は提供しません。DV_XSTREAM_ADMINロールは、データベース管理者がOracle Database Vault環境でXStreamを構成するための追加要件(XStreamで現在必要な権限を補うもの)です。

DV_XSTREAM_ADMINロールがGRANT操作とREVOKE操作に及ぼす影響

DV_XSTREAM_ADMINロールをADMIN OPTION付きで付与することはできません。DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_XSTREAM_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- 付録B「Oracle Database Vaultの無効化および有効化」

- Oracle Database Vault環境でのXStreamの使用

DV_GOLDENGATE_ADMIN Oracle GoldenGate管理ロール

DV_GOLDENGATE_ADMINロールを、Oracle Database Vault環境でOracle GoldenGateの構成を行う任意のユーザーに付与します。これにより、Oracle GoldenGateプロセスの管理をDatabase Vaultで厳格に制御できます。ただし、管理者が通常Oracle GoldenGateを管理する方法は変更または制限されません。

DV_GOLDENGATE_ADMINロールに関連付けられた権限

DV_GOLDENGATE_ADMINロールに関連付けられた権限はありません。

DV_GOLDENGATE_ADMINロールは、Oracle GoldenGateを構成するための十分なデータベース権限は提供しません。DV_GOLDENGATE_ADMINロールは、データベース管理者がOracle Database Vault環境でXStreamを構成するための追加要件(Oracle GoldenGateで現在必要な権限を補うもの)です。

DV_GOLDENGATE_ADMINロールがGRANT操作とREVOKE操作に及ぼす影響

DV_GOLDENGATE_ADMINロールをADMIN OPTION付きで付与することはできません。DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_GOLDENGATE_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- 付録B「Oracle Database Vaultの無効化および有効化」

- Oracle Database Vault環境でのOracle GoldenGateの使用

DV_GOLDENGATE_REDO_ACCESS Oracle GoldenGate REDOログ・アクセス・ロール

DV_GOLDENGATE_REDO_ACCESSロールを、Oracle Database Vault環境でOracle GoldenGateのTRANLOGOPTIONS DBLOGREADERメソッドを使用してREDOログへのアクセスを行う任意のユーザーに付与します。これにより、Oracle GoldenGateプロセスの管理をDatabase Vaultで厳格に制御できます。ただし、管理者が通常Oracle GoldenGateを管理する方法は変更または制限されません。

DV_GOLDENGATE_REDO_ACCESSロールに関連付けられた権限

DV_GOLDENGATE_REDO_ACCESSロールに関連付けられた権限はありません。

DV_GOLDENGATE_REDO_ACCESSロールは、Oracle GoldenGateを構成するための十分なデータベース権限は提供しません。DV_GOLDENGATE_REDO_ACCESSロールは、データベース管理者がOracle Database Vault環境でOracle Streamsを構成するための追加要件(Oracle GoldenGateで現在必要な権限を補うもの)です。

DV_GOLDENGATE_REDO_ACCESSロールがGRANT操作とREVOKE操作に及ぼす影響

DV_GOLDENGATE_REDO_ACCESSロールをADMIN OPTION付きで付与することはできません。DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_GOLDENGATE_REDO_ACCESSロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- 付録B「Oracle Database Vaultの無効化および有効化」

- Oracle Database Vault環境でのOracle GoldenGateの使用

DV_PATCH_ADMIN Database Vaultデータベース・パッチ・ロール

DV_PATCH_ADMINロールを、Database Vaultにパッチ操作または言語の追加を行う任意のデータベース管理者に一時的に付与します。パッチ操作または言語の追加の終了後、ただちにこのロールを取り消す必要があります。

DV_PATCH_ADMINロールに関連付けられた権限

このロールでは、保護されたデータにアクセスできません。DV_PATCH_ADMINロールは、オブジェクト権限やシステム権限を持たない特殊なDatabase Vaultロールです。データベース管理者およびユーザーSYSがデータベースへのパッチ適用(Database Vaultへのパッチ適用など)を、レルムで保護されたデータにアクセスしなくても実行できるように設計されています。また、一部のパッチでは新しいスキーマを作成する必要があるため、データベース管理者はユーザーの作成も行うことができます。

DV_OWNERロールがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを持つユーザーのみ、他のユーザーに対してDV_PATCH_ADMINロールを付与する、または取り消すことができます。DV_PATCH_ADMINロールをADMINオプション付きで付与することはできません。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール

DV_ACCTMGRロールを使用して、データベース・アカウントとデータベース・プロファイルの作成および管理を行います。このマニュアルでは、例のDV_ACCTMGRロールがamalcolm_dvacctmgrというユーザーに割り当てられます。

DV_ACCTMGRロールに関連付けられた権限

このロールを付与されたユーザーは、ユーザーまたはプロファイルに対してCREATE文、ALTER文、DROP文を使用できます。ただし、DV_ACCTMGRロールを付与されているユーザーは、次の操作は実行できません。

- DVSYSアカウントに対するALTER文またはDROP文

- DV_ADMIN、DV_OWNER、DV_SECANALYST、DV_AUDIT_CLEANUPおよびDV_MONITORロールを付与されているユーザーに対するALTER文またはDROP文

- DV_ADMIN、DV_OWNER、DV_SECANALYST、DV_AUDIT_CLEANUPおよびDV_MONITORロールを付与されているユーザーのパスワード変更

DV_ACCTMGRロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_ACCTMGR';
SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_ACCTMGR';

ヒント:

- DV_ACCTMGRロールを持つユーザーをデータ・ディクショナリ・レルムに追加することをお薦めします。例については、「手順1: データ・ディクショナリ・レルムへのSYSTEMユーザーの追加」を参照してください。

- DV_ACCTMGRユーザーが他のユーザーにANY権限を付与または取り消せるようにする場合は、SYSDBA権限を持つユーザーSYSとしてログインし、このユーザーにGRANT ANY PRIVILEGE権限およびREVOKE ANY PRIVILEGE権限を付与します。次に、ユーザーをOracle Data Dictionaryレルムに所有者として追加します。

- DV_ACCTMGRユーザーに、別個の名前付きアカウントを作成することを検討してください。これにより、このユーザーがパスワードを忘れた場合、ユーザー・パスワードの再作成時に元のDV_ACCTMGRアカウントとしてログインできます。それ以外の場合は、Oracle Database Vaultを無効にし、SYSまたはSYSTEMとしてログインしてパスワードを再作成し、Oracle Database Vaultを再び有効にする必要があります。

DV_ACCTMGRロールがGRANT操作とREVOKE操作に及ぼす影響

SYSやSYSTEMなど、GRANT ANY ROLEシステム権限のみを持つアカウントには、他のデータベース・アカウントに対してこのロールを付与する権限または取り消す権限がありません。DV_ACCTMGRロールおよびADMIN OPTIONを持つアカウントは、指定されたデータベース・アカウントにADMIN OPTIONなしでこのロールを付与することも、他のアカウントからこのロールを取り消すこともできます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_REALM_OWNER Database VaultレルムDBAロール

DV_REALM_OWNERロールを使用して、レルムを定義する複数のスキーマ内のデータベース・オブジェクトを管理します。このロールを、レルムとそれに関連付けられたロール内の1つ以上のスキーマ・データベース・アカウントを管理するデータベース・アカウント所有者に付与します。

DV_REALM_OWNERロールに関連付けられた権限

このロールを付与されているユーザーは、CREATE ANY、ALTER ANY、DROP ANYなどの強力なシステム権限をレルム内で使用できます。ただし、これらの権限を使用するには、このユーザーをレルムの参加者または所有者にする必要があります。手順は、「レルム認可の定義」を参照してください。

DV_REALM_OWNERロールにはオブジェクト権限は付与されていませんが、いくつかのシステム権限が付与されています。DV_REALM_OWNERシステム権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_REALM_OWNER';

DV_REALM_OWNERロールがGRANT操作とREVOKE操作に及ぼす影響

Oracle Data Dictionaryレルムのレルム所有者(SYSなど)は、このロールを任意のデータベース・アカウントまたはロールに付与できます。このロールはSYSが制御するシステム権限を付与できますが、DV_OWNERまたはDV_ADMINロールを保持しません。

このロールを特定のレルムに関連付ける場合は、アカウントまたは業務関連のロールに割り当てた後、そのアカウントまたはロールをレルムで認可します。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_REALM_RESOURCE Database Vaultアプリケーション・リソース所有者ロール

DV_REALM_RESOURCEロールは、レルムで一般に使用される表、ビュー、トリガー、シノニムおよびその他のオブジェクトの作成などの操作に使用します。

DV_REALM_RESOURCEロールに関連付けられた権限

DV_REALM_RESOURCEロールには、OracleのRESOURCEロールと同じシステム権限があります。さらに、CREATE SYNONYMとCREATE VIEWの両方がこのロールに付与されます。

DV_REALM_RESOURCEロールにはオブジェクト権限は付与されていませんが、いくつかのシステム権限が付与されています。DV_REALM_RESOURCEシステム権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_REALM_RESOURCE';

このロールはSYSが制御するシステム権限を付与できますが、DV_OWNERまたはDV_ADMINロールを保持しません。

DV_REALM_RESOURCEロールがGRANT操作とREVOKE操作に及ぼす影響

DV_REALM_RESOURCEロールは、任意のデータベース・アプリケーションのサポートに使用されるデータベース表、オブジェクト、トリガー、ビュー、プロシージャなどを所有するデータベース・アカウントに付与できます。これは、スキーマ・タイプのデータベース・アカウントを対象としたロールです。Oracle Data Dictionaryレルムのレルム所有者(SYSなど)は、このロールを任意のデータベース・アカウントまたはロールに付与できます。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

DV_PUBLIC Database Vault PUBLICロール

DV_PUBLICロールを使用して、DVSYSスキーマ内の特定のオブジェクトに対する権限を付与します。(デフォルト・インストールでは、DVSYSスキーマはロックされています。)

DV_PUBLICロールに関連付けられた権限

次のOracle Database Vaultオブジェクトは、DV_PUBLICを介してアクセスできます。

- PL/SQLプロシージャおよびファンクション(「Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション」を参照)。Oracleデータベースにおけるアクセス制御およびOracle Label Securityの処理を可能にします。

- PL/SQLファクタ・ファンクション(「Oracle Database VaultのPL/SQLファクタ・ファンクション」を参照)。DVFスキーマの場合、これらは定義されている各ファクタのファンクションです。これらのファンクションをルール・セット内で使用すると、ルール・セットで保護するSQL文を検査できます。

- DBMS_MACSEC_ROLESパッケージ(第13章「DBMS_MACSEC_ROLESパッケージの使用方法」を参照)。このパッケージを使用すると、ユーザーに対する認可を確認したり、Oracle Database Vaultセキュア・アプリケーション・ロールを設定できます。

- DBMS_MACUTLパッケージ(第14章「DBMS_MACUTLパッケージの使用方法」を参照)。このパッケージは、Oracle Database Vault用に作成するアプリケーション・コードのあらゆる箇所で使用できる一連の汎用ユーティリティ・ファンクションです。

DV_PUBLICロールにはシステム権限は付与されていませんが、いくつかのオブジェクト権限が付与されています。DV_PUBLICオブジェクト権限の完全なリストを検索するには、SQL*Plusに管理者権限でログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_PUBLIC';

DV_PUBLICロールがGRANT操作とREVOKE操作に及ぼす影響

Oracle Database Vaultでは、DVSYSスキーマのオブジェクト権限をPUBLICに直接付与できません。DVSYSスキーマ・オブジェクトに対するオブジェクト権限をDV_PUBLICロールに付与した後、DV_PUBLICをPUBLICに付与する必要があります。ただし、その場合には、PUBLICロールにその他のオブジェクト権限を追加しないことが重要です。追加した場合、Oracle Database Vaultのセキュリティが低下する可能性があります。

Oracle Database Vaultセキュリティを無効にした場合の処理

すべての保護スキーマ・ロール(DV_OWNERを含む)の付与および取消しは、Oracle Database Vaultが有効になっている場合にのみ実施されます。Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護スキーマ・ロールに対してGRANT操作およびREVOKE操作を実行できます。

Oracle Database Vaultを無効化および有効化する方法は、付録B「Oracle Database Vaultの無効化および有効化」を参照してください。

Oracle Database Vaultアカウント

Oracle Database Vaultでは、インストール時に、Oracle Database Vault所有者およびOracle Database Vaultアカウント・マネージャの2つのアカウントが要求されます。Oracle Database Vault所有者アカウントのアカウント名およびパスワードは、インストール時に指定する必要があります。Oracle Database Vaultアカウント・マネージャの作成は任意です。

Oracle Database Vault所有者アカウントには、DV_OWNERロールが付与されます。このアカウントは、Oracle Database Vaultのロールおよび構成を管理できます。(このロールの詳細は、「DV_OWNER Database Vault所有者ロール」を参照してください。)

Oracle Database Vaultアカウント・マネージャ・アカウントには、DV_ACCTMGRロールが付与されます。このアカウントは、データベース・ユーザー・アカウントを管理して職務分離をしやすくするために使用されます。(このロールの詳細は、「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」を参照してください。)

インストール時にOracle Database Vaultアカウント・マネージャ・アカウントを作成しない場合、DV_OWNERとDV_ACCTMGRの両方のロールがOracle Database Vault所有者ユーザー・アカウントに付与されます。

ヒント:
DV_OWNERおよびDV_ACCTMGRロールを既存のユーザー・アカウントに付与することをお薦めします。ただし、インストール中に作成した元のDV_OWNERおよびDV_ACCTMGRユーザー・アカウントも維持してください。これにより、たとえば、これらのいずれかのロールが付与されているユーザーがパスワードを忘れた場合、元のOracle Database Vaultアカウント・マネージャとしてログインして、Oracle Database Vaultを無効にせずにパスワードを再作成できます。

表11-2に、インストール時に作成するアカウントの他に必要なOracle Database Vaultデータベース・アカウントを示します。

表11-2 Oracle Database Vaultで使用されるデータベース・アカウント

データベース・アカウント

ロールおよび権限

説明

DVSYS

いくつかのシステム権限およびオブジェクト権限がOracle Database Vaultをサポートするために用意されています。このアカウントでセッションを作成する権限は、インストールの最後に取り消され、アカウントはロックされます。

Oracle Database Vaultのスキーマおよび関連オブジェクトの所有者

DVF

限定されたシステム権限がOracle Database Vaultをサポートするために用意されています。このアカウントでセッションを作成する権限は、インストールの最後に取り消され、アカウントはロックされます。

ファクタ・アイデンティティを取得するために作成されるOracle Database Vaultのファンクションの所有者

LBACSYS

このアカウントは、Oracle Universal Installerのカスタム・インストール・オプションを使用してOracle Label Securityをインストールすると作成されます。(Oracle Database Vaultのインストール時には作成されません。)このアカウントは削除または再作成しないでください。

ファクタとOracle Label Securityポリシーを統合する場合、このファクタを使用するレルムの所有者としてこのユーザーを割り当てる必要があります。詳細は、「Oracle Label SecurityポリシーでのOracle Database Vaultファクタの使用方法」を参照してください。

Oracle Label Securityのスキーマの所有者

Oracle Database Vaultの職務分離要件を満たすために別のデータベース・アカウントを作成できます。表11-3に、指針となるモデル・データベース・アカウントの一部を示します。(表11-3に示すアカウントは、Oracle Database Vaultロールの実装の指針となります。これらは、インストール時に作成される実際のアカウントではありません。)

表11-3 Oracle Database Vaultのモデル・データベース・アカウント

データベース・アカウント

ロールおよび権限

説明

EBROWN

DV_OWNER(DV_ADMINおよびDV_SECANALYSTを保持)

DVSYSレルムのレルム所有者であるアカウント。このアカウントの機能は次のとおりです。

- DVSYSパッケージを実行する。

- DVSYSスキーマ内でEXECUTE権限を保持する。

- DVSYSスキーマ・オブジェクトに対する権限を付与する。

- スキーマ内のオブジェクトを選択する。

- Oracle Database Vaultアクティビティを監視する。

- Oracle Database Vault構成に関するレポートを実行する。

JGODFREY

DV_ACCTMGR

データベース・アカウントおよびプロファイルを管理するためのアカウント。このアカウントの機能は次のとおりです。

- ユーザーを作成、変更または削除する。

- プロファイルを作成、変更または削除する。

- DV_ACCTMGRロールの付与と取消しを行います。ただし、このアカウントがDatabase Vaultのインストール時に作成された場合のみです(このアカウントは、ADMINオプション付きで作成されました)。

- CONNECTロールを付与する。

注意: このアカウントでは、ロールの作成、およびRESOURCEロールまたはDBAロールの付与は行えません。

RLAYTON

DV_ADMIN(DV_SECANALYSTを保持)

アクセス制御管理者として機能するアカウント。このアカウントの機能は次のとおりです。

- DVSYSパッケージを実行する。

- DVSYSスキーマ内でEXECUTE権限を保持する。

- Oracle Database Vaultアクティビティを監視する。

- Oracle Database Vault構成に関するレポートを実行する。

注意: このアカウントでは、DVSYS表を直接更新できません。

PSMYTHE

DV_SECANALYST

Oracle Database Vaultの管理アプリケーションでのOracle Database Vaultレポートを実行するためのアカウント。

12 DBMS_MACADMパッケージの使用方法

この章の内容は次のとおりです。

- DBMS_MACADMパッケージについて

- DBMS_MACADMのレルム・プロシージャ

- DBMS_MACADMのルール・セット・プロシージャ

- DBMS_MACADMのコマンド・ルール・プロシージャ

- DBMS_MACADMのファクタ・プロシージャおよびファンクション

- DBMS_MACADMのセキュア・アプリケーション・ロール・プロシージャ

- DBMS_MACADMのOracle Label Securityポリシー・プロシージャ

- DBMS_MACADMの一般システム・メンテナンス・プロシージャ

DBMS_MACADMパッケージについて

DBMS_MACADMパッケージのプロシージャおよびファンクションを使用すると、一般にOracle Database Vault Administratorで構成されるレルム、ファクタ、ルール・セット、コマンド・ルール、セキュア・アプリケーション・ロールおよびOracle Label Securityポリシーを構成するアプリケーションを作成できます。

DBMS_MACADMパッケージは、DV_ADMINロールまたはDV_OWNERロールを付与されているユーザーのみが使用できます。

DBMS_MACADMパッケージのプロシージャおよびファンクションで使用されるパラメータの多くでは、DBMS_MACUTLパッケージで使用可能な定数を使用できます。詳細は、「DBMS_MACUTLの定数」を参照してください。

また、Oracle Database Vaultには、DBMS_MACADMパッケージとともに使用できる一連のPL/SQLインタフェースが用意されています。詳細は、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」を参照してください。

DBMS_MACADMのレルム・プロシージャ

表12-1に、レルムの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。これらのプロシージャで使用できる定数の詳細は、表14-1を参照してください。

レルムの詳細は、第4章「レルムの構成」を参照してください。また、レルム・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-1 DBMS_MACADMのレルム構成プロシージャ

プロシージャ

説明

ADD_AUTH_TO_REALMプロシージャ

所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。

ADD_OBJECT_TO_REALMプロシージャ

レルム保護に一連のオブジェクトを登録します。

CREATE_REALMプロシージャ

レルムを作成します。

DELETE_AUTH_FROM_REALMプロシージャ

レルムにアクセスするためのユーザーまたはロールの認可を削除します。

DELETE_OBJECT_FROM_REALMプロシージャ

レルム保護から一連のオブジェクトを削除します。

DELETE_REALMプロシージャ

レルムを削除します。

DELETE_REALM_CASCADEプロシージャ

レルムおよび関連するDatabase Vault構成情報を削除します。

RENAME_REALMプロシージャ

レルムの名前を変更します。名前の変更は、そのレルムが使用されているすべての箇所に反映されます。

UPDATE_REALMプロシージャ

レルムを更新します。

UPDATE_REALM_AUTHプロシージャ

レルムにアクセスするためのユーザーまたはロールの認可を更新します。

ADD_AUTH_TO_REALMプロシージャ

ADD_AUTH_TO_REALMプロシージャは、所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。レルム認可の詳細は、「レルム認可の定義」を参照してください。

オプションで、認可に進む前にチェックする必要のあるルール・セットを指定できます。

構文

DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name    IN VARCHAR2,
grantee       IN VARCHAR2,
rule_set_name IN VARCHAR2,
auth_options  IN NUMBER);

パラメータ

表12-2 ADD_AUTH_TO_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

grantee

所有者または参加者として認可するユーザーまたはロール名。

現行のデータベース・インスタンスで既存のユーザーおよびロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューおよびDBA_ROLESビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索するには、DVSYS.DBA_DV_ROLEビューに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

rule_set_name

オプションです。認可の前にチェックするルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

使用可能なルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

auth_options

オプションです。レルムを認可する次のオプションのうち、1つを指定します。

- DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT: 参加者。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。

- DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ権限と、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。1つのレルムに複数の所有者を設定できます。

参加者および所有者の詳細は、「レルム認可の定義」を参照してください。

例

次の例では、ユーザーSYSADMをパフォーマンス統計レルムの参加者として認可します。デフォルトではユーザーが参加者として認可されるため、auth_optionsパラメータは省略できます。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name  => 'Performance Statistics Realm',
grantee     => 'SYSADM');
END;
/

次の例では、ユーザーSYSADMをパフォーマンス統計レルムの所有者として設定します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name   => 'Performance Statistics Realm',
grantee      => 'SYSADM',
auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

次の例では、ユーザーSYSADMをパフォーマンス統計レルムの所有者として認可する前に、構成アクセス・チェック・ルール・セットをトリガーします。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name    => 'Performance Statistics Realm',
grantee       => 'SYSADM',
rule_set_name => 'Check Conf Access',
auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

ADD_OBJECT_TO_REALMプロシージャ

ADD_OBJECT_TO_REALMプロシージャは、レルム保護に一連のオブジェクトを登録します。

構文

DBMS_MACADM.ADD_OBJECT_TO_REALM(
realm_name   IN VARCHAR2,
object_owner IN VARCHAR2,
object_name  IN VARCHAR2,
object_type  IN VARCHAR2);

パラメータ

表12-3 ADD_OBJECT_TO_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

object_owner

レルムに追加するオブジェクトの所有者。ロールをレルムに追加する場合、ロールに所有者はいないため、ロールのオブジェクト所有者は%(すべて)として表示されます。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト名」を参照してください。)DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

既存のレルムによって保護されているオブジェクトを検索するには、「DVSYS.DBA_DV_REALM_OBJECTビュー」で説明されているDVSYS.DBA_DV_REALM_OBJECTビューに問い合せます。

object_type

TABLE、INDEX、ROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト・タイプ」を参照してください。)

DBMS_MACUTL.G_ALL_OBJECT定数も使用できます。

例

BEGIN
DBMS_MACADM.ADD_OBJECT_TO_REALM(
realm_name   => 'Performance Statistics Realm',
object_owner => '%',
object_name  => 'GATHER_SYSTEM_STATISTICS',
object_type  => 'ROLE');
END;
/

CREATE_REALMプロシージャ

CREATE_REALMプロシージャはレルムを作成します。レルムを作成した後で、次のプロシージャを使用してレルム定義を完了します。

- ADD_OBJECT_TO_REALMプロシージャは、レルムに1つ以上のオブジェクトを登録します。

- ADD_AUTH_TO_REALMプロシージャは、レルムに対してユーザーまたはロールを認可します。

構文

DBMS_MACADM.CREATE_REALM(
realm_name    IN VARCHAR2,
description   IN VARCHAR2,
enabled       IN VARCHAR2,
audit_options IN NUMBER);

パラメータ

表12-4 CREATE_REALMのパラメータ

パラメータ

説明

realm_name

レルム名(大/小文字混在で最大90文字)。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

description

レルムの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、レルム・チェックが有効になり、DBMS_MACUTL.G_NO(No)ではレルム・チェックが無効になります。デフォルト値はDBMS_MACUTL.G_YESです。

audit_options

レルムを監査する次のオプションのうち、1つを指定します。

- DBMS_MACUTL.G_REALM_AUDIT_OFF: レルムの監査を無効にします(デフォルト)。

- DBMS_MACUTL.G_REALM_AUDIT_FAIL: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

- DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティに関する監査レコードが作成されます。

- DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティおよび認可されていないアクティビティに関する監査レコードが作成されます。

例

BEGIN
DBMS_MACADM.CREATE_REALM(
realm_name    => 'Performance Statistics Realm',
description   => 'Realm to measure performance',
enabled       => DBMS_MACUTL.G_YES,
audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS);
END;
/

関連項目:
例14-1「DBMS_MACUTLの定数を使用したレルムの作成」

DELETE_AUTH_FROM_REALMプロシージャ

DELETE_AUTH_FROM_REALMプロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を削除します。

構文

DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name IN VARCHAR2,
grantee    IN VARCHAR2);

パラメータ

表12-5 DELETE_AUTH_FROM_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

grantee

ユーザーまたはロール名。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name => 'Performance Statistics Realm',
grantee    => 'SYS');
END;
/

DELETE_OBJECT_FROM_REALMプロシージャ

DELETE_OBJECT_FROM_REALMプロシージャは、レルム保護から一連のオブジェクトを削除します。

構文

DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
realm_name   IN VARCHAR2,
object_owner IN VARCHAR2,
object_name  IN VARCHAR2,
object_type  IN VARCHAR2);

パラメータ

表12-6 DELETE_OBJECT_FROM_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

object_owner

レルムに追加されたオブジェクトの所有者。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

object_name

オブジェクト名。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト名」を参照してください。)DBMS_MACUTL G_ALL_OBJECT定数も使用できます。

既存のレルムによって保護されているオブジェクトを検索するには、「DVSYS.DBA_DV_REALM_OBJECTビュー」で説明されているDVSYS.DBA_DV_REALM_OBJECTビューに問い合せます。

object_type

TABLE、INDEX、ROLEなどのオブジェクト・タイプ。(ワイルドカード%を使用できます。ワイルドカード%の例外は、「レルム・セキュア・オブジェクトの作成」の「オブジェクト・タイプ」を参照してください。)

DBMS_MACUTL G_ALL_OBJECT定数も使用できます。

例

BEGIN
DBMS_MACADM.DELETE_OBJECT_FROM_REALM(
realm_name   => 'Performance Statistics Realm',
object_owner => 'SYS',
object_name  => 'GATHER_SYSTEM_STATISTICS',
object_type  => 'ROLE');
END;
/

DELETE_REALMプロシージャ

DELETE_REALMプロシージャはレルムを削除しますが、その関連オブジェクトおよび認可は削除しません。レルムを削除する前に、DVSYS.DBA_DV_REALM_OBJECTビューに問い合せて関連オブジェクトを検索できます。レルム関連のオブジェクトのリストを確認するには、DVSYS.DBA_DV_REALMビューに問い合せます。その認可を確認するには、DVSYS.DBA_DV_REALM_AUTHに問い合せます。これらのビューについては、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

関連付けられているオブジェクトおよび認可に加えてレルムを削除する場合は、「DELETE_REALM_CASCADEプロシージャ」を参照してください。

構文

DBMS_MACADM.DELETE_REALM(
realm_name IN VARCHAR2);

パラメータ

表12-7 DELETE_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_REALM('Performance Statistics Realm');

DELETE_REALM_CASCADEプロシージャ

DELETE_REALM_CASCADEプロシージャは、認可されているユーザー(DVSYS.DBA_DV_REALM_AUTHビュー)および保護されているオブジェクト(DVSYS.DBA_DV_REALM_OBJECTビュー)を指定する関連Database Vault構成情報を含め、レルムを削除します。実際のデータベース・オブジェクトまたはユーザーは削除されません。レルム関連のオブジェクトのリストを確認するには、DVSYS.DBA_DV_REALMビューに問い合せます。その認可を確認するには、DVSYS.DBA_DV_REALM_AUTHに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

構文

DBMS_MACADM.DELETE_REALM_CASCADE(
realm_name IN VARCHAR2);

パラメータ

表12-8 DELETE_REALM_CASCADEのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_REALM_CASCADE('Performance Statistics Realm');

RENAME_REALMプロシージャ

RENAME_REALMプロシージャは、レルムの名前を変更します。名前の変更は、そのレルムが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_REALM(
realm_name IN VARCHAR2,
new_name   IN VARCHAR2);

パラメータ

表12-9 RENAME_REALMのパラメータ

パラメータ

説明

realm_name

現在のレルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

new_name

新しいレルム名(大/小文字混在で最大90文字)。

例

BEGIN
DBMS_MACADM.RENAME_REALM(
realm_name => 'Performance Statistics Realm',
new_name   => 'Sector 2 Performance Statistics Realm');
END;
/

UPDATE_REALMプロシージャ

UPDATE_REALMプロシージャはレルムを更新します。

構文

DBMS_MACADM.UPDATE_REALM(
realm_name    IN VARCHAR2,
description   IN VARCHAR2,
enabled       IN VARCHAR2,
audit_options IN NUMBER DEFAULT NULL);

パラメータ

表12-10 UPDATE_REALMのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

description

レルムの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、レルム・チェックが有効になり、DBMS_MACUTL.G_NO(No)ではレルム・チェックが無効になります。

enabledのデフォルトは設定済の値で、DVSYS.DBA_DV_REALMデータ・ディクショナリ・ビューに問い合せることで確認できます。

audit_options

レルムを監査する次のオプションのうち、1つを指定します。

- DBMS_MACUTL.G_REALM_AUDIT_OFF: レルムの監査を無効にします。

- DBMS_MACUTL.G_REALM_AUDIT_FAIL: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

- DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティに関する監査レコードが作成されます。

- DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS: レルムで保護されているオブジェクトに対する認可されたアクティビティおよび認可されていないアクティビティに関する監査レコードが作成されます。

audit_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_REALMデータ・ディクショナリ・ビューに問い合せることで確認できます。

例

BEGIN
DBMS_MACADM.UPDATE_REALM(
realm_name    => 'Sector 2 Performance Statistics Realm',
description   => 'Realm to measure performance for Sector 2 applications',
enabled       => DBMS_MACUTL.G_YES,
audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + G_REALM_AUDIT_SUCCESS);
END;
/

UPDATE_REALM_AUTHプロシージャ

UPDATE_REALM_AUTHプロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を更新します。

構文

DBMS_MACADM.UPDATE_REALM_AUTH(
realm_name    IN VARCHAR2,
grantee       IN VARCHAR2,
rule_set_name IN VARCHAR2,
auth_options  IN NUMBER);

パラメータ

表12-11 UPDATE_REALM_AUTHのパラメータ

パラメータ

説明

realm_name

レルム名。

現行のデータベース・インスタンスで既存のレルムを検索するには、「DVSYS.DBA_DV_REALMビュー」で説明されているDVSYS.DBA_DV_REALMビューに問い合せます。

grantee

ユーザーまたはロール名。

使用可能なユーザーおよびロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューおよびDBA_ROLESビューに問い合せます。

特定のユーザーまたはロールの認可を検索するには、「DVSYS.DBA_DV_REALM_AUTHビュー」で説明されているDVA_DV_REALM_AUTHビューに問い合せます。

権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

rule_set_name

認可の前にチェックするオプションのルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

使用可能なルール・セットを検索するには、DVSYS.DBA_DV_RULE_SETビューに問い合せます。ルール・セットに関連付けられているルールを検索するには、DBA_DB_RULE_SET_RULEビューに問い合せます。どちらについても第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

auth_options

オプションです。レルムを認可する次のオプションのうち、1つを指定します。

- DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT: 参加者。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。

- DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ権限と、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。1つのレルムに複数の所有者を設定できます。

auth_options値のデフォルトは設定済の値で、DVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューに問い合せることで確認できます。

例

BEGIN
DBMS_MACADM.UPDATE_REALM_AUTH(
realm_name    => 'Sector 2 Performance Statistics Realm',
grantee       => 'SYSADM',
rule_set_name => 'Check Conf Access',
auth_options  => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

DBMS_MACADMのルール・セット・プロシージャ

表12-12に、ルール・セットの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

関連項目:

- ルール・セットの詳細は、第5章「ルール・セットの構成」を参照してください。

- ルール・セット・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

- ルールとともに使用できるPL/SQLインタフェースについては、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」を参照してください。

表12-12 DBMS_MACADMのルール・セット構成プロシージャ

プロシージャ

説明

ADD_RULE_TO_RULE_SETプロシージャ

ルールをルール・セットに追加します。

CREATE_RULEプロシージャ

ルールを作成します。

CREATE_RULE_SETプロシージャ

ルール・セットを作成します。

DELETE_RULEプロシージャ

ルールを削除します。

DELETE_RULE_FROM_RULE_SETプロシージャ

ルールをルール・セットから削除します。

DELETE_RULE_SETプロシージャ

ルール・セットを削除します。

RENAME_RULEプロシージャ

ルールの名前を変更します。名前の変更は、そのルールが使用されているすべての箇所に反映されます。

RENAME_RULE_SETプロシージャ

ルール・セットの名前を変更します。名前の変更は、そのルール・セットが使用されているすべての箇所に反映されます。

SYNC_RULESプロシージャ

ルールを同期化します。

UPDATE_RULEプロシージャ

ルールを更新します。

UPDATE_RULE_SETプロシージャ

ルール・セットを更新します。

ADD_RULE_TO_RULE_SETプロシージャ

ADD_RULE_TO_RULE_SET プロシージャは、ルールをルール・セットに追加し、ルール・セットの評価時にルールをチェックするかどうかを指定できるようにします。

構文

DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name  IN VARCHAR2,
rule_name      IN VARCHAR2,
rule_order     IN NUMBER,
enabled        IN VARCHAR2);

パラメータ

表12-13 ADD_RULE_TO_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

ルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

rule_name

ルール・セットに追加するルール。

既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEを使用します。

rule_order

このリリースには適用されませんが、ADD_RULE_TO_RULE_SETプロシージャを機能させるには値を指定する必要があります。1を入力してください。

enabled

オプションです。ルール・セットの評価時にルールをチェックする必要があるかどうかを判断します。可能な値は次のとおりです。

- Y(YES、デフォルト)。ルール・セットの評価時にルールをチェックできるようにします。

- N(NO)。ルール・セットの評価時にルールをチェックできないようにします。

次のDBMS_MACUTLの定数も入力できます。

- DBMS_MACUTL.G_YES (デフォルト)

- DBMS_MACUTL.G_NO

詳細は、表14-1を参照してください。

例

次の例では、ルールをルール・セットに追加し、enabledパラメータを省略して、ルール・セットの評価時に自動的にルール・チェックが有効化されるようにします。

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name     => 'Restrict DROP TABLE operations',
rule_order    => 1);
END;
/

次の例では、ルールをルール・セットに追加しますが、ルール・チェックを無効化します。

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name     => 'Check UPDATE operations',
rule_order    => 1,
enabled       => DBMS_MACUTL.G_NO);
END;
/

CREATE_RULEプロシージャ

CREATE_RULEプロシージャはルールを作成します。ルールの作成後は、ルール・セットに追加できます。

構文

DBMS_MACADM.CREATE_RULE(
rule_name  IN VARCHAR2,
rule_expr  IN VARCHAR2);

パラメータ

表12-14 CREATE_RULEのパラメータ

パラメータ

説明

rule_name

ルール名(大/小文字混在で最大90文字)。空白を使用できます。

現行のデータベース・インスタンスで既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

rule_expr

PL/SQL BOOLEAN式。

式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。次に例を示します。

'TO_CHAR(SYSDATE,''HH24'') = ''12'''

ルール式の詳細は、「新規ルールの作成」を参照してください。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Check UPDATE operations',
rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''');
END;
/

CREATE_RULE_SETプロシージャ

CREATE_RULE_SET プロシージャはルール・セットを作成します。ルール・セットを作成した後で、CREATE_RULEおよびADD_RULE_TO_RULE_SETプロシージャを使用してルールを作成し、ルール・セットに追加します。

構文

DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    IN VARCHAR2,
description      IN VARCHAR2,
enabled          IN VARCHAR2,
eval_options     IN NUMBER,
audit_options    IN NUMBER,
fail_options     IN NUMBER,
fail_message     IN VARCHAR2,
fail_code        IN NUMBER,
handler_options  IN NUMBER,
handler          IN VARCHAR2,
is_static        IN BOOLEAN DEFAULT FALSE);

パラメータ

表12-15 CREATE_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

ルール・セット名(大/小文字混在で最大90文字)。空白を使用できます。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

description

ルール・セットの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、ルール・セットが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。デフォルトはYです。

eval_options

ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。

- DBMS_MACUTL.G_RULESET_EVAL_ALL: ルール・セット自体がTrue(デフォルト)と評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。

- DBMS_MACUTL.G_RULESET_EVAL_ANY: ルール・セット自体がTrueと評価されるためには、ルール・セットの少なくとも1つのルールがTrueと評価される必要があります。

audit_options

次の設定のいずれかを選択します。

- DBMS_MACUTL.G_RULESET_AUDIT_OFF: ルール・セットの監査を無効にします(デフォルト)。

- DBMS_MACUTL.G_RULESET_AUDIT_FAIL: ルール・セット違反が発生した場合に監査レコードを作成します。

- DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格の場合に監査レコードを作成します。

- DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格と不合格のどちらの場合も監査レコードを作成します。

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

- DBMS_MACUTL.G_RULESET_FAIL_SHOW: エラー・メッセージを表示します(デフォルト)。

- DBMS_MACUTL.G_RULESET_FAIL_SILENT: エラー・メッセージを表示しません。

詳細は、「エラー処理オプション」を参照してください。

fail_message

大/小文字混在の最大80文字で、失敗を示すエラー・メッセージを入力し、fail_codeで指定した失敗コードに関連付けます。

fail_code

-20000から-20999または20000から20999の範囲の数値を入力し、fail_messageパラメータに関連付けます。

handler_options

次の設定のいずれかを選択します。

- DBMS_MACUTL.G_RULESET_HANDLER_OFF: エラー処理を無効にします(デフォルト)。

- DBMS_MACUTL.G_RULESET_HANDLER_FAIL: ルール・セット失敗時にハンドラをコールします。

- DBMS_MACUTL.G_RULESET_HANDLER_SUCCESS: ルール・セット成功時にハンドラをコールします。

詳細は、「エラー処理オプション」を参照してください。

handler

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

詳細は、「エラー処理オプション」を参照してください。

is_static

オプションです。アクセスされる際にルール・セットが評価される頻度を決定します。デフォルトはFALSEです。

- TRUE: ルール・セットはユーザー・セッション中に1回、評価されます。その後、値は再利用されます。

- FALSE: ルール・セットは毎回評価されます。

例

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    => 'Limit_DBA_Access',
description      => 'DBA access through predefined processes',
enabled          => DBMS_MACUTL.G_YES,
eval_options     => 2,
audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS,
fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SILENT,
fail_message     => '',
fail_code        => 20461,
handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_FAIL,
handler          => 'dbavowner.email_alert',
is_static        => TRUE);
END;
/

関連項目:
例14-2「DBMS_MACUTL定数を使用したルール・セットの作成」

DELETE_RULEプロシージャ

DELETE_RULEプロシージャはルールを削除します。

構文

DBMS_MACADM.DELETE_RULE(
rule_name IN VARCHAR2);

パラメータ

表12-16 DELETE_RULEのパラメータ

パラメータ

説明

rule_name

ルール名。

現行のデータベース・インスタンスで既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

例

EXEC DBMS_MACADM.DELETE_RULE('Check UPDATE operations');

DELETE_RULE_FROM_RULE_SETプロシージャ

DELETE_RULE_FROM_RULE_SETプロシージャは、ルールをルール・セットから削除します。

構文

DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
rule_set_name IN VARCHAR2,
rule_name     IN VARCHAR2);

パラメータ

表12-17 DELETE_RULE_FROM_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

ルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

rule_name

ルール・セットから削除するルール。

現行のデータベース・インスタンスで既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_RULE_FROM_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
rule_name     => 'Check UPDATE operations');
END;
/

DELETE_RULE_SETプロシージャ

DELETE_RULE_SETプロシージャはルール・セットを削除します。

構文

DBMS_MACADM.DELETE_RULE_SET(
rule_set_name IN VARCHAR2);

パラメータ

表12-18 DELETE_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

ルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_RULE_SET('Limit_DBA_Access');

RENAME_RULEプロシージャ

RENAME_RULEプロシージャは、ルールの名前を変更します。名前の変更は、そのルールが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_RULE(
rule_name  IN VARCHAR2,
new_name   IN VARCHAR2);

パラメータ

表12-19 RENAME_RULEのパラメータ

パラメータ

説明

rule_name

現在のルール名。

現行のデータベース・インスタンスで既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

new_name

新しいルール名(大/小文字混在で最大90文字)。

例

BEGIN
DBMS_MACADM.RENAME_RULE(
rule_name  => 'Check UPDATE operations',
new_name   => 'Check Sector 2 Processes');
END;
/

RENAME_RULE_SETプロシージャ

RENAME_RULE_SETプロシージャは、ルール・セットの名前を変更します。名前の変更は、そのルール・セットが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_RULE_SET(
rule_set_name IN VARCHAR2,
new_name      IN VARCHAR2);

パラメータ

表12-20 RENAME_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

現在のルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

new_name

新しいルール・セット名(大/小文字混在で最大90文字)。空白を使用できます。

例

BEGIN
DBMS_MACADM.RENAME_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
new_name      => 'Limit Sector 2 Access');
END;
/

SYNC_RULESプロシージャ

SYNC_RULESプロシージャは、Oracle Database Vaultルールとアドバンスト・キューイング・ルール・エンジンの同期をとります。ADD_RULE_TO_RULESET、DELETE_RULE、UPDATE_RULEの各操作のロールバック後には、この操作を即時実行する必要があります。

構文

DBMS_MACADM.SYNC_RULES();

パラメータ

なし。

例

EXEC DBMS_MACADM.SYNC_RULES();

UPDATE_RULEプロシージャ

UPDATE_RULEプロシージャはルールを更新します。

構文

DBMS_MACADM.UPDATE_RULE(
rule_name  IN VARCHAR2,
rule_expr  IN VARCHAR2);

パラメータ

表12-21 UPDATE_RULEのパラメータ

パラメータ

説明

rule_name

ルール名。

現行のデータベース・インスタンスで既存のルールを検索するには、「DVSYS.DBA_DV_RULEビュー」で説明されているDVSYS.DBA_DV_RULEビューに問い合せます。

ルール・セットに関連付けられているルールを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEに問い合せます。

rule_expr

PL/SQL BOOLEAN式。

式に引用符が含まれる場合、二重引用符は使用しないでください。その場合は、2つの一重引用符を使用します。式全体を一重引用符で囲んでください。次に例を示します。

'TO_CHAR(SYSDATE,''HH24'') = ''12'''

ルール式の詳細は、「新規ルールの作成」を参照してください。

既存のルール式を検索するには、DVSYS.DBA_DV_RULEビューに問い合せます。

例

BEGIN
DBMS_MACADM.UPDATE_RULE(
rule_name  => 'Check UPDATE operations',
rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM'' AND
(
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''APPSRVR%'' OR
UPPER(SYS_CONTEXT(''USERENV'',''MODULE'')) LIKE ''DBAPP%'' )'
);
END;
/

UPDATE_RULE_SETプロシージャ

UPDATE_RULE_SETプロシージャはルール・セットを更新します。

構文

DBMS_MACADM.UPDATE_RULE_SET(
rule_set_name    IN VARCHAR2,
description      IN VARCHAR2,
enabled          IN VARCHAR2,
eval_options     IN NUMBER,
audit_options    IN NUMBER,
fail_options     IN NUMBER,
fail_message     IN VARCHAR2,
fail_code        IN NUMBER,
handler_options  IN NUMBER,
handler          IN VARCHAR2,
is_static        IN BOOLEAN DEFAULT FALSE);

パラメータ

表12-22 UPDATE_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

ルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

description

ルール・セットの目的の説明(大/小文字混在で最大1024文字)。

enabled

DBMS_MACUTL.G_YES(Yes)では、ルール・セット・チェックが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。

enabled設定のデフォルトは設定済の値で、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることで確認できます。

eval_options

ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを入力します。

- DBMS_MACUTL.G_RULESET_EVAL_ALL: ルール・セット自体がTrueと評価されるためには、ルール・セットのルールがすべてTrueと評価される必要があります。

- DBMS_MACUTL.G_RULESET_EVAL_ANY: ルール・セット自体がTrueと評価されるためには、ルール・セットの少なくとも1つのルールがTrueと評価される必要があります。

eval_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることで確認できます。

audit_options

次の設定のいずれかを選択します。

- DBMS_MACUTL.G_RULESET_AUDIT_OFF: ルール・セットの監査を無効にします。

- DBMS_MACUTL.G_RULESET_AUDIT_FAIL: ルール・セット違反が発生した場合に監査レコードを作成します。

- DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格の場合に監査レコードを作成します。

- DBMS_MACUTL.G_RULESET_AUDIT_FAIL + DBMS_MACUTL.G_RULESET_AUDIT_SUCCESS: ルール・セット評価が合格と不合格のどちらの場合も監査レコードを作成します。

audit_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

- DBMS_MACUTL.G_RULESET_FAIL_SHOW: エラー・メッセージを表示します。

- DBMS_MACUTL.G_RULESET_FAIL_SILENT: エラー・メッセージを表示しません。

fail_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「エラー処理オプション」を参照してください。

fail_message

失敗を示すエラー・メッセージ。大/小文字混在の最大80文字で、fail_codeで指定した失敗コードに関連付けます。

fail_code

-20000から-20999または20000から20999の範囲の数値を入力し、fail_messageパラメータに関連付けます。

handler_options

次の設定のいずれかを選択します。

- DBMS_MACUTL.G_RULESET_HANDLER_OFF: エラー処理を無効にします。

- DBMS_MACUTL.G_RULESET_HANDLER_FAIL: ルール・セット失敗時にハンドラをコールします。

- DBMS_MACUTL.G_RULESET_HANDLER_SUCCESS: ルール・セット成功時にハンドラをコールします。

handler_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「エラー処理オプション」を参照してください。

handler

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

詳細は、「エラー処理オプション」を参照してください。

is_static

オプションです。SQL文によってアクセスされる際に、ルール・セットが評価される頻度を決定します。

- TRUE: ルール・セットはユーザー・セッション中に1回、評価されます。その後、値は再利用されます。

- FALSE: SQL文がアクセスするたびに、ルール・セットは評価されます(デフォルト)。

例

BEGIN
DBMS_MACADM.UPDATE_RULE_SET(
rule_set_name    => 'Limit_DBA_Access',
description      => 'DBA access through predefined processes',
enabled          => DBMS_MACUTL.G_YES,
eval_options     => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SHOW,
fail_message     => 'Access denied!',
fail_code        => 20900,
handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_OFF,
handler          => '',
is_static        =  TRUE);
END;
/

DBMS_MACADMのコマンド・ルール・プロシージャ

表12-23に、コマンド・ルールの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

コマンド・ルールの詳細は、第6章「コマンド・ルールの構成」を参照してください。また、コマンド・ルール・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-23 DBMS_MACADMのコマンド・ルール構成プロシージャ

プロシージャ

説明

CREATE_COMMAND_RULEプロシージャ

コマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

DELETE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を削除します。

UPDATE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を更新します。

CREATE_COMMAND_RULEプロシージャ

CREATE_COMMAND_RULEプロシージャはコマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

構文

DBMS_MACADM.CREATE_COMMAND_RULE(
command         IN VARCHAR2,
rule_set_name   IN VARCHAR2,
object_owner    IN VARCHAR2,
object_name     IN VARCHAR2,
enabled         IN VARCHAR2);

パラメータ

表12-24 CREATE_COMMAND_RULEのパラメータ

パラメータ

説明

command

保護するSQL文。

次の項も参照してください。

- 既存のコマンド・ルールのリストは、「DVSYS.DBA_DV_COMMAND_RULEビュー」を参照してください

- 使用可能なSQL文のリストは、「コマンド・ルールで保護できるSQL文」を参照してください。

- SQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

rule_set_name

このコマンド・ルールに関連付けるルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。SELECT、INSERT、UPDATE、DELETEおよびEXECUTE文以外は、ワイルドカード%を使用できます。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)では、コマンド・ルールが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。デフォルト値はDBMS_MACUTL.G_YESです。

例

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE(
command         => 'SELECT',
rule_set_name   => 'Limit Sector 2 Access',
object_owner    => 'SYSADM',
object_name     => 'EMP_DATA',
enabled         => DBMS_MACUTL.G_YES);
END;
/

DELETE_COMMAND_RULEプロシージャ

DELETE_COMMAND_RULEプロシージャは、コマンド・ルールの宣言を削除します。

構文

DBMS_MACADM.DELETE_COMMAND_RULE(
command      IN VARCHAR2,
object_owner IN VARCHAR2,
object_name  IN VARCHAR2);

パラメータ

表12-25 DELETE_COMMAND_RULEのパラメータ

パラメータ

説明

command

コマンド・ルールで保護されるSQL文。

使用可能なコマンド・ルールを検索するには、「DVSYS.DBA_DV_COMMAND_RULEビュー」で説明されているDVSYS.DBA_DV_COMMAND_RULEビューに問い合せます。

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。

現行のデータベース・インスタンスで使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_COMMAND_RULE(
command      => 'SELECT',
object_owner => 'SYSADM',
object_name  => 'EMP_DATA');
END;
/

UPDATE_COMMAND_RULEプロシージャ

UPDATE_COMMAND_RULEプロシージャは、コマンド・ルールの宣言を更新します。

構文

DBMS_MACADM.UPDATE_COMMAND_RULE(
command        IN VARCHAR2,
rule_set_name  IN VARCHAR2,
object_owner   IN VARCHAR2,
object_name    IN VARCHAR2,
enabled        IN VARCHAR2);

パラメータ

表12-26 UPDATE_COMMAND_RULEのパラメータ

パラメータ

説明

command

保護するSQL文。

次の項も参照してください。

- 使用可能なSQL文のリストは、「コマンド・ルールで保護できるSQL文」を参照してください。

- 既存のコマンド・ルールのリストは、「DVSYS.DBA_DV_COMMAND_RULEビュー」を参照してください

- SQL文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

rule_set_name

このコマンド・ルールに関連付けるルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

object_owner

このコマンド・ルールを適用するデータベース・スキーマ。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。詳細は、「コマンド・ルールの作成および編集」の「オブジェクト所有者」を参照してください。

object_name

オブジェクト名。(ワイルドカード%を使用できます。コマンド・ルールで保護されるオブジェクトの詳細は、「コマンド・ルールの作成および編集」の「オブジェクト名」を参照してください。)

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)では、コマンド・ルールが有効になり、DBMS_MACUTL.G_NO(No)では無効になります。

enabledのデフォルトは設定済の値で、DVSYS.DBA_DV_COMMAND_RULEデータ・ディクショナリ・ビューに問い合せることで確認できます。

例

BEGIN
DBMS_MACADM.UPDATE_COMMAND_RULE(
command         => 'SELECT',
rule_set_name   => 'Limit Sector 2 Access',
object_owner    => 'SYSADM',
object_name     => '%',
enabled         => DBMS_MACUTL.G_NO);
END;
/

DBMS_MACADMのファクタ・プロシージャおよびファンクション

表12-27に、ファクタの構成に使用できるDBMS_MACADMパッケージのプロシージャおよびファンクションを示します。

関連項目:

- ファクタの詳細は、第7章「ファクタの構成」を参照してください。

- ファクタ・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

- ファクタとともに使用できる一連のPL/SQLインタフェースについては、第15章「Oracle Database Vault PL/SQLインタフェースの使用方法」を参照してください。

表12-27 DBMS_MACADMのファクタ構成プロシージャ

プロシージャ

説明

ADD_FACTOR_LINKプロシージャ

2つのファクタの親子関係を指定します。

ADD_POLICY_FACTORプロシージャ

ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。

CHANGE_IDENTITY_FACTORプロシージャ

アイデンティティを別ファクタと関連付けます。

CHANGE_IDENTITY_VALUEプロシージャ

アイデンティティの値を更新します。

CREATE_DOMAIN_IDENTITYプロシージャ

Oracle Real Application Clusters(Oracle RAC)データベース・ノードをドメイン・ファクタ・アイデンティティに追加し、Oracle Label Securityポリシーに従ってラベルを付けます。

CREATE_FACTORプロシージャ

ファクタを作成します。

CREATE_FACTOR_TYPEプロシージャ

ファクタ・タイプを作成します。

CREATE_IDENTITYプロシージャ

アイデンティティを作成します。

CREATE_IDENTITY_MAPプロシージャ

リンクされた子ファクタ(サブファクタ)の値からファクタのアイデンティティを導出するために使用される一連のテストを定義します。

DELETE_FACTORプロシージャ

ファクタを削除します。

DELETE_FACTOR_LINKプロシージャ

2つのファクタの親子関係を削除します。

DELETE_FACTOR_TYPEプロシージャ

ファクタ・タイプを削除します。

DELETE_IDENTITYプロシージャ

アイデンティティを削除します。

DELETE_IDENTITY_MAPプロシージャ

ファクタからアイデンティティ・マップを削除します。

DROP_DOMAIN_IDENTITYプロシージャ

Oracle RACデータベース・ノードをドメインから削除します。

GET_INSTANCE_INFOファンクション

現行データベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します(VARCHAR2値を返します)。

GET_SESSION_INFOファンクション

現行セッションについてSYS.V_$SESSIONシステム表の情報を返します(VARCHAR2値を返します)。

RENAME_FACTORプロシージャ

ファクタの名前を変更します。名前の変更は、そのファクタが使用されているすべての箇所に反映されます。

RENAME_FACTOR_TYPEプロシージャ

ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。

UPDATE_FACTORプロシージャ

ファクタを更新します。

UPDATE_FACTOR_TYPEプロシージャ

ファクタ・タイプの説明を更新します。

UPDATE_IDENTITYプロシージャ

ファクタ・アイデンティティの信頼レベルを更新します。

ADD_FACTOR_LINKプロシージャ

ADD_FACTOR_LINKプロシージャは、2つのファクタの親子関係を指定します。

構文

DBMS_MACADM.ADD_FACTOR_LINK(
parent_factor_name IN VARCHAR2,
child_factor_name  IN VARCHAR2,
label_indicator    IN VARCHAR2);

パラメータ

表12-28 ADD_FACTOR_LINKのパラメータ

パラメータ

説明

parent_factor_name

親ファクタ名。

現行のデータベース・インスタンスで既存の親子ファクタを検索するには、「DVSYS.DBA_DV_FACTOR_LINKビュー」で説明されているDVSYS.DBA_DV_FACTOR_LINKビューに問い合せます。

child_factor_name

子ファクタ名。

label_indicator

親ファクタにリンクされる子ファクタを、Oracle Label Security統合での親ファクタのラベルに含めることを示します。DBMS_MACUTL.G_YES(Yesの場合)またはDBMS_MACUTL.G_NO(Noの場合)のいずれかを指定します。

ファクタに関連付けられているOracle Label Securityのポリシーおよびラベルを検索するには、第16章「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている次のビューに問い合せます。

- DVSYS.DBA_DV_MAC_POLICY: 現行のデータベース・インスタンスに定義されているOracle Label Securityポリシーが表示されます。

- DVSYS.DBA_DV_MAC_POLICY_FACTOR: 現行のデータベース・インスタンスのOracle Label Securityポリシーに関連付けられているファクタが表示されます。

- DVSYS.DBA_DV_POLICY_LABEL: 各ポリシーのDVSYS.DBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。

例

BEGIN
DBMS_MACADM.ADD_FACTOR_LINK(
parent_factor_name => 'HQ_ClientID',
child_factor_name  => 'Div1_ClientID',
label_indicator    => DBMS_MACUTL.G_YES);
END;
/

ADD_POLICY_FACTORプロシージャ

ADD_POLICY_FACTORプロシージャは、ファクタのラベルをポリシーのOracle Label Securityラベルに含めることを指定します。

構文

DBMS_MACADM.ADD_POLICY_FACTOR(
policy_name  IN VARCHAR2,
factor_name  IN VARCHAR2);

パラメータ

表12-29 ADD_POLICY_FACTORのパラメータ

パラメータ

説明

policy_name

Oracle Label Securityポリシー名。

現行のデータベース・インスタンスに定義されているポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。

factor_name

ファクタ名。

既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

例

BEGIN
DBMS_MACADM.ADD_POLICY_FACTOR(
policy_name  => 'AccessData',
factor_name  => 'Sector2_ClientID');
END;
/

CHANGE_IDENTITY_FACTORプロシージャ

CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティを別ファクタと関連付けます。

構文

DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
factor_name     IN VARCHAR2,
value           IN VARCHAR2,
new_factor_name IN VARCHAR2);

パラメータ

表12-30 CHANGE_IDENTITY_FACTORのパラメータ

パラメータ

説明

factor_name

現在のファクタ名。

既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

value

更新するアイデンティティの値。

現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のアイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

new_factor_name

アイデンティティと関連付けるファクタの名前。「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せることで検索できます。

例

BEGIN
DBMS_MACADM.CHANGE_IDENTITY_FACTOR(
factor_name     => 'Sector2_ClientID',
value           => 'intranet',
new_factor_name => 'Sector4_ClientID');
END;
/

CHANGE_IDENTITY_VALUEプロシージャ

CHANGE_IDENTITY_FACTORプロシージャは、アイデンティティの値を更新します。

構文

DBMS_MACADM.CHANGE_IDENTITY_VALUE(
factor_name  IN VARCHAR2,
value        IN VARCHAR2,
new_value    IN VARCHAR2);

パラメータ

表12-31 CHANGE_IDENTITY_VALUEのパラメータ

パラメータ

説明

factor_name

ファクタ名。

既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

value

アイデンティティに関連付けられている現在の値。

現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のアイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

new_value

新しいアイデンティティ値(大/小文字混在で最大1024文字)。

例

BEGIN
DBMS_MACADM.CHANGE_IDENTITY_VALUE(
factor_name  => 'Sector2_ClientID',
value        => 'remote',
new_value    => 'intranet');
END;
/

CREATE_DOMAIN_IDENTITYプロシージャ

CREATE_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clusters(Oracle RAC)データベース・ノードをドメイン・ファクタ・アイデンティティに追加し、Oracle Label Securityポリシーに従ってラベルを付けます。

構文

DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
domain_name  IN VARCHAR2,
domain_host  IN VARCHAR2,
policy_name  IN VARCHAR2 DEFAULT NULL,
domain_label IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-32 CREATE_DOMAIN_IDENTITYのパラメータ

パラメータ

説明

domain_name

ホストを追加するドメインの名前。

分散データベース・システムのネットワーク構造内でデータベースの論理的な場所を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されるOracle Real Application Clustersホスト名。

データベースのホスト名を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_HOSTNAMEファンクションを実行します。

policy_name

Oracle Label Securityポリシー名。ポリシー名を省略すると、ドメインはどのポリシーにも関連付けられません。

使用可能なポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

domain_label

Oracle Label Securityポリシーを追加するドメインの名前。

例

BEGIN
DBMS_MACADM.CREATE_DOMAIN_IDENTITY(
domain_name  => 'example',
domain_host  => 'mydom_host',
policy_name  => 'AccessData',
domain_label => 'sensitive');
END;
/

CREATE_FACTORプロシージャ

CREATE_FACTORプロシージャはファクタを作成します。ファクタを作成した後で、「CREATE_IDENTITYプロシージャ」で説明されているCREATE_IDENTITYプロシージャを使用して、アイデンティティを付与できます。

構文

DBMS_MACADM.CREATE_FACTOR(
factor_name       IN VARCHAR2,
factor_type_name  IN VARCHAR2,
description       IN VARCHAR2,
rule_set_name     IN VARCHAR2,
get_expr          IN VARCHAR2,
validate_expr     IN VARCHAR2,
identify_by       IN NUMBER,
labeled_by        IN NUMBER,
eval_options      IN NUMBER,
audit_options     IN NUMBER,
fail_options      IN NUMBER);

パラメータ

表12-33 CREATE_FACTORのパラメータ

パラメータ

説明

factor_name

ファクタ名(空白を使用せず、大/小文字混在で最大28文字)。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

factor_type_name

ファクタのタイプ(空白を使用せず、大/小文字混在で最大30文字)。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタの目的の説明(大/小文字混在で最大1024文字)。

rule_set_name

ファクタ・アイデンティティを設定する時期および方法の制御にルール・セットを使用する場合のルール・セット名。

既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。ファクタへのルール・セットの割当ての詳細は、「割当てルール・セット」を参照してください。

get_expr

ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「取得メソッド」を参照してください。audit_optionsパラメータも参照してください。

validate_expr

ファクタを検証するプロシージャの名前。これは、ブール値(TRUEまたはFALSE)を返してファクタのアイデンティティを検証する有効なPL/SQL式です。詳細は、「検証メソッド」を参照してください。

identify_by

get_exprパラメータの式セットに基づいてファクタのアイデンティティを決定するオプション。

- DBMS_MACUTL.G_IDENTIFY_BY_CONSTANT: 定数

- DBMS_MACUTL.G_IDENTIFY_BY_METHOD: メソッド

- DBMS_MACUTL.G_IDENTIFY_BY_FACTOR: ファクタ

- DBMS_MACUTL.G_IDENTIFY_BY_CONTEXT: コンテキスト

詳細は、「ファクタの識別」を参照してください。

labeled_by

ファクタのラベル付けのオプション。

- DBMS_MACUTL.G_LABELED_BY_SELF: Oracle Label Securityポリシー(デフォルト)に関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

- DBMS_MACUTL.G_LABELED_BY_FACTORS: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

詳細は、「ファクタ・ラベリング」を参照してください。

eval_options

ユーザーがログインするときにファクタを評価するオプション。

- DBMS_MACUTL.G_EVAL_ON_SESSION: データベース・セッションの作成時(デフォルト)

- DBMS_MACUTL.G_EVAL_ON_ACCESS: ファクタがアクセスされる際に毎回

- DBMS_MACUTL.G_EVAL_ON_STARTUP: 起動時

詳細は、「評価」を参照してください。

audit_options

カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。

- DBMS_MACUTL.G_AUDIT_OFF: 監査を無効にします。

- DBMS_MACUTL.G_AUDIT_ALWAYS: 常に監査します。

- DBMS_MACUTL.G_AUDIT_ON_GET_ERROR: get_exprがエラーを戻した場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_GET_NULL: get_exprがnullの場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_VALIDATE_ERROR: 検証プロシージャがエラーを戻した場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_VALIDATE_FALSE: 検証プロシージャがfalseの場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NULL: 信頼レベルが設定されていない場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NEG: 信頼レベルが負の場合に監査します。

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

- DBMS_MACUTL.G_FAIL_WITH_MESSAGE: エラー・メッセージを表示します(デフォルト)。

- DBMS_MACUTL.G_FAIL_SILENTLY: エラー・メッセージを表示しません。

詳細は、「エラー・オプション」を参照してください。

例

BEGIN
DBMS_MACADM.CREATE_FACTOR(
factor_name       => 'Sector2_DB',
factor_type_name  => 'Instance',
description       => ' ',
rule_set_name     => 'Limit_DBA_Access',
get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))',
validate_expr     => 'dbavowner.check_db_access',
identify_by       => DBMS_MACUTL.G_IDENTIFY_BY_METHOD,
labeled_by        => DBMS_MACUTL.G_LABELED_BY_SELF,
eval_options      => DBMS_MACUTL.G_EVAL_ON_SESSION,
audit_options     => DBMS_MACUTL.G_AUDIT_OFF,
fail_options      => DBMS_MACUTL.G_FAIL_SILENTLY);
END;
/

CREATE_FACTOR_TYPEプロシージャ

CREATE_FACTOR_TYPEプロシージャは、ユーザー定義のファクタ・タイプを作成します。

構文

DBMS_MACADM.CREATE_FACTOR_TYPE(
name        IN VARCHAR2,
description IN VARCHAR2);

パラメータ

表12-34 CREATE_FACTOR_TYPEのパラメータ

パラメータ

説明

name

ファクタ・タイプ名(空白を使用せず、大/小文字混在で最大30文字)。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。

例

BEGIN
DBMS_MACADM.CREATE_FACTOR_TYPE(
name        => 'Sector2Instance',
description => 'Checks DB instances used in Sector 2');
END;
/

CREATE_IDENTITYプロシージャ

CREATE_IDENTITYプロシージャは、指定されたファクタに対してアイデンティティおよび関連付けられた信頼レベルを割り当てます。ファクタの作成後には、アイデンティティを割り当てる必要があります。

構文

DBMS_MACADM.CREATE_IDENTITY(
factor_name  IN VARCHAR2,
value        IN VARCHAR2,
trust_level  IN NUMBER);

パラメータ

表12-35 CREATE_IDENTITYのパラメータ

パラメータ

説明

factor_name

ファクタ名。

既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

value

ファクタの実際の値(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。

trust_level

同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。

信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。

例

BEGIN
DBMS_MACADM.CREATE_IDENTITY(
factor_name  => 'Sector2_ClientID',
value        => 'intranet',
trust_level  => 5);
END;
/

CREATE_IDENTITY_MAPプロシージャ

CREATE_IDENTITY_MAPプロシージャは、リンクされた子ファクタ(サブファクタ)の値からファクタのアイデンティティを導出するために使用される一連のテストを定義します。

構文

DBMS_MACADM.CREATE_IDENTITY_MAP(
identity_factor_name  IN VARCHAR2,
identity_factor_value IN VARCHAR2,
parent_factor_name    IN VARCHAR2,
child_factor_name     IN VARCHAR2,
operation             IN VARCHAR2,
operand1              IN VARCHAR2,
operand2              IN VARCHAR2);

パラメータ

表12-36 CREATE_IDENTITY_MAPのパラメータ

パラメータ

説明

identity_factor_name

アイデンティティ・マップの対象のファクタ。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

identity_factor_value

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

既存のファクタ・アイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のファクタ・アイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPを使用します。

parent_factor_name

マップが関連する親ファクタ・リンク。

既存の親子ファクタ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPビューに問い合せます。

child_factor_name

マップが関連する子ファクタ・リンク。

operation

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。

operand1

関係演算子の左オペランド。入力する下限値を表します。

operand2

関係演算子の右オペランド。入力する上限値を表します。

例

BEGIN
DBMS_MACADM.CREATE_IDENTITY_MAP(
identity_factor_name  => 'Sector2_ClientID',
identity_factor_value => 'intranet',
parent_factor_name    => 'HQ_ClientID',
child_factor_name     => 'Div1_ClientID',
operation             => '<',
operand1              => '192.0.2.50',
operand2              => '192.0.2.100');
END;
/

DELETE_FACTORプロシージャ

DELETE_FACTORプロシージャはファクタを削除します。

構文

DBMS_MACADM.DELETE_FACTOR(
factor_name IN VARCHAR2);

パラメータ

表12-37 DELETE_FACTORのパラメータ

パラメータ

説明

factor_name

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_FACTOR('Sector2_ClientID');

DELETE_FACTOR_LINKプロシージャ

DELETE_FACTOR_LINKプロシージャは、2つのファクタの親子関係を削除します。

構文

DBMS_MACADM.DELETE_FACTOR_LINK(
parent_factor_name IN VARCHAR2,
child_factor_name  IN VARCHAR2);

パラメータ

表12-38 DELETE_FACTOR_LINKのパラメータ

パラメータ

説明

parent_factor_name

ファクタ名。

現行のデータベース・インスタンスで親子マッピングに使用されているファクタを検索するには、「DVSYS.DBA_DV_FACTOR_LINKビュー」で説明されているDVSYS.DBA_DV_FACTOR_LINKビューに問い合せます。

child_factor_name

ファクタ名。

例

BEGIN
DBMS_MACADM.DELETE_FACTOR_LINK(
parent_factor_name => 'HQ_ClientID',
child_factor_name  => 'Div1_ClientID');
END;
/

DELETE_FACTOR_TYPEプロシージャ

DELETE_FACTOR_TYPEプロシージャはファクタ・タイプを削除します。

構文

DBMS_MACADM.DELETE_FACTOR_TYPE(
name IN VARCHAR2);

パラメータ

表12-39 DELETE_FACTOR_TYPEのパラメータ

パラメータ

説明

name

ファクタ・タイプ名。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_FACTOR_TYPE('Sector2Instance');

DELETE_IDENTITYプロシージャ

DELETE_IDENTITYプロシージャは、既存のファクタからアイデンティティを削除します。

構文

DBMS_MACADM.DELETE_IDENTITY(
factor_name IN VARCHAR2,
value       IN VARCHAR2);

パラメータ

表12-40 DELETE_IDENTITYのパラメータ

パラメータ

説明

factor_name

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

value

ファクタに関連付けられているアイデンティティ値。

現行のデータベース・インスタンスで各ファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_IDENTITY(
factor_name => 'Sector2_ClientID',
value       => 'intranet');
END;
/

DELETE_IDENTITY_MAPプロシージャ

DELETE_IDENTITY_MAPプロシージャは、ファクタのアイデンティティ・マップを削除します。

構文

DBMS_MACADM.DELETE_IDENTITY_MAP(
identity_factor_name  IN VARCHAR2,
identity_factor_value IN VARCHAR2,
parent_factor_name    IN VARCHAR2,
child_factor_name     IN VARCHAR2,
operation             IN VARCHAR2,
operand1              IN VARCHAR2,
operand2              IN VARCHAR2);

パラメータ

表12-41 DELETE_IDENTITY_MAPのパラメータ

パラメータ

説明

identity_factor_name

アイデンティティ・マップの対象のファクタ。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

identity_factor_value

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

既存のファクタ・アイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

現行のファクタ・アイデンティティ・マップを検索するには、「DVSYS.DBA_DV_IDENTITY_MAPビュー」で説明されているDVSYS.DBA_DV_IDENTITY_MAPに問い合せます。

parent_factor_name

マップが関連する親ファクタ・リンク。

既存の親子ファクタを検索するには、「DVSYS.DBA_DV_FACTOR_LINKビュー」で説明されているDVSYS.DBA_DV_FACTOR_linkビューに問い合せます。

child_factor_name

マップが関連する子ファクタ。

operation

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。

operand1

関係演算子の左(下限値)オペランド。

operand2

関係演算子の右(上限値)オペランド。

例

BEGIN
DBMS_MACADM.DELETE_IDENTITY_MAP(
identity_factor_name  => 'Sector2_ClientID',
identity_factor_value => 'intranet',
parent_factor_name    => 'HQ_ClientID',
child_factor_name     => 'Div1_ClientID',
operation             => '<',
operand1              => '192.0.2.10',
operand2              => '192.0.2.15');
END;
/

DROP_DOMAIN_IDENTITYプロシージャ

DROP_DOMAIN_IDENTITYプロシージャは、Oracle Real Application Clustersデータベース・ノードをドメインから削除します。

構文

DBMS_MACADM.DROP_DOMAIN_IDENTITY(
domain_name  IN VARCHAR2,
domain_host  IN VARCHAR2);

パラメータ

表12-42 DROP_DOMAIN_IDENTITYのパラメータ

パラメータ

説明

domain_name

ホストが追加されたドメインの名前。

DB_DOMAIN初期化パラメータで指定されたデータベースのドメインを検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されたOracle Real Application Clustersホスト名。

指定されたデータベースのホスト名を検索するには、「Oracle Database VaultのPL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_HOSTNAMEファンクションを実行します。

例

BEGIN
DBMS_MACADM.DROP_DOMAIN_IDENTITY(
domain_name  => 'example',
domain_host  => 'mydom_host');
END;
/

GET_INSTANCE_INFOファンクション

GET_INSTANCE_INFOファンクションは、現行のデータベース・インスタンスについてSYS.V_$INSTANCEシステム表の情報を返します。V$INSTANCEデータ・ディクショナリ・ビューにも、この表のデータベース・インスタンス情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。

構文

DBMS_MACADM.GET_INSTANCE_INFO(
p_parameter IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表12-43 GET_INSTANCE_INFOのパラメータ

パラメータ

説明

p_parameter

SYS.V_$INSTANCEシステム表の列名。

例

DECLARE
instance_var varchar2 := null;
BEGIN
instance_var = DBMS_MACADM.GET_INSTANCE_INFO('INSTANCE_NAME');
END;
/

GET_SESSION_INFOファンクション

GET_SESSION_INFOファンクションは、現行セッションについてSYS.V_$SESSIONシステム表の情報を返します。V$SESSIONデータ・ディクショナリ・ビューにも、この表のセッション情報が含まれます。詳細は、『Oracle Databaseリファレンス』を参照してください。

構文

DBMS_MACADM.GET_SESSION_INFO(
p_parameter IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表12-44 GET_SESSION_INFOのパラメータ

パラメータ

説明

p_parameter

SYS.V_$SESSIONシステム表の列名。

例

DECLARE
session_var varchar2 := null;
BEGIN
session_var = DBMS_MACADM.GET_SESSION_INFO('PROCESS');
END;
/

RENAME_FACTORプロシージャ

RENAME_FACTORプロシージャは、ファクタの名前を変更します。名前の変更は、そのファクタが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_FACTOR(
factor_name     IN VARCHAR2,
new_factor_name IN VARCHAR2);

パラメータ

表12-45 RENAME_FACTORのパラメータ

パラメータ

説明

factor_name

現在のファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

new_factor_name

新しいファクタ名(空白を使用せず、大/小文字混在で最大28文字)。

例

BEGIN
DBMS_MACADM.RENAME_FACTOR(
factor_name     => 'Sector2_ClientID',
new_factor_name => 'Sector2_Clients');
END;
/

RENAME_FACTOR_TYPEプロシージャ

RENAME_FACTORプロシージャは、ファクタ・タイプの名前を変更します。名前の変更は、そのファクタ・タイプが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_FACTOR_TYPE(
old_name  IN VARCHAR2,
new_name  IN VARCHAR2);

パラメータ

表12-46 RENAME_FACTOR_TYPEのパラメータ

パラメータ

説明

old_name

現在のファクタ・タイプ名。

現行のデータベース・インスタンスで既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

new_name

新しいファクタ・タイプ名(空白を使用せず、大/小文字混在で最大30文字)。

例

BEGIN
DBMS_MACADM.RENAME_FACTOR_TYPE(
old_name  => 'Sector2Instance',
new_name  => 'Sector2DBInstance');
END;
/

UPDATE_FACTORプロシージャ

UPDATE_FACTORプロシージャは、ファクタ・タイプの説明を更新します。

構文

DBMS_MACADM.UPDATE_FACTOR(
factor_name       IN VARCHAR2,
factor_type_name  IN VARCHAR2,
description       IN VARCHAR2,
rule_set_name     IN VARCHAR2,
get_expr          IN VARCHAR2,
validate_expr     IN VARCHAR2,
identify_by       IN NUMBER,
labeled_by        IN NUMBER,
eval_options      IN NUMBER,
audit_options     IN NUMBER,
fail_options      IN NUMBER);

パラメータ

表12-47 UPDATE_FACTOR

パラメータ

説明

factor_name

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

factor_type_name

ファクタ・タイプ名。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタの目的の説明(大/小文字混在で最大1024文字)。

rule_set_name

ファクタ・アイデンティティを設定する時期および方法の制御に使用されるルール・セットの名前。

既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

ファクタへのルール・セットの割当ての詳細は、「割当てルール・セット」を参照してください。

get_expr

ファクタのアイデンティティを取得する有効なPL/SQL式。大/小文字混在で最大255文字まで使用できます。詳細は、「取得メソッド」を参照してください。audit_optionsパラメータも参照してください。

validate_expr

ファクタを検証するプロシージャの名前。これは、ブール値(TRUEまたはFALSE)を返してファクタのアイデンティティを検証する有効なPL/SQL式です。詳細は、「検証メソッド」を参照してください。

identify_by

get_exprパラメータの式セットに基づいてファクタのアイデンティティを決定するオプション。

- DBMS_MACUTL.G_IDENTIFY_BY_CONSTANT: 定数

- DBMS_MACUTL.G_IDENTIFY_BY_METHOD: メソッド

- DBMS_MACUTL.G_IDENTIFY_BY_FACTOR: ファクタ

- DBMS_MACUTL.G_IDENTIFY_BY_CONTEXT: コンテキスト

詳細は、「ファクタの識別」を参照してください。

labeled_by

ファクタのラベル付けのオプション。

- DBMS_MACUTL.G_LABELED_BY_SELF: Oracle Label Securityポリシーに関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

- DBMS_MACUTL.G_LABELED_BY_FACTORS: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

labeled_byのデフォルトは設定済の値で、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「ファクタ・ラベリング」を参照してください。

eval_options

ユーザーがログインするときにファクタを評価するオプション。

- DBMS_MACUTL.G_EVAL_ON_SESSION: データベース・セッションの作成時

- DBMS_MACUTL.G_EVAL_ON_ACCESS:: ファクタがアクセスされる際に毎回

- DBMS_MACUTL.G_EVAL_ON_STARTUP:: 起動時

eval_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「評価」を参照してください。

audit_options

カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。

- DBMS_MACUTL.G_AUDIT_OFF: 監査を無効にします。

- DBMS_MACUTL.G_AUDIT_ALWAYS: 常に監査します。

- DBMS_MACUTL.G_AUDIT_ON_GET_ERROR: get_exprがエラーを戻した場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_GET_NULL: get_exprがnullの場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_VALIDATE_ERROR: 検証プロシージャがエラーを戻した場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_VALIDATE_FALSE: 検証プロシージャがfalseの場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NULL: 信頼レベルが設定されていない場合に監査します。

- DBMS_MACUTL.G_AUDIT_ON_TRUST_LEVEL_NEG: 信頼レベルが負の場合に監査します。

audit_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「監査オプション」を参照してください。

fail_options

ファクタ・エラーをレポートするオプション。

- DBMS_MACUTL.G_FAIL_WITH_MESSAGE: エラー・メッセージを表示します。

- DBMS_MACUTL.G_FAIL_SILENTLY: エラー・メッセージを表示しません。

fail_optionsのデフォルトは設定済の値で、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「エラー・オプション」を参照してください。

例

BEGIN
DBMS_MACADM.UPDATE_FACTOR(
factor_name       => 'Sector2_DB',
factor_type_name  => 'Instance',
description       => ' ',
rule_set_name     => 'Limit_DBA_Access',
get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))',
validate_expr     => 'dbavowner.check_db_access',
identify_by       => DBMS_MACUTL.G_IDENTIFY_BY_METHOD,
labeled_by        => DBMS_MACUTL.G_LABELED_BY_SELF,
eval_options      => DBMS_MACUTL.G_EVAL_ON_ACCESS,
audit_options     => DBMS_MACUTL.G_AUDIT_ALWAYS,
fail_options      => DBMS_MACUTL.G_FAIL_WITH_MESSAGE);
END;
/

UPDATE_FACTOR_TYPEプロシージャ

UPDATE_FACTOR_TYPEプロシージャはファクタ・タイプを更新します。

構文

DBMS_MACADM.UPDATE_FACTOR_TYPE(
name         IN VARCHAR2,
description  IN VARCHAR2);

パラメータ

表12-48 UPDATE_FACTOR_TYPEのパラメータ

パラメータ

説明

name

ファクタ・タイプ名。

現行のデータベース・インスタンスで既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタ・タイプの目的の説明(大/小文字混在で最大1024文字)。

例

BEGIN
DBMS_MACADM.UPDATE_FACTOR_TYPE(
name        => 'Sector2DBInstance',
description => 'Checks DB instances used in Sector 2');
END;
/

UPDATE_IDENTITYプロシージャ

UPDATE_IDENTITYプロシージャは、ファクタ・アイデンティティの信頼レベルを更新します。

構文

DBMS_MACADM.UPDATE_IDENTITY(
factor_name  IN VARCHAR2,
value        IN VARCHAR2,
trust_level  IN NUMBER);

パラメータ

表12-49 UPDATE_IDENTITYのパラメータ

パラメータ

説明

factor_name

ファクタ名。

現行のデータベース・インスタンス内の既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDBSYS.DBA_DV_FACTORビューに問い合せます。

アイデンティティを持つファクタを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYに問い合せます。

value

新しいファクタ・アイデンティティ(大/小文字混在で最大1024文字)。たとえば、IP_Addressファクタのアイデンティティは、192.0.2.12というIPアドレスになります。

trust_level

同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。一般に、信頼レベルの数値が高く設定されているほど信頼の度合いも高くなります。信頼レベル10は、非常に信頼度が高いことを表します。信頼レベルの数値が負の場合は信頼できません。

信頼レベルおよびラベル・セキュリティの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。

例

BEGIN
DBMS_MACADM.UPDATE_IDENTITY(
factor_name  => 'Sector2_ClientID',
value        => 'intranet',
trust_level  => 10);
END;
/

DBMS_MACADMのセキュア・アプリケーション・ロール・プロシージャ

表12-50に、Oracle Database Vaultセキュア・アプリケーション・ロールの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

セキュア・アプリケーション・ロールの詳細は、第8章「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」を参照してください。また、セキュア・アプリケーション・ロール・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-50 DBMS_MACADMのセキュア・アプリケーション・ロール構成プロシージャ

プロシージャ

説明

CREATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。

DELETE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。

RENAME_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。

UPDATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。

CREATE_ROLEプロシージャ

CREATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。

構文

DBMS_MACADM.CREATE_ROLE(
role_name      IN VARCHAR2,
enabled        IN VARCHAR2,
rule_set_name  IN VARCHAR2);

パラメータ

表12-51 CREATE_ROLEのパラメータ

パラメータ

説明

role_name

ロール名(空白を使用せず、最大30文字)。必須ではありませんが、ロール名は大文字で入力することをお薦めします。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

enabled

Y(YES)を選択するとロールを有効化できるようになり、N(NO)を選択するとロールを有効化できなくなります。デフォルトはYです。

次のDBMS_MACUTLの定数も使用できます。

- DBMS_MACUTL.G_YES

- DBMS_MACUTL.G_NO

rule_set_name

ユーザーがこのセキュア・アプリケーション・ロールを設定できるかどうかを判断するためのルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

例

BEGIN
DBMS_MACADM.CREATE_ROLE(
role_name      => 'Sector2_APP_MGR',
enabled        => DBMS_MACUTL.G_YES,
rule_set_name  => 'Check App2 Access');
END;
/

DELETE_ROLEプロシージャ

DELETE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。

構文

DBMS_MACADM.DELETE_ROLE(
role_name IN VARCHAR2);

パラメータ

表12-52 DELETE_ROLEのパラメータ

パラメータ

説明

role_name

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_ROLE('SECT2_APP_MGR');

RENAME_ROLEプロシージャ

RENAME_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。

構文

DBMS_MACADM.RENAME_ROLE(
role_name      IN VARCHAR2,
new_role_name  IN VARCHAR2);

パラメータ

表12-53 RENAME_ROLEのパラメータ

パラメータ

説明

role_name

現在のロール名。必須ではありませんが、ロール名は大文字で入力することをお薦めします。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

new_role_name

ロール名(空白を使用せず、大文字で最大30文字)。この名前が、『Oracle Database SQL言語リファレンス』で説明されている、ロール作成の標準のOracleネーミング規則に準拠していることを確認してください。

例

BEGIN
DBMS_MACADM.RENAME_ROLE(
role_name      => 'SECT2_APP_MGR',
new_role_name  => 'SECT2_SYSADMIN');
END;
/

UPDATE_ROLEプロシージャ

UPDATE_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。

構文

DBMS_MACADM.UPDATE_ROLE(
role_name      IN VARCHAR2,
enabled        IN VARCHAR2,
rule_set_name  IN VARCHAR2);

パラメータ

表12-54 UPDATE_ROLEのパラメータ

パラメータ

説明

role_name

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)を選択するとロールが有効化できるようになり、DBMS_MACUTL.G_NO(No)を選択するとロールを有効化できなくなります。

enabledのデフォルトは設定済の値で、DVSYS.DBA_DV_ROLEデータ・ディクショナリ・ビューに問い合せることで確認できます。

rule_set_name

ユーザーがこのセキュア・アプリケーション・ロールを設定できるかどうかを判断するためのルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

例

BEGIN
DBMS_MACADM.UPDATE_ROLE(
role_name      => 'SECT2_SYSADMIN',
enabled        => DBMS_MACUTL.G_YES,
rule_set_name  => 'System Access Controls');
END;
/

DBMS_MACADMのOracle Label Securityポリシー・プロシージャ

表12-55に、Oracle Database VaultにOracle Label Securityポリシーを構成するために使用できるDBMS_MACADMパッケージのプロシージャを示します。

Oracle Label Securityポリシーの詳細は、第9章「Oracle Database Vaultとその他のOracle製品の統合」を参照してください。また、Oracle Label Securityポリシー・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表12-55 DBMS_MACADMのOracle Label Security構成プロシージャ

プロシージャ

説明

CREATE_MAC_POLICYプロシージャ

ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

CREATE_POLICY_LABELプロシージャ

Oracle Label Securityポリシー内のアイデンティティにラベルを付けます。

DELETE_MAC_POLICY_CASCADEプロシージャ

Oracle Label Securityポリシーに関連するすべてのOracle Database Vaultオブジェクトを削除します。

DELETE_POLICY_FACTORプロシージャ

Oracle Label Securityラベルの構成からファクタを削除します。

DELETE_POLICY_LABELプロシージャ

Oracle Label Securityポリシーのアイデンティティからラベルを削除します。

UPDATE_MAC_POLICYプロシージャ

ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

CREATE_MAC_POLICYプロシージャ

CREATE_MAC_POLICYプロシージャは、ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

構文

DBMS_MACADM.CREATE_MAC_POLICY(
policy_name  IN VARCHAR2,
algorithm    IN VARCHAR2);

パラメータ

表12-56 CREATE_MAC_POLICYのパラメータ

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。表12-57に示されている、目的のマージ・アルゴリズムに対応するコードを入力します。たとえば、「最大レベル/論理和/論理和」マージ・アルゴリズムを選択する場合は、HUUと入力します。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

表12-57 Oracle Label Securityマージ・アルゴリズム・コード

コード

値

HUU

最大レベル/論理和/論理和

HIU

最大レベル/論理積/論理和

HMU

最大レベル/減算/論理和

HNU

最大レベル/NULL/論理和

HUI

最大レベル/論理和/論理積

HII

最大レベル/論理積/論理積

HMI

最大レベル/減算/論理積

HNI

最大レベル/NULL/論理積

HUM

最大レベル/論理和/減算

HIM

最大レベル/論理積/減算

HMM

最大レベル/減算/減算

HNM

最大レベル/NULL/減算

HUN

最大レベル/論理和/NULL

HIN

最大レベル/論理積/NULL

HMN

最大レベル/減算/NULL

HNN

最大レベル/NULL/NULL

LUU

最小レベル/論理和/論理和

LIU

最小レベル/論理積/論理和

LMU

最小レベル/減算/論理和

LNU

最小レベル/NULL/論理和

LUI

最小レベル/論理和/論理積

LII

最小レベル/論理積/論理積

LMI

最小レベル/減算/論理積

LNI

最小レベル/NULL/論理積

LUM

最小レベル/論理和/減算

LIM

最小レベル/論理積/減算

LMM

最小レベル/減算/減算

LNM

最小レベル/NULL/減算

LUN

最小レベル/論理和/NULL

LIN

最小レベル/論理積/NULL

LMN

最小レベル/減算/NULL

LNN

最小レベル/NULL/NULL

例

BEGIN
DBMS_MACADM.CREATE_MAC_POLICY(
policy_name  => 'Access Locations',
algorithm    => 'HUU');
END;
/

CREATE_POLICY_LABELプロシージャ

CREATE_POLICY_LABELプロシージャは、Oracle Label Securityポリシーのアイデンティティにラベルを付けます。

構文

DBMS_MACADM.CREATE_POLICY_LABEL(
identity_factor_name   IN VARCHAR2,
identity_factor_value  IN VARCHAR2,
policy_name            IN VARCHAR2,
label                  IN VARCHAR2);

パラメータ

表12-58 CREATE_POLICY_LABELのパラメータ

パラメータ

説明

identity_factor_name

ラベルを付けるファクタの名前。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORを使用します。

詳細は、「Label Securityポリシー・ファクタ」を参照してください。

identity_factor_value

ラベルを付けるファクタのアイデンティティの値。

現行のデータベース・インスタンスで既存のファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

label

Oracle Label Securityラベル名。

ファクタ・アイデンティティの既存のポリシー・ラベルを検索するには、「DVSYS.DBA_DV_POLICY_LABELビュー」で説明されているDVSYS.DBA_DV_POLICY_LABELビューに問い合せます。

例

BEGIN
DBMS_MACADM.CREATE_POLICY_LABEL(
identity_factor_name   => 'App_Host_Name',
identity_factor_value  => 'Sect2_Fin_Apps',
policy_name            => 'Access Locations',
label                  => 'Sensitive');
END;
/

DELETE_MAC_POLICY_CASCADEプロシージャ

DELETE_MAC_POLICY_CASCADEプロシージャは、Oracle Label Securityポリシーに関連するすべてのOracle Database Vaultオブジェクトを削除します。

構文

DBMS_MACADM.DELETE_MAC_POLICY_CASCADE(
policy_name  IN VARCHAR2);

パラメータ

表12-59 DELETE_MAC_POLICY_CASCADEのパラメータ

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

例

EXEC DBMS_MACADM.DELETE_MAC_POLICY_CASCADE('Access Locations');

DELETE_POLICY_FACTORプロシージャ

DELETE_POLICY_FACTORプロシージャは、Oracle Label Securityラベルの構成からファクタを削除します。

構文

DBMS_MACADM.DELETE_POLICY_FACTOR(
policy_name  IN VARCHAR2,
factor_name  IN VARCHAR2);

パラメータ

表12-60 DELETE_POLICY_FACTORのパラメータ

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

factor_name

Oracle Label Securityラベルに関連付けられているファクタの名前。

Oracle Label Securityポリシーに関連付けられているファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_POLICY_FACTOR(
policy_name  => 'Access Locations',
factor_name  => 'App_Host_Name');
END;
/

DELETE_POLICY_LABELプロシージャ

DELETE_POLICY_LABELプロシージャは、Oracle Label Securityポリシーのアイデンティティからラベルを削除します。

構文

DBMS_MACADM.DELETE_POLICY_LABEL(
identity_factor_name   IN VARCHAR2,
identity_factor_value  IN VARCHAR2,
policy_name            IN VARCHAR2,
label                  IN VARCHAR2);

パラメータ

表12-61 DELETE_POLICY_LABELのパラメータ

パラメータ

説明

identity_factor_name

ラベルを付けたファクタの名前。

現行のデータベース・インスタンスでOracle Label Securityポリシーに関連付けられている既存のファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORに問い合せます。

詳細は、「Label Securityポリシー・ファクタ」を参照してください。

identity_factor_value

ラベルを付けたファクタのアイデンティティの値。

現行のデータベース・インスタンスで既存のファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYビューに問い合せます。

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

label

Oracle Label Securityラベル名。

ファクタ・アイデンティティの既存のポリシー・ラベルを検索するには、「DVSYS.DBA_DV_POLICY_LABELビュー」で説明されているDVSYS.DBA_DV_POLICY_LABELビューに問い合せます。

例

BEGIN
DBMS_MACADM.DELETE_POLICY_LABEL(
identity_factor_name   => 'App_Host_Name',
identity_factor_value  => 'Sect2_Fin_Apps',
policy_name            => 'Access Locations',
label                  => 'Sensitive');
END;
/

UPDATE_MAC_POLICYプロシージャ

UPDATE_MAC_POLICYプロシージャは、ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

構文

DBMS_MACADM.UPDATE_MAC_POLICY(
policy_name  IN VARCHAR2,
algorithm    IN VARCHAR2);

パラメータ

表12-62 UPDATE_MAC_POLICY

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。使用可能なアルゴリズムのリストは、表12-57を参照してください。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

例

BEGIN
DBMS_MACADM.UPDATE_MAC_POLICY(
policy_name  => 'Access Locations',
algorithm    => 'LUI');
END;
/

DBMS_MACADMの一般システム・メンテナンス・プロシージャ

表12-63に、DV_OWNERまたはDV_ADMINロールの保護を必要とする一般システム・メンテナンス・アクティビティの実行に使用できる、DBMS_MACADM PL/SQLパッケージのプロシージャを示します。

表12-63 DBMS_MACADMの無効/有効プロシージャ

プロシージャ

説明

ADD_NLS_DATAプロシージャ

Oracle Database Vaultに新しい言語を追加します。

AUTHORIZE_DATAPUMP_USERプロシージャ

Oracle Database Vaultが有効な場合に、Oracle Data Pump操作を実行する権限をユーザーに付与します。

AUTHORIZE_SCHEDULER_USERプロシージャ

Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。

UNAUTHORIZE_DATAPUMP_USERプロシージャ

DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_SCHEDULER_USERプロシージャ

DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。

ADD_NLS_DATAプロシージャ

ADD_NLS_DATAプロシージャは、Oracle Database Vaultに新しい言語を追加します。

構文

DBMS_MACADM.ADD_NLS_DATA(
language      IN VARCHAR );

パラメータ

表12-64 ADD_NLS_DATA

パラメータ

説明

language

次のいずれかの設定を入力します。(このパラメータでは大/小文字は区別されません。)

- ENGLISH

- GERMAN

- SPANISH

- FRENCH

- ITALIAN

- JAPANESE

- KOREAN

- BRAZILIAN PORTUGUESE

- SIMPLIFIED CHINESE

- TRADITIONAL CHINESE

例

EXEC DBMS_MACADM.ADD_NLS_DATA('french');

AUTHORIZE_DATAPUMP_USERプロシージャ

AUTHORIZE_DATAPUMP_USERプロシージャは、Oracle Database Vaultが有効な場合に、ユーザーがOracle Data Pump操作を実行することを認可します。expdpとimpdpの両方のユーティリティに適用されます。Oracle Database Vault環境でOracle Data Pumpを使用するために必要な追加の認可レベルなどの完全な使用法については、「データベース管理者に対するOracle Data Pumpの使用の認可」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_DATAPUMP_USER(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL,
table_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-65 AUTHORIZE_DATAPUMP_USER

パラメータ

説明

user_name

権限を付与するOracle Data Pumpユーザーの名前。

Oracle Data Pumpの使用権限(EXP_FULL_DATABASEおよびIMP_FULL_DATABASEロール)を持つユーザーのリストを検索するには、次のようにDBA_ROLE_PRIVSデータ・ディクショナリ・ビューに問い合せます。

SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE LIKE '%FULL%'

schema_name

Oracle Data Pumpユーザーがエクスポートまたはインポートする必要のあるデータベース・スキーマ名。このパラメータを省略すると、データベース内のすべてのスキーマをエクスポートおよびインポートするグローバル権限がユーザーに付与されます。この場合、ユーザーにDV_OWNERまたはDV_ADMINロールが付与されていることを確認します。

table_name

schema_nameパラメータで指定されたスキーマ内の表の名前。このパラメータを省略した場合、指定したユーザーは、schema_nameパラメータで指定されたスキーマ内のすべての表をエクスポートおよびインポートできます。

例

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

AUTHORIZE_SCHEDULER_USERプロシージャ

AUTHORIZE_SCHEDULER_USERプロシージャは、Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。この権限は、データベース・ジョブのスケジュール権限を持つすべてのユーザーに適用されます。この権限には、CREATE JOB、CREATE ANY JOB、CREATE EXTERNAL JOB、EXECUTE ANY PROGRAM、EXECUTE ANY CLASS、MANAGE SCHEDULERが含まれます。Oracle Database Vault環境でデータベース・ジョブをスケジュールするために必要な認可レベルなど、完全な使用情報については「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_SCHEDULER_USER(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-66 AUTHORIZE_SCHEDULER_USER

パラメータ

説明

user_name

権限を付与するユーザーの名前。

ジョブのスケジュール権限を持つユーザーのリストを検索するには、データベース・ジョブのスケジュール権限を持つユーザーについて、DBA_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。「データベース管理者に対するOracle Data Pumpの使用の認可」のステップ2を参照してください。

schema_name

ジョブをスケジュールするデータベース・スキーマの名前。このパラメータを省略すると、データベース内のすべてのスキーマをスケジュールするグローバル権限がユーザーに付与されます。

例

次の例では、ユーザーJOB_MGRにすべてのスキーマでジョブを実行する権限を付与します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

次の例では、ユーザーJOB_MGRにHRスキーマでのみジョブを実行する権限を付与します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

UNAUTHORIZE_DATAPUMP_USERプロシージャ

UNAUTHORIZE_DATAPUMP_USERプロシージャは、AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。このプロシージャを実行する場合は、同等のAUTHORIZE_DATAPUMP_USERプロシージャと設定が完全に一致することを確認してください。

たとえば、次の2つのプロシージャはパラメータが一致するため、機能します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');

しかし、次のプロシージャはパラメータが一致しないため、UNAUTHORIZE_DATAPUMP_USERプロシージャは機能しません。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('JSMITH');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR');

構文

DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL,
table_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-67 UNAUTHORIZE_DATAPUMP_USER

パラメータ

説明

user_name

権限を取り消すOracle Data Pumpユーザーの名前。

AUTHORIZE_DATAPUMP_USERプロシージャのユーザーと権限のリストを検索するには、次のようにDVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せます。

SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET WHERE RULE_SET_NAME = 'Allow Oracle Data Pump Operation';

schema_name

Oracle Data Pumpユーザーがエクスポートまたはインポート権限を付与されているデータベース・スキーマ名。

table_name

schema nameパラメータで指定されたスキーマ内の表の名前。

例

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('JSMITH', 'HR', 'SALARY');

UNAUTHORIZE_SCHEDULER_USERプロシージャ

UNAUTHORIZE_SCHEDULER_USERプロシージャは、AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。このプロシージャを実行する場合は、同等のAUTHORIZE_SCHEDULER_USERプロシージャと設定が完全に一致することを確認してください。

たとえば、次の2つのプロシージャはパラメータが一致するため、機能します。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

しかし、次のプロシージャはパラメータが一致しないため、UNAUTHORIZE_SCHEDULER_USERプロシージャは機能しません。

EXEC DBMS_MACADM.AUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

構文

DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表12-68 UNAUTHORIZE_SCHEDULER_USER

パラメータ

説明

user_name

権限を取り消す、ジョブ・スケジュール・ユーザーの名前。

AUTHORIZE_SCHEDULER_USERプロシージャのユーザーと権限のリストを検索するには、次のようにDVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せます。

SELECT RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET WHERE RULE_SET_NAME = 'Allow Scheduler Job';

schema_name

ユーザーにジョブ・スケジュール権限が付与されているデータベース・スキーマの名前。

例

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

13 DBMS_MACSEC_ROLESパッケージの使用方法

この章の内容は次のとおりです。

- DBMS_MACSEC_ROLESパッケージについて

- CAN_SET_ROLEファンクション

- SET_ROLEプロシージャ

DBMS_MACSEC_ROLESパッケージについて

アプリケーションを変更し、DBMS_MACSEC_ROLESパッケージのプロシージャを使用してユーザーに対する認可のチェックやOracle Database Vaultセキュア・アプリケーション・ロールの設定を行うようにできます。DBMS_MACSEC_ROLESパッケージは、すべてのユーザーが使用できます。

セキュア・アプリケーション・ロールの詳細は、第8章「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」を参照してください。また、セキュア・アプリケーション・ロール・プロシージャとともに使用できる一連の汎用ユーティリティ・プロシージャは、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

表13-1に、DBMS_MACSEC_ROLESパッケージのファンクションおよびプロシージャを示します。

表13-1 DBMS_MACSEC_ROLESのOracle Label Security構成プロシージャ

ファンクションまたはプロシージャ

説明

CAN_SET_ROLEファンクション

メソッドを起動するユーザーに、指定されたOracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックします。BOOLEAN値を返します。

SET_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールに対してSET ROLE文を発行します。

CAN_SET_ROLEファンクション

CAN_SET_ROLEファンクションは、メソッドを起動するユーザーに、指定されたOracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックします。

構文

DBMS_MACSEC_ROLES.CAN_SET_ROLE(
p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表13-2 CAN_SET_ROLEのパラメータ

パラメータ

説明

p_role

ロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACSEC_ROLES.CAN_SET_ROLE('SECTOR2_APP_MGR')
THEN DBMS_OUTPUT.PUT_LINE('''SECTOR2_APP_MGR'' can be enabled.');
END IF;
END;
/

SET_ROLEプロシージャ

SET_ROLEプロシージャは、Oracle Database Vaultセキュア・アプリケーション・ロールおよびOracle Database標準ロールの両方を含む指定されたロールに対して、SET ROLE PL/SQL文を発行します。このプロシージャは、ロールに関連付けられているルール・セットがtrueと評価される場合にのみ、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。

構文

DBMS_MACSEC_ROLES.SET_ROLE(
p_role IN VARCHAR2);

パラメータ

表13-3 SET_ROLEのパラメータ

パラメータ

説明

p_role

ロール名。セキュア・アプリケーション・ロールや標準ロールなど、複数のロールを入力できます。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

データベース内の既存のすべてのロールを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_ROLESデータ・ディクショナリ・ビューに問い合せます。

例

EXEC DBMS_MACSEC_ROLES.SET_ROLE('SECTOR2_APP_MGR, APPS_MGR');

ロール名前は大文字、小文字のいずれでも入力できます(Sector2_APP_MGRなど)。

14 DBMS_MACUTLパッケージの使用方法

この章の内容は次のとおりです。

- DBMS_MACUTLパッケージについて

- DBMS_MACUTLの定数

- DBMS_MACUTLパッケージのプロシージャおよびファンクション

DBMS_MACUTLパッケージについて

DBMS_MACUTLパッケージは、Oracle Database Vault用に作成するアプリケーション・コードのあらゆる箇所で使用できる一連の汎用ユーティリティ・プロシージャおよびファンクションを提供します。このパッケージは、すべてのユーザーが使用できます。

DBMS_MACUTLの定数

この項の内容は次のとおりです。

- DBMS_MACUTLの定数のリスト

- DBMS_MACUTLの定数の使用例

DBMS_MACUTLの定数のリスト

表14-1に、DBMS_MACUTLパッケージの定数(フィールド)の説明をまとめています。これらの定数は、Oracle Database VaultのPL/SQLパッケージのいずれかとともに使用できます。これらの定数の多くは、Oracle Database Vaultパッケージに同等のものがあります。たとえば、複数のプロシージャで使用可能なenabledパラメータでは、Y(Yes)または定数G_YESのいずれも使用できます。どちらを選択するかは個人の好みの問題です。どちらも結果は同じです。

表14-1 DBMS_MACUTLの定数のリスト

定数名

データ型

説明

G_ALL_OBJECT

VARCHAR2(1)

すべてのオブジェクト名またはオブジェクト・タイプを示すワイルドカードとして、レルムAPI object_nameパラメータおよびobject_typeパラメータで使用します。

G_AUDIT_ALWAYS

NUMBER

監査を有効にするために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_OFF

NUMBER

監査を無効にするために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_GET_ERROR

NUMBER

get_exprパラメータで指定した式がエラーを返した場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_GET_NULL

NUMBER

get_exprフィールドの式がNULLの場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_TRUST_LEVEL_NEG

NUMBER

信頼レベルが負の場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_TRUST_LEVEL_NULL

NUMBER

信頼レベルが存在しない場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_VALIDATE_ERROR

NUMBER

検証ファンクションがエラーを返した場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_AUDIT_ON_VALIDATE_FALSE

NUMBER

検証ファンクションがFalseの場合に監査を行うために、ファクタAPI audit_optionsパラメータで使用します。

G_EVAL_ON_ACCESS

NUMBER

アクセスするたびにファクタを再評価するために、ファクタAPI eval_optionsパラメータで使用します。

G_EVAL_ON_SESSION

NUMBER

ユーザーがセッションにログインしたとき、1回のみファクタを評価するために、ファクタAPI eval_optionsパラメータで使用します。

G_FAIL_SILENTLY

NUMBER

失敗時にエラー・メッセージを表示しないように、fail_optionsパラメータで使用します。

G_FAIL_WITH_MESSAGE

NUMBER

失敗時にエラー・メッセージを表示するように、fail_optionsパラメータで使用します。

G_IDENTIFY_BY_CONSTANT

NUMBER

ファクタAPI identify_byパラメータで使用します。get_exprパラメータで定義されるPL/SQL式では固定値です。

G_IDENTIFY_BY_CONTEXT

NUMBER

コンテキストを示すために、ファクタAPI identify_byパラメータで使用します。

G_IDENTIFY_BY_FACTOR

NUMBER

factor_link$表からのサブファクタに対して、ファクタAPI identify_byパラメータで使用します。

G_IDENTIFY_BY_METHOD

NUMBER

ファクタAPI identify_byパラメータで使用します。get_exprフィールドの式。

G_IDENTIFY_BY_RULESET

NUMBER

ファクタAPI identify_byパラメータで使用します。factor_expr$表での式およびルール・セット。

G_LABELED_BY_FACTORS

NUMBER

サブファクタおよびマージ・アルゴリズムからラベルを導出するために、ファクタAPI labeled_byパラメータで使用します。

G_LABELED_BY_SELF

NUMBER

ファクタ・アイデンティティのラベル付けのために、ファクタAPI labeled_byパラメータで使用します。

G_MAX_SESSION_LABEL

VARCHAR2(30)

これは、ファクタに基づいてユーザーが設定できる最高のラベルです。ユーザーに対するラベルは考慮されません。

G_MIN_POLICY_LABEL

VARCHAR2(30)

NULLラベルのファクタにデフォルト設定されるラベル。

G_NO

VARCHAR2(1)

次のAPIで使用します。

- 親ファクタにリンクしている子ファクタが、Oracle Label Security統合で親ファクタのラベルを構成しないことを示すために、ファクタAPI label_indicatorパラメータで使用します。

- enabledパラメータを使用するすべてのAPI。

G_OLS_SESSION_LABEL

VARCHAR2(30)

init_sessionの実行時のユーザーに対するOracle Label Securityセッション・ラベル。

G_REALM_AUDIT_FAIL

NUMBER

レルム違反が発生したときに監査を行うために、レルムAPI audit_optionsパラメータで使用します。

G_REALM_AUDIT_OFF

NUMBER

監査を無効にするために、レルムAPI audit_optionsパラメータで使用します。

G_REALM_AUDIT_SUCCESS

NUMBER

レルムAPI audit_options parameterパラメータで使用します。レルムへのアクセス成功時に監査を行います。

G_REALM_AUTH_OWNER

NUMBER

所有者に対するレルム認可を設定するために、レルムAPI auth_optionsパラメータで使用します。

G_REALM_AUTH_PARTICIPANT

NUMBER

参加者に対するレルム認可を設定するために、レルムAPI auth_optionsパラメータで使用します。

G_RULESET_AUDIT_FAIL

NUMBER

ルール・セット失敗時に監査を行うために、ルール・セットAPI audit_optionsパラメータで使用します。

G_RULESET_AUDIT_OFF

NUMBER

監査を無効にするために、ルール・セットAPI audit_optionsパラメータで使用します。

G_RULESET_AUDIT_SUCCESS

NUMBER

ルール・セット成功時に監査を行うために、ルール・セットAPI audit_optionsパラメータで使用します。

G_RULESET_EVAL_ALL

NUMBER

すべてのルールがTrueと評価された場合にルール・セットが成功するように、ルール・セットAPI eval_optionsパラメータで使用します。

G_RULESET_EVAL_ANY

NUMBER

ルールのいずれかがTrueと評価された場合に成功するように、ルール・セットAPI eval_optionsパラメータで使用します。

G_RULESET_FAIL_SHOW

NUMBER

ルール・セットが失敗した場合にエラー・メッセージが表示されるように、ルール・セットAPI fail_optionsパラメータで使用します。

G_RULESET_FAIL_SILENT

NUMBER

ルール・セットが失敗した場合にエラー・メッセージが表示されないように、ルール・セットAPI fail_optionsパラメータで使用します。

G_RULESET_HANDLER_FAIL

NUMBER

ルール・セットが失敗した場合にハンドラ(handlerパラメータで指定)をコールするように、ルール・セットAPI handler_optionsパラメータで使用します。

G_RULESET_HANDLER_OFF

NUMBER

ハンドラへのコールを無効にするか、ハンドラが使用されない場合に、ルール・セットAPI handler_optionsパラメータで使用します。

G_RULESET_HANDLER_SUCCESS

NUMBER

ルール・セットが成功した場合にハンドラをコールするように、ルール・セットAPI handler_optionsパラメータで使用します。

G_USER_POLICY_LABEL

VARCHAR2(30)

前の値を考慮した上で、ユーザーのラベルに設定する必要があるとOracle Label Securityで決められた値。

G_YES

VARCHAR2(1)

次のAPIで使用します。

- 親ファクタにリンクしている子ファクタが、Oracle Label Security統合で親ファクタのラベルを構成することを示すために、ファクタAPI label_indicatorパラメータで使用します。

- enabledパラメータを使用するすべてのAPI。

DBMS_MACUTLの定数の使用例

例14-1は、レルム作成時にG_YES定数およびG_REALM_AUDIT_FAIL DBMS_MACUTL定数を使用する方法を示しています。

例14-1 DBMS_MACUTLの定数を使用したレルムの作成

BEGIN
DBMS_MACADM.CREATE_REALM(
realm_name    => 'Performance Statistics Realm',
description   => 'Realm to measure performance',
enabled       =>  DBMS_MACUTL.G_YES,
audit_options =>  DBMS_MACUTL.G_REALM_AUDIT_FAIL);
END;
/

例14-2は、ルール・セット作成時に複数のDBMS_MACUTLの定数を使用する方法を示しています。

例14-2 DBMS_MACUTLの定数を使用したルール・セットの作成

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    => 'Limit_DBA_Access',
description      => 'DBA access through predefined processes',
enabled          => 'Y',
eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ALL,
audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_FAIL,
fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SHOW,
fail_message     => 'Rule Set Limit_DBA_Access has failed.',
fail_code        => 20000,
handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_FAIL,
handler          => 'dbavowner.email_alert');
END;
/

例14-3は、ファクタ作成時に、定数を使用する方法を示しています。

例14-3 DBMS_MACUTLの定数を使用したファクタの作成

BEGIN
DBMS_MACADM.CREATE_FACTOR(
factor_name       => 'Sector2_DB',
factor_type_name  => 'Instance',
description       => ' ',
rule_set_name     => 'DB_access',
get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''DB_NAME''))',
validate_expr     => 'dbavowner.check_db_access',
identify_by       => DBMS_MACUTL.G_IDENTIFY_BY_FACTOR,
labeled_by        => DBMS_MACUTL.G_LABELED_BY_SELF,
eval_options      => DBMS_MACUTL.G_EVAL_ON_SESSION,
audit_options     => DBMS_MACUTL.G_AUDIT_ALWAYS,
fail_options      => DBMS_MACUTL.G_FAIL_SILENTLY);
END;
/

DBMS_MACUTLパッケージのプロシージャおよびファンクション

表14-2に、DBMS_MACUTLパッケージのプロシージャおよびファンクションを示します。 これらのプロシージャまたはファンクションは、スタンドアロン・コードとして、またはルール式内で使用できます。この項では、両方が使用されている例を示します。

表14-2 DBMS_MACUTLのユーティリティ・ファンクション

プロシージャまたはファンクション

説明

CHECK_DVSYS_DML_ALLOWEDプロシージャ

Oracle Database Vault構成を更新するユーザーによってパブリック・パッケージが無視されていないことを検証します。

GET_CODE_VALUEファンクション

コード・グループ内でコードの値を検索します。

GET_SECONDファンクション

Oracle SS形式(00から59)で秒を返します。時間データに基づいたルール式に有用です。

GET_MINUTEファンクション

Oracle MI形式(00から59)で分を返します。時間データに基づいたルール式に有用です。

GET_HOURファンクション

Oracle HH24形式(00から23)で月を返します。時間データに基づいたルール式に有用です。

GET_DAYファンクション

Oracle DD形式(01から31)で日を返します。時間データに基づいたルール式に有用です。

GET_MONTHファンクション

Oracle MM形式(01から12)で月を返します。時間データに基づいたルール式に有用です。

GET_YEARファンクション

Oracle YYYY形式(0001から9999)で年を返します。時間データに基づいたルール式に有用です。

IS_ALPHAファンクション

文字がアルファベットかどうかをチェックします。

IS_DIGITファンクション

文字が数値かどうかをチェックします。

IS_DVSYS_OWNERファンクション

Oracle Database Vault構成を管理する権限がユーザーに付与されているかどうかを判断します。

IS_OLS_INSTALLEDファンクション

Oracle Label Securityがインストールされているかどうかについてインジケータを返します。

IS_OLS_INSTALLED_VARCHARファンクション

Oracle Label Securityがインストールされているかどうかについてインジケータを返します。

USER_HAS_ROLEファンクション

ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックします。

USER_HAS_ROLE_VARCHARファンクション

ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックします。

USER_HAS_SYSTEM_PRIVILEGEファンクション

ユーザーがシステム権限を直接保持するのか間接的に(ロールを介して)保持するのかをチェックします。

CHECK_DVSYS_DML_ALLOWEDプロシージャ

CHECK_DVSYS_DML_ALLOWEDプロシージャは、Oracle Database Vault構成を更新するユーザーによってパブリック・パッケージが無視されていないことを検証します。

構文

DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED(
p_user IN VARCHAR2 DEFAULT USER);

パラメータ

表14-3 CHECK_DVSYS_DML_ALLOWEDのパラメータ

パラメータ

説明

p_user

操作を実行しているユーザー。

現在のデータベース・インスタンスで既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

例

ユーザーSYSTEMがチェックに失格となります。

EXEC DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED('system');

ERROR at line 1:
ORA-47920: Authorization failed for user system to perform this operation
ORA-06512: at "DBMS_MACUTL", line 23
ORA-06512: at "DBMS_MACUTL", line 372
ORA-06512: at "DBMS_MACUTL", line 508
ORA-06512: at "DBMS_MACUTL", line 572
ORA-06512: at line 1

lbrown_dvownerロールを持つユーザーDV_OWNERが、チェックに合格します。

EXEC DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED('lbrown_dvowner');

PL/SQL procedure successfully completed.

GET_CODE_VALUEファンクション

GET_CODE_VALUEファンクションは、コード・グループ内でコードの値を検索し、VARCHAR2値を返します。

構文

DBMS_MACUTL.GET_CODE_VALUE(
p_code_group IN VARCHAR2,
p_code       IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表14-4 GET_CODE_VALUEのパラメータ

パラメータ

説明

p_code_group

コード・グループ(AUDIT_EVENTS、BOOLEANなど)。

現行のデータベース・インスタンスで使用可能なコード・グループを検索するには、「DVSYS.DBA_DV_CODEビュー」で説明されているDVSYS.DBA_DV_CODEビューに問い合せます。

p_code

コードのID。

このIDは、DVSYS.DBA_DV_CODEビューを実行したときに表示されます。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Label Algorithm for Maximum Level/Union/Null',
rule_expr => 'DBMS_MACUTL.GET_CODE_VALUE(''LABEL_ALG'', ''HUN'') = ''Union''');
END;
/

GET_SECONDファンクション

GET_SECONDファンクションは、Oracle SS(秒)形式で秒(00から59)を返します。NUMBER値を返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_SECOND(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-5 GET_SECONDのパラメータ

パラメータ

説明

p_date

SS形式の日付(たとえば59)。

日付を指定しない場合、Oracle Database VaultはOracle DatabaseのSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
seconds number;
BEGIN
seconds := DBMS_MACUTL.GET_SECOND(TO_DATE('03-APR-2009 6:56 PM',
'dd-mon-yyyy hh:mi PM'));
DBMS_OUTPUT.PUT_LINE('Seconds: '||seconds);
END;
/

この例では固定日時を使用しており、次の値を返します。

Seconds: 56

GET_MINUTEファンクション

GET_MINUTEファンクションは、Oracle MI(分)形式の分(00から59)をNUMBER値で返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_MINUTE(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-6 GET_MINUTEのパラメータ

パラメータ

説明

p_date

MI形式の日付(たとえば2:30の場合は30)。

日付を指定しない場合、Oracle Database VaultはOracle DatabaseのSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
minute number;
BEGIN
minute := DBMS_MACUTL.GET_MINUTE(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Minute: '||minute);
END;
/

次のような出力が表示されます。

Minute: 17

GET_HOURファンクション

GET_HOURファンクションは、Oracle HH24(時間)形式の時間(00から23)をNUMBER値で返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_HOUR(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-7 GET_HOURのパラメータ

パラメータ

説明

p_date

HH24形式の日付(たとえば午後2:00の場合は14)。

日付を指定しない場合、Oracle Database VaultはOracle DatabaseのSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
hours number;
BEGIN
hours := DBMS_MACUTL.GET_HOUR(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Hour: '||hours);
END;
/

次のような出力が表示されます。

Hour: 12

GET_DAYファンクション

GET_DAYファンクションは、Oracle DD(日)形式の日(01から31)をNUMBER値で返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_DAY(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-8 GET_DAYのパラメータ

パラメータ

説明

p_date

DD形式の日付(たとえば月の初日の場合は01)。

日付を指定しない場合、Oracle Database VaultはOracle DatabaseのSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
day number;
BEGIN
day := DBMS_MACUTL.GET_DAY(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Day: '||day);
END;
/

次のような出力が表示されます。

Day: 3

GET_MONTHファンクション

GET_MONTHファンクションは、Oracle MM(月)形式の月(01から12)をNUMBER値で返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_MONTH(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-9 GET_MONTHのパラメータ

パラメータ

説明

p_date

MM形式の日付(たとえば8月の場合は08)。

日付を指定しない場合、Oracle Database VaultはOracle DatabaseのSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
month number;
BEGIN
month := DBMS_MACUTL.GET_MONTH(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Month: '||month);
END;
/

次のような出力が表示されます。

Month: 4

GET_YEARファンクション

GET_YEARファンクションは、Oracle YYYY(年)形式の年(0001から9999)をNUMBER値で返します。時間データに基づいたルール式に有用です。

構文

DBMS_MACUTL.GET_YEAR(
p_date IN DATE DEFAULT SYSDATE)
RETURN NUMBER;

パラメータ

表14-10 GET_YEARのパラメータ

パラメータ

説明

p_date

YYYY形式の日付(たとえば1984)。

日付を指定しない場合、Oracle Database VaultはSYSDATEファンクションを使用して、データベースが存在するオペレーティング・システムに設定されている現在の日時を取得します。

例

SET SERVEROUTPUT ON
DECLARE
year number;
BEGIN
year := DBMS_MACUTL.GET_YEAR(SYSDATE);
DBMS_OUTPUT.PUT_LINE('Year: '||year);
END;
/

IS_ALPHAファンクション

IS_ALPHAファンクションは、文字がアルファベットかどうかをチェックし、BOOLEAN値を返します。IS_ALPHAは、文字がアルファベットの場合にTRUEを返します。

構文

DBMS_MACUTL.IS_ALPHA(
c IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表14-11 IS_ALPHAのパラメータ

パラメータ

説明

c

1文字の文字列

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.IS_ALPHA('z')
THEN DBMS_OUTPUT.PUT_LINE('The alphabetic character was found');
ELSE
DBMS_OUTPUT.PUT_LINE('No alphabetic characters today.');
END IF;
END;
/

IS_DIGITファンクション

IS_DIGITファンクションは、文字が数値かどうかをチェックし、BOOLEAN値を返します。IS_DIGITは、文字が数値の場合にTRUEを返します。

構文

DBMS_MACUTL.IS_DIGIT(
c IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表14-12 IS_DIGITのパラメータ

パラメータ

説明

c

1文字の文字列

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.IS_DIGIT('7')
THEN DBMS_OUTPUT.PUT_LINE('The numeric character was found');
ELSE
DBMS_OUTPUT.PUT_LINE('No numeric characters today.');
END IF;
END;
/

IS_DVSYS_OWNERファンクション

IS_DVSYS_OWNERファンクションは、Oracle Database Vault構成を管理する権限がユーザーに付与されているかどうかを判断し、BOOLEAN値を返します。IS_DVSYS_OWNERは、ユーザーに権限が付与されている場合にTRUEを返します。

構文

DBMS_MACUTL.IS_DVSYS_OWNER(
p_user IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;

パラメータ

表14-13 IS_DVSYS_OWNERのパラメータ

パラメータ

説明

p_user

チェックするユーザー。

既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.IS_DVSYS_OWNER('PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('PSMITH is authorized to manage Database Vault.');
ELSE
DBMS_OUTPUT.PUT_LINE('PSMITH is not authorized to manage Database Vault.');
END IF;
END;
/

IS_OLS_INSTALLEDファンクション

IS_OLS_INSTALLEDファンクションは、Oracle Label Securityがインストールされているかどうかについてインジケータを返し、TRUEまたはFALSEのBOOLEAN値を返します。Oracle Label Securityがインストールされている場合、IS_OLS_INSTALLEDはTRUEを返します。

構文

DBMS_MACUTL.IS_OLS_INSTALLED()
RETURN BOOLEAN;

パラメータ

なし。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.IS_OLS_INSTALLED()
THEN DBMS_OUTPUT.PUT_LINE('OLS is installed');
ELSE
DBMS_OUTPUT.PUT_LINE('OLS is not installed');
END IF;
END;
/

IS_OLS_INSTALLED_VARCHARファンクション

IS_OLS_INSTALLED_VARCHARファンクションは、Oracle Label Securityがインストールされているかどうかについてインジケータを返し、YまたはNのVARCHAR2値を返します。Oracle Label Securityがインストールされている場合、IS_OLS_INSTALLED_VARCHARはYを返します。

構文

DBMS_MACUTL.IS_OLS_INSTALLED_VARCHAR()
RETURN VARCHAR2;

パラメータ

なし。

例

例については「IS_OLS_INSTALLEDファンクション」を参照してください。

USER_HAS_ROLEファンクション

USER_HAS_ROLEファンクションは、ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックし、BOOLEAN値を返します。ユーザーにロール権限がある場合、USER_HAS_ROLEはTRUEを返します。

構文

DBMS_MACUTL.USER_HAS_ROLE(
p_role IN VARCHAR2,
p_user IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;

パラメータ

表14-14 USER_HAS_ROLEのパラメータ

パラメータ

説明

p_role

チェックするロール権限。

既存のロールを検索するには、次のビューに問い合せます。

- DBA_ROLES: 現行のデータベース・インスタンスで使用可能なロールを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

p_user

チェックするユーザー。

既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.USER_HAS_ROLE('SECTOR2_APP_MGR', 'PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('User PSMITH has the SECTOR2_APP_MGR role');
ELSE
DBMS_OUTPUT.PUT_LINE('User PSMITH does not have the SECTOR2_APP_MGR role.');
END IF;
END;
/

USER_HAS_ROLE_VARCHARファンクション

USER_HAS_ROLE_VARCHARファンクションは、ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックし、VARCHAR2値を返します。ユーザーにロール権限が指定されている場合、USER_HAS_ROLE_VARCHARはYを返します。

構文

DBMS_MACUTL.USER_HAS_ROLE_VARCHAR(
p_role IN VARCHAR2,
p_user IN VARCHAR2 DEFAULT USER)
RETURN VARCHAR2;

パラメータ

表14-15 USER_HAS_ROLE_VARCHARのパラメータ

パラメータ

説明

p_role

チェックするロール。

既存のロールを検索するには、次のビューに問い合せます。

- DBA_ROLES: 現行のデータベース・インスタンスで使用可能なロールを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

p_user

チェックするユーザー。

既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

USER_HAS_SYSTEM_PRIVILEGEファンクション

USER_HAS_SYSTEM_PRIVILEGEファンクションは、ユーザーがシステム権限を直接保持するのか間接的に(ロールを介して)保持するのかをチェックし、BOOLEAN値を返します。ユーザーにシステム権限が指定されている場合、USER_HAS_SYSTEM_PRIVILEGEはTRUEを返します。

構文

DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGE(
p_privilege  IN VARCHAR2,
p_user       IN VARCHAR2 DEFAULT USER)
RETURN BOOLEAN;

パラメータ

表14-16 USER_HAS_SYSTEM_PRIVILEGEのパラメータ

パラメータ

説明

p_privilege

チェックするシステム権限。

PUBLIC権限を除外したデータベース・アカウントの権限を検索するには、「DVSYS.DBA_DV_USER_PRIVSビュー」で説明されているDVSYS.DBA_DV_USER_PRIVSビューに問い合せます。

データベース・アカウントのすべての権限を検索するには、「DVSYS.DBA_DV_USER_PRIVS_ALLビュー」で説明されているDVSYS.DBA_DV_USER_PRIVS_ALLを使用します。

p_user

チェックするユーザー。

既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGE('EXECUTE', 'PSMITH')
THEN DBMS_OUTPUT.PUT_LINE('User PSMITH has the EXECUTE ANY PRIVILEGE privilege.');
ELSE
DBMS_OUTPUT.PUT_LINE('User PSMITH does not have the EXECUTE ANY PRIVILEGE privilege.');
END IF;
END;
/

15 Oracle Database Vault PL/SQLインタフェースの使用方法

この章の内容は次のとおりです。

- Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション

- Oracle Database VaultのPL/SQLファクタ・ファンクション

- Oracle Database VaultのPL/SQLルール・ファンクション

- Oracle Database VaultのPL/SQLパッケージ

Oracle Database VaultランタイムのPL/SQLプロシージャおよびファンクション

Oracle Database Vaultには一連の手続き型インタフェースが用意されており、様々なDatabase Vaultセキュリティ・オプションの管理およびDatabase Vaultセキュリティの実施の管理に使用できます。また、レルム違反およびコマンド認可のDDLコマンドを検証するためのロジックを公開するプロシージャおよびファンクションもあります。その他に、ファクタの値をたとえばWebアプリケーションなどから設定する(関連付けられたルール・セットがTrueに評価される場合)、セッションまたは特定のファクタ・アイデンティティに対する信頼レベルを取得する、あるいはファクタ・アイデンティティのラベルを取得するためのプロシージャおよびファンクションが用意されています。これらのプロシージャおよびファンクションは、データベース管理者がすべてのDVSYSパッケージ・プロシージャに対するEXECUTE権限を一般のデータベース・アカウント群に付与しないように提供されています。プロシージャおよびファンクションは、必要な最小限のメソッドのみを公開します。これらのファンクションおよびプロシージャはすべて、必要とするアプリケーションでパブリックに使用できます。

表15-1に、デフォルトのランタイムのPL/SQLプロシージャおよびファンクションを示します。

表15-1 DVSYSファンクション

プロシージャまたはファンクション

パラメータ

SET_FACTORプロシージャ

ファクタを設定します。

GET_FACTORファンクション

ファクタを取得します。

GET_TRUST_LEVELファンクション

ファクタに割り当てられた信頼レベルを取得します。

GET_TRUST_LEVEL_FOR_IDENTITYファンクション

指定されたファクタおよびアイデンティティの信頼レベルを取得します。

ROLE_IS_ENABLEDファンクション

指定されたデータベース・ロールが有効になっているかどうかを確認します。

GET_FACTOR_LABELファンクション

ファクタにラベルが割り当てられている場合、指定されたOracle Label Securityポリシーのために、指定されたファクタのラベルを取得します。

SET_FACTORプロシージャ

SET_FACTORプロシージャは、ファクタ・アイデンティティを動的に設定する必要があるアプリケーションに公開できます。パッケージ・プロシージャDBMS_MACADM.SET_FACTORをラップします。割当て用のルール・セットがファクタに関連付けられていて、ルール・セットがtrueを返した場合に、値が設定されます。通常のルール・セット処理が行われ、ファクタ値(アイデンティティ)の検証メソッドがコールされます。このプロシージャは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.SET_FACTOR(
p_factor IN VARCHAR2,
p_value  IN VARCHAR2);

パラメータ

表15-2 SET_FACTORパラメータ

パラメータ

説明

p_factor

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。

p_value

アイデンティティ値。大/小文字混在で最大で1024文字まで入力できます。

現行のデータベース・インスタンスの各ファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYデータ・ディクショナリ・ビューに問い合せます。

例

EXECUTE DVSYS.SET_FACTOR(''Sector2_ClientID'', ''identity'');

GET_FACTORファンクション

GET_FACTORファンクションは、パブリック・ファクタ・ファンクションによるファクタのアイデンティティの解決を可能にするために、DVFスキーマに公開できます。これにより、DVFスキーマのF$ファンクションが有効になります。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.GET_FACTOR(
p_factor IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表15-3 GET_FACTORパラメータ

パラメータ

説明

p_factor

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Factor Identity',
rule_expr => 'DVSYS.GET_FACTOR(''Sector2_ClientID'')');
END;
/

GET_TRUST_LEVELファンクション

GET_TRUST_LEVELファンクションは、リクエストされたファクタの現行セッションのアイデンティティの信頼レベルを返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。

構文

DVSYS.GET_TRUST_LEVEL(
p_factor IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表15-4 GET_TRUST_LEVELのパラメータ

パラメータ

説明

p_factor

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Trust Level',
rule_expr => 'DVSYS.GET_TRUST_LEVEL(''Sector2_ClientID'')');
END;
/

GET_TRUST_LEVEL_FOR_IDENTITYファンクション

GET_TRUST_LEVEL_FOR_IDENTITYファンクションは、リクエストされたファクタおよびアイデンティティの信頼レベルを返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。

構文

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITY(
p_factor   IN VARCHAR2,
p_identity IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表15-5 GET_TRUST_LEVEL_FOR_IDENTITYパラメータ

パラメータ

説明

p_factor

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

p_identity

アイデンティティ値。

現行のデータベース・インスタンスの各ファクタのアイデンティティを検索するには、「DVSYS.DBA_DV_IDENTITYビュー」で説明されているDVSYS.DBA_DV_IDENTITYデータ・ディクショナリ・ビューを使用します。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get Client ID Identity Trust Level',
rule_expr => 'DVSYS.GET_TRUST_LEVEL_FOR_IDENTITY(''Sector2_ClientID'', ''identity'')');
END;
/

ROLE_IS_ENABLEDファンクション

ROLE_IS_ENABLEDファンクションは、データベース・ロールが有効であるかどうかを示すブール値を返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.ROLE_IS_ENABLED(
p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表15-6 ROLE_IS_ENABLEDパラメータ

パラメータ

説明

p_role

確認するデータベース・ロール名。

既存のロールを検索する場合は、次のデータ・ディクショナリ・ビューを使用します。

- DBA_ROLES: 現行のデータベース・インスタンスで使用可能なロールを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVSYS.DBA_DV_REALM_AUTH: 特定のロールの認可を検索します。「DVSYS.DBA_DV_REALMビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check if SYSADM Role Is Enabled',
rule_expr => 'DVSYS.ROLE_IS_ENABLED(''SYSADM'')');
END;
/

GET_FACTOR_LABELファンクション

GET_FACTOR_LABELファンクションは、指定されたファクタに指定されたOracle Label Securityポリシー用のラベルが割り当てられている場合、そのラベルを返します。ポリシーがOracle Label Securityを使用して構成されている場合は、ポリシーの最大セッション・ラベルとマージされるラベルを返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。ファクタ・ラベルの詳細は、「ラベル・アイデンティティ」を参照してください。

構文

DVSYS.GET_FACTOR_LABEL(
p_factor      IN VARCHAR2,
p_policy_name IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表15-7 GET_FACTOR_LABELパラメータ

パラメータ

説明

p_factor

ファクタ名。

現行のデータベース・インスタンスで使用可能なファクタを検索するには、DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。Oracle Label Securityポリシーに関連付けられているファクタを検索するには、DVSYS.DBA_DV_MAC_POLICY_FACTORを使用します。

「DVSYS.DBA_DV_FACTORビュー」および「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」を参照してください。

p_policy_name

Oracle Label Securityポリシー名。

現行のデータベース・インスタンスのポリシーおよびファクタに関する情報を検索する場合は、次のデータ・ディクショナリ・ビューを使用します。

- DVSYS.DBA_DV_MAC_POLICY: 現行のデータベース・インスタンスに定義されているOracle Label Securityポリシーが表示されます。「DVSYS.DBA_DV_MAC_POLICYビュー」を参照してください。

- DVSYS.DBA_DV_MAC_POLICY_FACTOR: 現行のデータベース・インスタンスのOracle Label Securityポリシーに関連付けられているファクタが表示されます。「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」を参照してください。

- DVSYS.DBA_DV_POLICY_LABEL: 各ポリシーのDVSYS.DBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。「DVSYS.DBA_DV_POLICY_LABELビュー」を参照してください。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get the ClientID Factor Label',
rule_expr => 'DVSYS.GET_FACTOR_LABEL(''Sector2_ClientID'', ''Access Locations'')');
END;
/

Oracle Database VaultのPL/SQLファクタ・ファンクション

DVSYSスキーマから提供されるファンクションおよびプロシージャに加え、DVFスキーマにはシステムに定義されているファクタごとに1つのファンクションが含まれます。DBMS_MACADM PL/SQLパッケージを使用して様々なファクタを管理する際、Oracle Database Vaultによってこれらのファンクションが維持されます。その後、ファンクションは一般のデータベース・アカウント群でPL/SQLファンクションおよび標準SQLを介して使用できます。これにより、ファクタはOracle Label Security、Oracle Virtual Private Database(VPD)などで使用できるようになります。

通常、これらのファンクションをルール式に組み込むことができます。次に例を示します。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Not Internal DBA',
rule_expr => 'DVF.F$SESSION_USER NOT IN (''JSMTIH'', ''TBROWN'')');
END;
/

ファクタ・ファンクションの値を検索するには、DUALシステム表から選択します。次に例を示します。

SELECT DVF.F$SESSION_USER FROM DUAL;

F$SESSION_USER
------------------------------------------------
LBROWN_DVOWNER

ファクタ自体の名前は、大/小文字を区別しません。たとえば、次の文は同じ結果を返します。

select dvf.f$session_user from dual;

SELECT DVF.F$SESSION_USER FROM DUAL;

表15-8にデフォルトのファクタ・ファンクションを示します。

表15-8 インストールされるOracle Database Vaultファクタ・ファンクション

DVFファクタ・ファンクション

説明

F$AUTHENTICATION_METHODファンクション

認証の方式をVARCHAR2データ型で返します。次に、ユーザー・タイプの後に返される方式を続けて示します。

F$CLIENT_IPファンクション

クライアントが接続されているコンピュータのIPアドレスを返します。

F$DATABASE_DOMAINファンクション

DB_DOMAIN初期化パラメータに指定されているようにデータベースのドメインを返します。

F$DATABASE_HOSTNAMEファンクション

データベース・インスタンスが実行されているコンピュータのホスト名を返します。

F$DATABASE_INSTANCEファンクション

現在のデータベース・インスタンスのデータベース・インスタンス識別番号を返します。

F$DATABASE_IPファンクション

データベース・インスタンスが実行されているコンピュータのIPアドレスを返します。

F$DATABASE_NAMEファンクション

DB_NAME初期化パラメータに指定されているようにデータベースの名前を返します。

F$DOMAINファンクション

ランタイム環境(ネットワークIT環境やそのサブセットなど)内の、特定の機密レベルで動作する物理的な構成または実装固有のファクタの名前付きコレクションを返します。

F$ENTERPRISE_IDENTITYファンクション

ユーザーのエンタープライズ全体のアイデンティティを返します。

F$IDENTIFICATION_TYPEファンクション

データベースでのユーザーのスキーマの作成方法を返します。具体的には、CREATE USERまたはALTER USER構文のIDENTIFIED句が反映されます。

F$LANGファンクション

既存のLANGUAGEパラメータより短い形式の、言語名のISO略称を返します。

F$LANGUAGEファンクション

セッションで現在使用中の言語と地域、およびデータベース・キャラクタ・セットをVARCHAR2データ型で返します。

F$MACHINEファンクション

データベース・セッションを確立したデータベース・クライアントのコンピュータ(ホスト)名を返します。

F$NETWORK_PROTOCOLファンクション

接続文字列のPROTOCOL=protocol部分に指定されている、通信に使用されるネットワーク・プロトコルを返します。

F$PROXY_ENTERPRISE_IDENTITYファンクション

プロキシ・ユーザーがエンタープライズ・ユーザーである場合、Oracle Internet Directoryの識別名(DN)を返します。

F$SESSION_USERファンクション

現行ユーザーが認証されたデータベース・ユーザー名を返します。

F$AUTHENTICATION_METHODファンクション

F$AUTHENTICATION_METHODファンクションは認証の方式をVARCHAR2データ型で返します。次のリストでは、ユーザーのタイプに続いて返されるメソッドが示されています。

- パスワードで認証されるエンタープライズ・ユーザー、ローカル・データベース・ユーザー、またはパスワード・ファイルを使用するSYSDBA/SYSOPER(パスワードを使用するユーザー名によるプロキシ): PASSWORD

- Kerberosで認証されるエンタープライズ・ユーザーまたは外部ユーザー: KERBEROS

- SSLで認証されるエンタープライズ・ユーザーまたは外部ユーザー: SSL

- RADIUSで認証される外部ユーザー: RADIUS

- オペレーティング・システムで認証される外部ユーザーまたはSYSDBA/SYSOPER: OS

- DCEで認証される外部ユーザー: DCE

- 証明書、識別名(DN)またはパスワードを使用しないユーザー名によるプロキシ: NONE

認証方式がパスワード、KerberosまたはSSLの場合、IDENTIFICATION_TYPEを使用して外部ユーザーとエンタープライズ・ユーザーを区別できます。

構文

DVF.F$AUTHENTICATION_METHOD ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check SSL Authentication Method',
rule_expr => 'DVF.F$AUTHENTICATION_METHOD = ''SSL''');
END;
/

F$CLIENT_IPファンクション

F$CLIENT_IPファンクションは、クライアントが接続されているコンピュータのIPアドレスをVARCHAR2データ型で返します。

構文

DVF.F$CLIENT_IP ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client IP Address',
rule_expr => 'DVF.F$CLIENT_IP BETWEEN ''192.0.2.10'' AND ''192.0.2.20''');
END;
/

F$DATABASE_DOMAINファンクション

F$DATABASE_DOMAINファンクションは、DB_DOMAIN初期化パラメータに指定されているデータベースのドメインをVARCHAR2データ型で返します。

構文

DVF.F$DATABASE_DOMAIN ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client Database Domain',
rule_expr => 'DVF.F$DATABASE_DOMAIN NOT IN (''EXAMPLE'', ''YOURDOMAIN'')');
END;
/

F$DATABASE_HOSTNAMEファンクション

F$DATABASE_HOSTNAMEファンクションは、インスタンスが実行されているコンピュータのホスト名をVARCHAR2データ型で返します。

構文

DVF.F$DATABASE_HOSTNAME ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Host Name',
rule_expr => 'DVF.F$DATABASE_HOSTNAME IN (''SHOBEEN'', ''MAU'')');
END;
/

F$DATABASE_INSTANCEファンクション

F$DATABASE_INSTANCEファンクションは、現在のデータベース・インスタンスのインスタンス識別番号をVARCHAR2データ型で返します。

構文

DVF.F$DATABASE_INSTANCE ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Instance ID',
rule_expr => 'DVF.F$DATABASE_INSTANCE = ''SALES_DB''');
END;
/

F$DATABASE_IPファンクション

F$DATABASE_IPファンクションは、データベース・インスタンスが実行されているコンピュータのIPアドレスをVARCHAR2データ型で返します。

構文

DVF.F$DATABASE_IP ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database IP address',
rule_expr => 'DVF.F$DATABASE_IP = ''192.0.2.5''');
END;
/

F$DATABASE_NAMEファンクション

F$DATABASE_NAMEファンクションは、DB_NAME初期化パラメータに指定されているデータベースの名前をVARCHAR2データ型で返します。

構文

DVF.F$DATABASE_NAME ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database DB_NAME Name',
rule_expr => 'DVF.F$DATABASE_NAME = ''ORCL''');
END;
/

F$DOMAINファンクション

F$DOMAINファンクションは、ランタイム環境(ネットワークIT環境やそのサブセットなど)内の、特定の機密レベルで動作する物理的な構成または実装固有のファクタの名前付きコレクションを返します。戻り型はVARCHAR2です。

データベースへのセキュア・アクセス・パス内にあるOracle Database Vaultノードのホスト名、IPアドレスおよびデータベース・インスタンス名などのファクタを使用してドメインを識別できます。ドメインを識別するファクタ識別子の組合せを使用して、各ドメインを一意に特定できます。これらの識別ファクタやその他のファクタを使用して、ドメイン内に最大セキュリティ・ラベルを定義できます。これにより、Oracle Database Vaultセッションに関する物理ファクタに応じて、データ・アクセスおよびコマンドが制限されます。必要なドメインの例として、企業機密、内部パブリック、パートナ、顧客があります。

構文

DVF.F$DOMAIN ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Domain',
rule_expr => 'DVF.F$DOMAIN = ''EXAMPLE.COM''');
END;
/

F$ENTERPRISE_IDENTITYファンクション

F$ENTERPRISE_IDENTITYファンクションは、ユーザーのエンタープライズ全体のアイデンティティをVARCHAR2データ型で返します。

- エンタープライズ・ユーザーの場合: Oracle Internet Directory DN

- 外部ユーザーの場合: 外部アイデンティティ(Kerberosプリンシパル名、RADIUSおよびDCEスキーマ名、オペレーティング・システム・ユーザー名、証明書DN)

- ローカル・ユーザーおよびSYSDBA/SYSOPERログインの場合: NULL

属性の値はプロキシ方法によって異なります。

- DNによるプロキシの場合: クライアントのOracle Internet Directory DN

- 証明書によるプロキシの場合: 外部ユーザーではクライアントの証明書DN、グローバル・ユーザーではOracle Internet Directory DN

- ユーザー名によるプロキシの場合: エンタープライズ・ユーザーであるクライアントではOracle Internet Directory DN、ローカル・データベース・ユーザーであるクライアントではNULL

構文

DVF.F$ENTERPRISE_IDENTITY ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check User Enterprise Identity',
rule_expr => 'DVF.F$ENTERPRISE_IDENTITY NOT IN (''JSMITH'', ''TSMITH'')');
END;
/

F$IDENTIFICATION_TYPEファンクション

F$IDENTIFICATION_TYPEファンクションは、データベースでのユーザーのスキーマの作成方法を返します。具体的には、CREATE/ALTER USER構文のIDENTIFIED句が反映されます。戻り型はVARCHAR2です。次に示すリストでは、スキーマ作成時に使用された構文に、返される識別タイプが続きます。

- IDENTIFIED BY password: LOCAL

- IDENTIFIED EXTERNALLY: EXTERNAL

- IDENTIFIED GLOBALLY: GLOBAL SHARED

- IDENTIFIED GLOBALLY AS DN: GLOBAL PRIVATE

構文

DVF.F$IDENTIFICATION_TYPE ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check User Schema Creation Type',
rule_expr => 'DVF.F$IDENTIFICATION_TYPE = ''GLOBAL SHARED''');
END;
/

F$LANGファンクション

F$LANGファンクションは、既存のLANGUAGEパラメータより短い形式の言語名のISO略称を、ユーザーのセッションに対して返します。戻り型はVARCHAR2です。

Oracle Databaseでサポートされている言語の一覧については、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

構文

DVF.F$LANG ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check ISO Abbreviated Language Name',
rule_expr => 'DVF.F$LANG IN (''EN'', ''DE'', ''FR'')');
END;
/

F$LANGUAGEファンクション

F$LANGUAGEファンクションは、ユーザーのセッションで現在使用中の言語と地域、およびデータベース・キャラクタ・セットをVARCHAR2データ型で次の形式で返します。

language_territory.characterset

Oracle Databaseでサポートされている言語と地域の一覧については、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

構文

DVF.F$LANGUAGE ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Session Language and Territory',
rule_expr => 'DVF.F$LANGUAGE = ''AMERICAN_AMERICA.WE8ISO8859P1''');
END;
/

F$MACHINEファンクション

F$MACHINEファンクションは、データベース・セッションを確立したデータベース・クライアントのコンピュータ(ホスト)名を返します。戻り型はVARCHAR2です。

構文

DVF.F$MACHINE ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client Computer Host Name',
rule_expr => 'DVF.F$MACHINE NOT IN (''SHOBEEN'', ''SEBASTIAN'')');
END;
/

F$NETWORK_PROTOCOLファンクション

F$NETWORK_PROTOCOLファンクションは、接続文字列のPROTOCOL=protocol部分に指定されている、通信に使用されるネットワーク・プロトコルを返します。戻り型はVARCHAR2です。

構文

DVF.F$NETWORK_PROTOCOL ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Network Protocol',
rule_expr => 'DVF.F$NETWORK_PROTOCOL = ''TCP''');
END;
/

F$PROXY_ENTERPRISE_IDENTITYファンクション

F$PROXY_ENTERPRISE_IDENTITYファンクションは、プロキシ・ユーザーがエンタープライズ・ユーザーである場合、Oracle Internet Directoryの識別名(DN)を返します。戻り型はVARCHAR2です。

構文

DVF.F$PROXY_ENTERPRISE_IDENTITY ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get OID DN of Enterprise User',
rule_expr => 'DVF.F$PROXY_ENTERPRISE_IDENTITY = ''cn=Provisioning Admins''');
END;
/

F$SESSION_USERファンクション

F$SESSION_USERファンクションは、現行ユーザーが認証されたデータベース・ユーザー名を返します。この値は、セッションを通して同じです。戻り型はVARCHAR2です。

構文

DVF.F$SESSION_USER ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database User Name',
rule_expr => 'DVF.F$SESSION_USER IN (''JSMITH'', ''TSMITH'')');
END;
/

Oracle Database VaultのPL/SQLルール・ファンクション

Oracle Database Vaultには、ルール・セットで保護するSQL文を検査するためにルール・セットで使用できる一連のファンクションが用意されています。たとえば、コマンド・ルールでルール・セットによりSELECT ON HR.EMPLOYEESを保護する場合、ルール式でこれらのファンクションを使用して、より詳細な情報に基づいた判断を下すことができます。

表15-9にデフォルトのルール・ファンクションを示します。

表15-9 インストールされるOracle Database VaultのPL/SQLルール・セット・ファンクション

ルール・セット・ファンクション

説明

DV_SYSEVENTファンクション

ルール・セットを起動するシステム・イベントを返します。

DV_LOGIN_USERファンクション

ログイン・ユーザー名を返します。

DV_INSTANCE_NUMファンクション

データベース・インスタンス番号を返します。

DV_DATABASE_NAMEファンクション

データベース名を返します。

DV_DICT_OBJ_TYPEファンクション

データベース操作が発生したディクショナリ・オブジェクトのタイプ(表、プロシージャ、ビューなど)を返します。

DV_DICT_OBJ_OWNERファンクション

データベース操作が発生したディクショナリ・オブジェクトの所有者を返します。

DV_DICT_OBJ_NAMEファンクション

データベース操作が発生したディクショナリ・オブジェクトの名前を返します。

DV_SQL_TEXTファンクション

操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。

DV_SYSEVENTファンクション

DV_SYSEVENTファンクションは、ルール・セットを起動するシステム・イベントをVARCHAR2データ型で返します。イベント名は、SQL文の構文のものと同じで、INSERTやCREATEなどです。

構文

DVSYS.DV_SYSEVENT ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Get System Event Firing the Maintenance Rule Set',
rule_expr => 'DVSYS.DV_SYSEVENT = ''CREATE''');
END;
/

DV_LOGIN_USERファンクション

DV_LOGIN_USERファンクションは、ログイン・ユーザー名をVARCHAR2データ型で返します。

構文

DVSYS.DV_LOGIN_USER ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check System Login User Name',
rule_expr => 'DVSYS.DV_LOGIN_USER = ''SEBASTIAN''');
END;
/

DV_INSTANCE_NUMファンクション

DV_INSTANCE_NUMファンクションは、データベース・インスタンス番号をNUMBERデータ型で返します。

構文

DVSYS.DV_INSTANCE_NUM ()
RETURN NUMBER;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Instance Number',
rule_expr => 'DVSYS.DV_INSTANCE_NUM BETWEEN 6 AND 9');
END;
/

DV_DATABASE_NAMEファンクション

DV_DATABASE_NAMEファンクションは、データベース名をVARCHAR2データ型で返します。

構文

DVSYS.DV_DATABASE_NAME ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Database Name',
rule_expr => 'DVSYS.DV_DATABASE_NAME = ''ORCL''');
END;
/

DV_DICT_OBJ_TYPEファンクション

DV_DICT_OBJ_TYPEファンクションは、データベース操作が発生したディクショナリ・オブジェクトのタイプ(表、プロシージャ、ビューなど)を返します。戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_TYPE ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Type',
rule_expr => 'DVSYS.DV_DICT_OBJ_TYPE IN (''TABLE'', ''VIEW'')');
END;
/

DV_DICT_OBJ_OWNERファンクション

DV_DICT_OBJ_OWNERファンクションは、データベース操作が発生したディクショナリ・オブジェクトの所有者の名前を返します。戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_OWNER ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Owner',
rule_expr => 'DVSYS.DV_DICT_OBJ_OWNER = ''JSMITH''');
END;
/

DV_DICT_OBJ_NAMEファンクション

DV_DICT_OBJ_NAMEファンクションは、データベース操作が発生したディクショナリ・オブジェクトの名前を返します。戻り型はVARCHAR2です。

構文

DVSYS.DV_DICT_OBJ_NAME ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Dictionary Object Name',
rule_expr => 'DVSYS.DV_DICT_OBJ_NAME = ''SALES''');
END;
/

DV_SQL_TEXTファンクション

DV_SQL_TEXTファンクションは、操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。戻り型はVARCHAR2です。

構文

DVSYS.DV_SQL_TEXT ()
RETURN VARCHAR2;

パラメータ

なし。

例

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check SQL Text',
rule_expr => 'DVSYS.DV_SQL_TEXT = ''SELECT SALARY FROM HR.EMPLOYEES''');
END;
/

Oracle Database VaultのPL/SQLパッケージ

Oracle Database Vaultには、Oracle Database Vaultのメンテナンスおよびランタイムの動作をサポートするための一連のPL/SQLパッケージAPIが用意されています。表15-10にこれらのパッケージを示します。これらのパッケージの詳細は、第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

表15-10 Oracle Database Vault AdministratorおよびランタイムのPL/SQLパッケージ

パッケージ

説明

DBMS_MACADM

セキュア構成データおよびアクセス制御構成データを全般的に管理するために使用できます。Oracle Database Vaultレルムのレルム所有者は、このパッケージを実行する権限を付与できます。

詳細は、第12章「DBMS_MACADMパッケージの使用方法」を参照してください。

DBMS_MACSEC_ROLES

メソッドを起動するユーザーに、指定されたOracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックするCAN_SET_ROLEメソッドを提供します。認可は、ロールに関連付けられたルール・セットのチェックにより決定されます。

また、このAPIは、Oracle Database Vaultセキュア・アプリケーション・ロールに対してSET ROLE文を発行するメソッドを提供します。SET ROLEの発行前に、CAN_SET_ROLEメソッドがコールされ、ロールに関連付けられたルール・セットがチェックされます。監査などのランタイムのルール・セットの動作、障害処理およびイベント処理が、このプロセス中に発生します。このパッケージは、一般のデータベース・アカウント群で使用できます。

詳細は、第13章「DBMS_MACSEC_ROLESパッケージの使用方法」を参照してください。

DBMS_MACUTL

コード/メッセージの参照、エラー処理、データ変換、権限チェックなど、他のOracle Database Vaultのパッケージで共通に使用されるいくつかの定数およびユーティリティ・メソッドを定義します。このパッケージは、一般のデータベース・アカウント群で実行できます。このパッケージを使用すると、セキュリティ開発者は、スクリプト化された構成ファイルで定数を利用できます。また、USER_HAS_ROLEなどのユーティリティ・メソッドは、Oracle Database Vaultルールで使用することも可能です。

詳細は、第14章「DBMS_MACUTLパッケージの使用方法」を参照してください。

注意:
DBMS_MACADMパッケージにはいくつかのプロシージャがありますが、Oracle Database Vaultの管理Webアプリケーションでは公開されません。公開されないプロシージャには、次のものがあります。

- CREATE_DOMAIN_IDENTITY

- CREATE_FACTOR_TYPE

- DELETE_FACTOR_TYPE

- RENAME_FACTOR_TYPE

- UPDATE_FACTOR_TYPE

16 Oracle Database Vaultのデータ・ディクショナリ・ビュー

この章の内容は次のとおりです。

- Oracle Database Vaultのデータ・ディクショナリ・ビューについて

- DVSYS.DBA_DV_CODEビュー

- DVSYS.DBA_DV_COMMAND_RULEビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_FACTOR_LINKビュー

- DVSYS.DBA_DV_FACTOR_TYPEビュー

- DVSYS.DBA_DV_IDENTITYビュー

- DVSYS.DBA_DV_IDENTITY_MAPビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.DBA_DV_REALM_AUTHビュー

- DVSYS.DBA_DV_REALM_OBJECTビュー

- DVSYS.DBA_DV_ROLEビュー

- DVSYS.DBA_DV_RULEビュー

- DVSYS.DBA_DV_RULE_SETビュー

- DVSYS.DBA_DV_RULE_SET_RULEビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

Oracle Database Vaultのデータ・ディクショナリ・ビューについて

Oracle Database Vaultには、DV_SECANALYSTロールまたはDV_ADMINロールを介してアクセスできる一連のDBAスタイルのデータ・ディクショナリ・ビューが用意されています。(または、Oracle Database Vault上でレポートを実行できます。詳細は、第18章「Oracle Database Vaultレポート」を参照してください。)これらのビューは、DVSYSスキーマおよびLBACSYSスキーマの様々な基礎となるOracle Database Vaultの表に、存在する可能性がある主キーおよび外部キーの列を公開せずにアクセスできます。これらのビューは、コア表に格納されているコードまたは関連表のコードに対するラベルを取得しなければならない結合を実行する必要なしに、データベース管理ユーザーがOracle Database Vault構成の状態についてレポートを作成するためのものです。

DVSYS.DBA_DV_CODEビュー

DVSYS.DBA_DV_CODEデータ・ディクショナリ・ビューでは、ユーザー・インタフェース、エラー・メッセージ、制約チェックなどの一般的な参照コードが表示されます。これらのコードは、ユーザー・インタフェースやビュー、変換可能な形式の入力の検証に使用されます。

次に例を示します。

SELECT CODE, VALUE FROM DVSYS.DBA_DV_CODE WHERE CODE_GROUP = 'BOOLEAN';

次のような出力が表示されます。

CODE    VALUE
------- --------
Y       True
N       False

列

データ型

NULL

説明

CODE_GROUP

VARCHAR(30)

NOT NULL

次のコード・グループのいずれかが表示されます。

- AUDIT_EVENTS: カスタム・イベント監査証跡レコードに使用されるアクション番号およびアクション名を含む

- BOOLEAN: 単純なYes/NoまたはTrue/False参照

- DB_OBJECT_TYPE: レルム・オブジェクトおよびコマンド認可に使用できるデータベース・オブジェクト・タイプ

- SQL_CMDS: コマンド・ルールによって保護されるDDLコマンド

- FACTOR_AUDIT: ファクタ取得処理の監査オプション

- FACTOR_EVALUATE: ファクタ取得用の評価オプション(セッションごとまたはアクセスごと)

- FACTOR_FAIL: ファクタ取得メソッドが失敗した場合にエラーを伝播するためのオプション

- FACTOR_IDENTIFY: ファクタ識別子の解決方法(メソッドごとまたはファクタごとなど)を決定するためのオプション

- FACTOR_LABEL: セッション確立フェーズでファクタ識別子をラベル付けする方法を決定するためのオプション

- LABEL_ALG: ポリシーごとにデータベース・セッションの最大セッション・ラベルを決定するために使用されるアルゴリズム。Oracle Label Securityマージ・アルゴリズム・コードのリストは、表12-57「Oracle Label Securityマージ・アルゴリズム・コード」参照してください。

- OPERATORS: アイデンティティ・マップに使用されるブール演算子

- REALM_AUDIT: レルム・アクセスまたはレルム違反を監査するためのオプション

- REALM_OPTION: レルムの所有権のオプション

- RULESET_AUDIT: ルール・セットの実行またはルール・セット・エラーを監査するためのオプション

- RULESET_EVALUATE: 関連付けられたルールのすべてがtrueか、関連付けられたルールのいずれかがtrueかによって、ルール・セットの成功または失敗を決定するためのオプション

- RULESET_EVENT: ルール・セットが成功または失敗と評価される場合にカスタム・イベント・ハンドラを起動するためのオプション

- RULESET_FAIL: ルール・セットの失敗のランタイム表示を決定するためのオプション

CODE

VARCHAR(30)

NOT NULL

ブール・コードが使用されます。Y(YES)またはN(NO)のいずれかです。

VALUE

VARCHAR(4000)

ブール値が使用されます。ブール・コードがYの場合はTrueで、ブール・コードがNの場合はFalseです。

LANGUAGE

VARCHAR(3)

NOT NULL

このOracle Database Vaultインストールの言語。
サポートされている言語のリストは、「Oracle Database Vaultへの言語の追加」を参照してください。

DESCRIPTION

VARCHAR(1024)

コード・グループの簡単な説明。

DVSYS.DBA_DV_COMMAND_RULEビュー

DVSYS.DBA_DV_COMMAND_RULEデータ・ディクショナリ・ビューでは、コマンド・ルールにより保護されるSQL文が表示されます。コマンド・ルールの詳細は、第6章「コマンド・ルールの構成」を参照してください。

次に例を示します。

SELECT COMMAND, RULE_SET_NAME FROM DVSYS.DBA_DV_COMMAND_RULE;

次のような出力が表示されます。

COMMAND         RULE_SET_NAME
--------------- -----------------------------
GRANT           Can Grant VPD Administration
REVOKE          Can Grant VPD Administration
ALTER SYSTEM    Allow System Parameters
ALTER USER      Can Maintain Own Account
CREATE USER     Can Maintain Account/Profiles
DROP USER       Can Maintain Account/Profiles
CREATE PROFILE  Can Maintain Account/Profiles
DROP PROFILE    Can Maintain Account/Profiles
ALTER PROFILE   Can Maintain Account/Profiles

列

データ型

NULL

説明

COMMAND

VARCHAR(30)

NOT NULL

コマンド・ルールの名前。デフォルトのコマンド・ルールのリストは、「デフォルトのコマンド・ルール」を参照してください。

RULE_SET_NAME

VARCHAR(90)

NOT NULL

このコマンド・ルールに関連付けられたルール・セットの名前。

OBJECT_OWNER

VARCHAR(30)

NOT NULL

コマンド・ルールが影響するオブジェクトの所有者。

OBJECT_NAME

VARCHAR(128)

NOT NULL

コマンド・ルールが影響するデータベース・オブジェクト(データベース表など)の名前。

ENABLED

VARCHAR(1)

NOT NULL

Yはコマンド・ルールが有効になっていることを示し、Nはコマンド・ルールが無効になっていることを示します。

DVSYS.DBA_DV_DATAPUMP_AUTHビュー

DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューでは、Oracle Database Vault環境でOracle Data Pumpを使用するための認可が表示されます。詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_DATAPUMP_AUTH WHERE GRANTEE = 'PRESTON';

次のような出力が表示されます。

GRANTEE SCHEMA OBJECT
------- ------ -------
PRESTON OE     ORDERS

列

データ型

NULL

説明

GRANTEE

VARCHAR2(128)

NOT NULL

データ・ポンプの認可を付与されたユーザーの名前。

SCHEMA

VARCHAR2(128)

NOT NULL

ユーザーGRANTEEがデータ・ポンプ操作の実行を認可されるスキーマの名前。

OBJECT

VARCHAR2(128)

NOT NULL

GRANTEEユーザーがデータ・ポンプの認可(表など)を持つSCHEMAパラメータで指定されるスキーマ内のオブジェクトの名前。

DVSYS.DBA_DV_FACTORビュー

DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューでは、現行のデータベース・インスタンス内の既存のファクタが表示されます。

次に例を示します。

SELECT NAME, GET_EXPR FROM DVSYS.DBA_DV_FACTOR WHERE NAME = 'Session_User';

次のような出力が表示されます。

NAME          GET_EXPR
------------- ---------------------------------------------
Session_User  UPPER(SYS_CONTEXT('USERENV', 'SESSION_USER'))

関連するビュー

- DVSYS.DBA_DV_FACTOR_LINKビュー

- DVSYS.DBA_DV_FACTOR_TYPEビュー

列

データ型

NULL

説明

NAME

VARCHAR2(30)

NOT NULL

ファクタの名前。デフォルトのファクタのリストは、「デフォルトのファクタ」を参照してください。

DESCRIPTION

VARCHAR2(4000)

ファクタの説明。

FACTOR_TYPE_NAME

VARCHAR2(90)

NOT NULL

ファクタの目的を分類するために使用されるファクタのカテゴリ。

ASSIGN_RULE_SET_NAME

VARCHAR2(90)

ファクタのアイデンティティを制御するために使用されるルール・セット。

GET_EXPR

VARCHAR2(1024)

ファクタのアイデンティティを取得するPL/SQL式。

VALIDATE_EXPR

VARCHAR2(1024)

ファクタのアイデンティティの検証に使用されるPL/SQL式。ブール値を返します。

IDENTIFIED_BY

NUMBER

NOT NULL

GET_EXPR列に示された式に基づいてファクタのアイデンティティが決まります。可能な値は次のとおりです。

- 0: By constant

- 1: By method

- 2: By factors

IDENTIFIED_BY_MEANING

VARCHAR2(4000)

IDENTIFIED_BY列の対応する値にテキスト説明が提供されます。可能な値は次のとおりです。

- 定数: IDENTIFIED_COLUMNが0の場合

- メソッド: IDENTIFIED_COLUMNが1の場合

- ファクタ: IDENTIFIED_COLUMNが2の場合

LABELED_BY

NUMBER

NOT NULL

ファクタのラベル付けが決まります。

- 0: Oracle Label Securityポリシーに関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします。

- 1: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

LABELED_BY_MEANING

VARCHAR2(4000)

LABELED_BY列の対応する値にテキスト説明が提供されます。可能な値は次のとおりです。

- 自己: LABELED_BY列が0の場合

- ファクタ: LABELED_BY列が1の場合

EVAL_OPTIONS

NUMBER

NOT NULL

ユーザーのログイン時にファクタを評価する方法が決定されます。

- 0: データベース・セッションの作成時

- 1: ファクタがアクセスされる際に毎回

- 2: On start-up

EVAL_OPTIONS_MEANING

VARCHAR2(4000)

EVAL_OPTIONS列の対応する値にテキスト説明が提供されます。可能な値は次のとおりです。

- セッション: EVAL_OPTIONSが0の場合

- アクセス: EVAL_OPTIONSが1の場合

- 起動時: EVAL_OPTIONSが2の場合

AUDIT_OPTIONS

NUMBER

NOT NULL

カスタムのOracle Database Vault監査レコードから生成する場合にファクタを監査するオプション。可能な値は次のとおりです。

- 0: No auditing set

- 1: Always audits

- 2: get_exprがエラーを返した場合に監査します。

- 4: get_exprがnullの場合に監査します。

- 8: 検証プロシージャがエラーを返した場合に監査します。

- 16: 検証プロシージャがfalseの場合に監査します。

- 32: 信頼レベルが設定されていない場合に監査します。

- 64: 信頼レベルが負の場合に監査します。

FAIL_OPTIONS

NUMBER

NOT NULL

ファクタ・エラーをレポートするオプション。

- 1: エラー・メッセージを表示します。

- 2: エラー・メッセージを表示しません。

FAIL_OPTIONS_MEANING

VARCHAR2(4000)

FAIL_OPTIONS列の対応する値にテキスト説明が提供されます。可能な値は次のとおりです。

- Show Error Message

- エラー・メッセージを表示しない:

DVSYS.DBA_DV_FACTOR_LINKビュー

DVSYS.DBA_DV_FACTOR_LINKデータ・ディクショナリ・ビューでは、子ファクタの関連によりアイデンティティが決まる各ファクタの関係が表示されます。ビューでは、各親ファクタおよび子ファクタに1つのエントリが含まれます。このビューを使用して、ファクタ・リンクからアイデンティティ・マップに関係を解決できます。

次に例を示します。

SELECT PARENT_FACTOR_NAME, CHILD_FACTOR_NAME FROM DVSYS.DBA_DV_FACTOR_LINK;

次のような出力が表示されます。

PARENT_FACTOR_NAME             CHILD_FACTOR_NAME
------------------------------ ------------------------------
Domain                         Database_Instance
Domain                         Database_IP
Domain                         Database_Hostname

関連するビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_FACTOR_TYPEビュー

列

データ型

NULL

説明

PARENT_FACTOR_NAME

VARCHAR(30)

NOT NULL

親ファクタの名前。

CHILD_FACTOR_NAME

VARCHAR(30)

NOT NULL

親ファクタの子ファクタの名前。

LABEL_IND

VARCHAR(1)

NOT NULL

親ファクタにリンクされた子ファクタが、Oracle Label Security統合での親ファクタのラベルに含まれるかどうかを示します。可能な値は次のとおりです。

- Y(YES)

- N(NO)

DVSYS.DBA_DV_FACTOR_TYPEビュー

DVSYS.DBA_DV_FACTOR_TYPEデータ・ディクショナリ・ビューでは、システムで使用されているファクタ・タイプの名前と説明が表示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_FACTOR_TYPE WHERE NAME = 'Hostname';

次のような出力が表示されます。

NAME      DESCRIPTION
--------- ----------------------------------------------------------------------
Time      Time-based factor

関連するビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_FACTOR_LINKビュー

列

データ型

NULL

説明

NAME

VARCHAR(90)

NOT NULL

ファクタ・タイプの名前。

DESCRIPTION

VARCHAR(1024)

ファクタ・タイプの説明。

DVSYS.DBA_DV_IDENTITYビュー

DVSYS.DBA_DV_IDENTITYデータ・ディクショナリ・ビューでは、各ファクタのアイデンティティが表示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_IDENTITY WHERE VALUE = 'GLOBAL SHARED';

1つのファクタ・アイデンティティのみ作成されている仮定して、次のような出力結果が表示されます。

FACTOR_NAME          VALUE          TRUST_LEVEL
----------------     -------------- ------------
Identification_Type  GLOBAL SHARED  1

関連するビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_IDENTITY_MAPビュー

列

データ型

NULL

説明

FACTOR_NAME

VARCHAR(30)

NOT NULL

ファクタの名前。

VALUE

VARCHAR(1024)

NOT NULL

ファクタの値。

TRUST_LEVEL

NUMBER

NOT NULL

同じファクタの別のアイデンティティと比較した信頼の度合いを示す数値。

DVSYS.DBA_DV_IDENTITY_MAPビュー

DVSYS.DBA_DV_IDENTITY_MAPデータ・ディクショナリ・ビューでは、各ファクタ・アイデンティティのマップが表示されます。このビューには、別のファクタによって識別されるファクタの、親と子のファクタの組合せリンクへのマッピングが含まれます。各ファクタでは、マップはOR演算子で結合され、異なるファクタでは、AND演算子で結合されます。

このビューを使用して、他のファクタ(ドメインなど)によって識別されるファクタ、または連続するドメイン(年齢や温度など)のあるファクタのアイデンティティを解決できます。

次に例を示します。

SELECT FACTOR_NAME, IDENTITY_VALUE FROM DVSYS.DBA_DV_IDENTITY_MAP;

次のような出力が表示されます。

FACTOR_NAME      IDENTITY_VALUE
---------------- --------------------
Sector2_Program  Accounting-Sensitive

関連するビュー

- DVSYS.DBA_DV_FACTORビュー

- DVSYS.DBA_DV_IDENTITYビュー

列

データ型

NULL

説明

FACTOR_NAME

VARCHAR(30)

NOT NULL

アイデンティティ・マップの対象のファクタ。

IDENTITY_VALUE

VARCHAR(1024)

NOT NULL

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

OPERATION_VALUE

VARCHAR(4000)

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)

OPERAND1

VARCHAR(1024)

関係演算子の左オペランド。入力する下限値を表します。

OPERAND2

VARCHAR(1024)

関係演算子の右オペランド。入力する上限値を表します。

PARENT_FACTOR_NAME

VARCHAR(30)

マップが関連する親ファクタ・リンク。

CHILD_FACTOR_NAME

VARCHAR(30)

マップが関連する子ファクタ・リンク。

LABEL_IND

VARCHAR(1)

親ファクタにリンクされた子ファクタが、Oracle Label Security統合での親ファクタのラベルに含まれるかどうかを示します。可能な値は次のとおりです。

- Y(YES)

- N(NO)

DVSYS.DBA_DV_MAC_POLICYビュー

DVSYS.DBA_DV_MAC_POLICYデータ・ディクショナリ・ビューでは、Oracle Database Vaultで使用するために定義されたOracle Label Securityポリシーが表示されます。

次に例を示します。

SELECT POLICY_NAME, ALGORITHM_CODE, ALGORITHM_MEANING
FROM DVSYS.DBA_DV_MAC_POLICY;

次のような出力が表示されます。

POLICY_NAME     ALGORITHM_CODE    ALGORITHM_MEANING
--------------- ----------------- -----------------------
ACCESS_DATA     LUI               Minimum Level/Union/Intersection

関連するビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

列

データ型

NULL

説明

POLICY_NAME

VARCHAR(30)

NOT NULL

ポリシーの名前。

ALGORITHM_CODE

VARCHAR(30)

NOT NULL

ポリシーに使用されるマージ・アルゴリズム・コード。アルゴリズム・コードのリストは、表12-57を参照してください。

ALGORITHM_MEANING

VARCHAR(4000)

ALGORITHM_CODE列の対応する値にテキスト説明が提供されます。アルゴリズム・コードの説明のリストは、表12-57を参照してください。

ERROR_LABEL

VARCHAR(4000)

初期化エラーに対して指定されたラベル。セッションの初期化中に構成エラーまたはランタイム・エラーが発生すると設定されます。

DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

DVSYS.DBA_DV_MAC_POLICYデータ・ディクショナリ・ビューでは、Oracle Label Securityポリシーに関連付けられているファクタが表示されます。

このビューを使用して、DVSYS.DBA_DV_MAC_POLICYビューを使用する各ポリシーの最大セッション・ラベルを構成しているのがどのファクタであるかを特定できます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_MAC_POLICY_FACTOR;

次のような出力が表示されます。

FACTOR_NAME    MAC_POLICY_NAME
-------------- ------------------
App_Host_Name  Access Locations

関連するビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

列

データ型

NULL

説明

FACTOR_NAME

VARCHAR(30)

NOT NULL

ファクタの名前。

MAC_POLICY_NAME

VARCHAR(30)

NOT NULL

このファクタに関連付けられているOracle Label Securityポリシーの名前。

DVSYS.DBA_DV_POLICY_LABELビュー

DVSYS.DBA_DV_POLICY_LABELデータ・ディクショナリ・ビューでは、各ポリシーのDVSYS.DBA_DV_IDENTITYビューのファクタ識別子ごとにOracle Label Securityラベルが表示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_POLICY_LABEL;

次のような出力が表示されます。

IDENTITY_VALUE   FACTOR_NAME     POLICY_NAME       LABEL
---------------- --------------  ----------------  ---------
App_Host_Name    Sect2_Fin_Apps  Access Locations  Sensitive

関連するビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

列

データ型

NULL

説明

IDENTITY_VALUE

VARCHAR(1024)

NOT NULL

ファクタ識別子の名前。

FACTOR_NAME

VARCHAR(30)

NOT NULL

ファクタ識別子に関連付けられているファクタの名前。

POLICY_NAME

VARCHAR(30)

NOT NULL

このファクタに関連付けられているOracle Label Securityポリシーの名前。

LABEL

VARCHAR(4000)

NOT NULL

ポリシーに関連付けられているOracle Label Securityラベルの名前。

DVSYS.DBA_DV_PUB_PRIVSビュー

DVSYS.DBA_DV_PUB_PRIVSデータ・ディクショナリ・ビューでは、Oracle Database Vault Administrator(DV_ADMIN)で使用されるOracle Database Vault権限管理レポートに反映されるデータが表示されます。「権限管理 - サマリー・レポート」も参照してください。

次に例を示します。

SELECT USERNAME, ACCESS_TYPE FROM DVSYS.DBA_DV_PUB_PRIVS WHERE USERNAME = 'OE';

次のような出力が表示されます。

USERNAME    ACCESS_TYPE
----------- -----------------
OE          PUBLIC

関連するビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

- DVSYS.DBA_DV_ROLEビュー

列

データ型

NULL

説明

USERNAME

VARCHAR(30)

NOT NULL

現在のデータベース・インスタンス内のデータベース・スキーマ。

ACCESS_TYPE

VARCHAR(30)

USERNAME列に表示されたユーザーに付与されているアクセス・タイプ(PUBLICなど)。

PRIVILEGE

VARCHAR(40)

NOT NULL

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(30)

NOT NULL

USERNAMEのユーザーが権限を付与されているデータベース・スキーマの所有者。

OBJECT_NAME

VARCHAR(30)

NOT NULL

OWNER列に表示されたスキーマ内のオブジェクトの名前。

DVSYS.DBA_DV_REALMビュー

DVSYS.DBA_DV_REALMデータ・ディクショナリ・ビューでは、現行のデータベース・インスタンスで作成されたレルムが表示されます。

次に例を示します。

次に例を示します。

SELECT NAME, AUDIT_OPTIONS, ENABLED FROM DVSYS.DBA_DV_REALM
WHERE AUDIT_OPTIONS = '1';

次のような出力が表示されます。

NAME                          AUDIT_OPTIONS    ENABLED
----------------------------- ---------------- --------
Performance Statistics Realm  1                Y

関連するビュー

- DVSYS.DBA_DV_REALM_AUTHビュー

- DVSYS.DBA_DV_REALM_OBJECTビュー

列

データ型

NULL

説明

NAME

VARCHAR(90)

NOT NULL

作成されたレルムの名前。デフォルトのレルムのリストは、「デフォルトのレルム」を参照してください。

DESCRIPTION

VARCHAR(1024)

NOT NULL

作成されたレルムの説明。

AUDIT_OPTIONS

NUMBER

NOT NULL

監査が有効になっているかどうかを指定します。可能な値は次のとおりです。

- 0: レルムの監査なし。

- 1: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

- 2: レルムで保護されているオブジェクトに対する認可されたアクティビティに関する監査レコードが作成されます。

- 3: レルムで保護されているオブジェクトに対する認可および無認可の両方のアクティビティに関する監査レコードが作成されます。

ENABLED

VARCHAR(1)

NOT NULL

レルム・チェックが有効になっているかどうかを指定します。Y(YES)は監査が有効になっていることを示し、N(NO)は有効になっていないことを示します。

DVSYS.DBA_DV_REALM_AUTHビュー

DVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューでは、特定のレルムのレルム・オブジェクトにアクセスするための、名前付きデータベース・ユーザー・アカウントまたはデータベース・ロール(GRANTEE)の認可が表示されます。詳細は、「レルム認可の定義」を参照してください。

次に例を示します。

SELECT REALM_NAME, GRANTEE, AUTH_RULE_SET_NAME FROM DVSYS.DBA_DV_REALM_AUTH;

次のような出力が表示されます。

REALM_NAME                    GRANTEE  AUTH_RULE_SET_NAME
---------------------------- --------- ---------------------
Performance Statistics Realm  SYSADM   Check Conf Access

関連するビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.DBA_DV_REALM_OBJECTビュー

列

データ型

NULL

説明

REALM_NAME

VARCHAR(90)

NOT NULL

レルムの名前。

GRANTEE

VARCHAR(30)

NOT NULL

所有者または参加者として認可するユーザーまたはロール名。

AUTH_RULE_SET_NAME

VARCHAR(90)

認可の前にチェックするルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

AUTH_OPTIONS

VARCHAR(4000)

レルム認可のタイプ。「参加者」または「所有者」のいずれかです。

DVSYS.DBA_DV_REALM_OBJECTビュー

DVSYS.DBA_DV_REALM_OBJECTデータ・ディクショナリ・ビューでは、データベース・スキーマ、または特定のデータベース・オブジェクトが含まれている(つまり、レルムによって保護されている)スキーマのサブセットが表示されます。詳細は、「レルム・セキュア・オブジェクトの作成」を参照してください。

次に例を示します。

SELECT REALM_NAME, OWNER, OBJECT_NAME FROM DVSYS.DBA_DV_REALM_OBJECT;

次のような出力が表示されます。

REALM_NAME                   OWNER    OBJECT_NAME
---------------------------- -------- -----------
Performance Statistics Realm OE       ORDERS

関連するビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.DBA_DV_REALM_AUTHビュー

列

データ型

NULL

説明

REALM_NAME

VARCHAR(90)

NOT NULL

レルムの名前。

OWNER

VARCHAR(90)

NOT NULL

レルムを所有するデータベース・スキーマ所有者。

OBJECT_NAME

VARCHAR(90)

NOT NULL

レルムによって保護されるオブジェクトの名前。

OBJECT_TYPE

VARCHAR(90)

NOT NULL

レルムによって保護されるオブジェクトのタイプ(データベース表、ビュー、索引、ロールなど)。

DVSYS.DBA_DV_ROLEビュー

DVSYS.DBA_DV_ROLEデータ・ディクショナリ・ビューでは、権限管理で使用されるOracle Database Vaultセキュア・アプリケーション・ロールが表示されます。

次に例を示します。

SELECT ROLE, RULE_NAME FROM DVSYS.DBA_DV_ROLE;

次のような出力が表示されます。

ROLE               RULE_NAME
------------------ --------------------
Sector2_APP_MGR    Check App2 Access
Sector2_APP_DBA    Check App2 Access

関連するビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

列

データ型

NULL

説明

ROLE

VARCHAR(30)

NOT NULL

セキュア・アプリケーション・ロールの名前。

RULE_NAME

VARCHAR(90)

NOT NULL

セキュア・アプリケーション・ロールに関連付けられているルール・セットの名前。

ENABLED

VARCHAR(1)

NOT NULL

セキュア・アプリケーション・ロールが有効になっているかどうかを示します。Y(YES)の場合、ロールは有効になり、N(NO)の場合、ロールは無効になります。

DVSYS.DBA_DV_RULEビュー

DVSYS.DBA_DV_RULEデータ・ディクショナリ・ビューでは、定義済のルールが表示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_RULE WHERE NAME = 'Maintenance Window';

次のような出力が表示されます。

NAME                RULE_EXP
------------------- ----------------------------------------------
Maintenance Window  TO_CHAR(SYSDATE,'HH24') BETWEEN '10' AND '12'

特定のルールを使用するルール・セットを検索する場合は、DVSYS.DBA_DV_RULE_SET_RULEビューに問い合せます。

関連するビュー

- DVSYS.DBA_DV_RULE_SETビュー

- DVSYS.DBA_DV_RULE_SET_RULEビュー

列

データ型

NULL

説明

NAME

VARCHAR(90)

NOT NULL

ルールの名前。

RULE_EXPR

VARCHAR(1024)

NOT NULL

ルール用のPL/SQL式。

DVSYS.DBA_DV_RULE_SETビュー

DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューでは、作成済のルール・セットが表示されます。

次に例を示します。

SELECT RULE_SET_NAME, HANDLER_OPTIONS, HANDLER FROM DVSYS.DBA_DV_RULE_SET
WHERE RULE_SET_NAME = 'Maintenance Period';

次のような出力が表示されます。

RULE_SET_NAME       HANDLER_OPTIONS  HANDLER
------------------- ---------------- ----------------------
Maintenance Period                   1 dbavowner.email_alert

関連するビュー

- DVSYS.DBA_DV_RULEビュー

- DVSYS.DBA_DV_RULE_SET_RULEビュー

列

データ型

NULL

説明

RULE_SET_NAME

VARCHAR(90)

NOT NULL

ルール・セットの名前。

DESCRIPTION

VARCHAR(1024)

ルール・セットの説明。

ENABLED

VARCHAR(1)

NOT NULL

ルール・セットが有効になっているかどうかを示します。Y(YES)の場合、ルール・セットは有効になり、N(NO)の場合、ルール・セットは無効になります。

EVAL_OPTIONS_MEANING

VARCHAR(4000)

複数のルールが含まれるルール・セットの場合、評価されるルールの数が決まります。可能な値は次のとおりです。

- すべてTrue: ルール・セット自体がTRUEと評価されるために、ルール・セットのルールはすべてTrueと評価される必要があります。

- いずれかTrue: ルール・セット自体がTRUEと評価されるために、少なくともルール・セットの1つのルールがTrueと評価される必要があります。

AUDIT_OPTIONS

NUMBER

NOT NULL

監査が使用される時期を示します。可能な値は次のとおりです。

- 0: 監査なし

- 1: 失敗時に監査

- 2: 成功時に監査

- 3: 失敗時と成功時の両方に監査

FAIL_OPTIONS_MEANING

VARCHAR(4000)

ルール・セットに対して監査レコードが作成される時期が決定されます。可能な値は次のとおりです。

- エラー・メッセージを表示しない。

- Show Error Message

FAIL_MESSAGE

VARCHAR(80)

FAIL_CODE列に表示された失敗コードに関連付けられている失敗に対するエラー・メッセージ。

FAIL_CODE

VARCHAR(10)

FAIL_MESSAGE列に表示されたメッセージに関連付けられているエラー・メッセージ番号。考えられる値の範囲は、-20000から-20999と20000から20999です。

HANDLER_OPTIONS

NUMBER

NOT NULL

エラー処理の使用方法が決まります。可能な値は次のとおりです。

- 0: エラー処理を無効にします。

- 1: ルール・セット失敗時にハンドラをコールします。

- 2: ルール・セット成功時にハンドラをコールします。

HANDLER

VARCHAR(1024)

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

IS_STATIC

VARCHAR2(5)

ユーザー・セッション中にルール・セットが評価される頻度を示します。可能な値は次のとおりです。

- TRUE: ルール・セットは1回評価され、ルール・セットの結果はユーザー・セッションで再利用されます。

- FALSE(デフォルト): ルール・セットは、ユーザー・セッション中にアクセスされるたびに評価されます。

DVSYS.DBA_DV_RULE_SET_RULEビュー

DVSYS.DBA_DV_RULE_SET_RULEデータ・ディクショナリ・ビューでは、既存のルール・セットに関連付けられているルールが表示されます。

次に例を示します。

SELECT RULE_SET_NAME, RULE_NAME, RULE_EXPR FROM DVSYS.DBA_DV_RULE_SET_RULE
WHERE RULE_NAME = 'Is Security Officer';

次のような出力が表示されます。

RULE_SET_NAME                RULE_NAME          RULE_EXP
---------------------------- ------------------ ---------------------------------
Can Grant VPD Administration Is Security Owner  DBMS_MACUTL.USER_HAS_ROLE_
VARCHAR('DV_OWNER',dvsys.dv_
login_user) = 'Y'

関連するビュー

- DVSYS.DBA_DV_RULEビュー

- DVSYS.DBA_DV_RULE_SETビュー

列

データ型

NULL

説明

RULE_SET_NAME

VARCHAR(90)

NOT NULL

ルールが含まれるルール・セットの名前。

RULE_NAME

VARCHAR(90)

NOT NULL

ルールの名前。

RULE_EXPR

VARCHAR(1024)

NOT NULL

RULE_NAME列に表示されたルールを定義するPL/SQL式。

ENABLED

VARCHAR(1)

ルールが有効になっているか無効になっているかを示します。Y(YES)の場合、ルール・セットは有効になり、N(NO)の場合、ルール・セットは無効になります。

RULE_ORDER

NUMBER

NOT NULL

ルール・セット内でルールが使用される順序。このリリースには適用されません。

DVSYS.DBA_DV_USER_PRIVSビュー

DVSYS.DBA_DV_USER_PRIVSデータ・ディクショナリ・ビューでは、PUBLICロールによって付与された権限を除くデータベース・ユーザー・アカウントの権限が表示されます。

次に例を示します。

SELECT USERNAME, ACCESS_TYPE, PRIVILEGE FROM DVSYS.DBA_DV_USER_PRIVS;

次のような出力が表示されます。

USERNAME  ACCESS_TYPE          PRIVILEGE
--------- -------------------- ------------
DVSYS     DV_PUBLIC            EXECUTE
DVOWNER   DV_ADMIN             SELECT
SYS       SELECT_CATALOG_ROLE  SELECT
...

関連するビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_ROLEビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

列

データ型

NULL

説明

USERNAME

VARCHAR(30)

NOT NULL

権限が定義されているデータベース・スキーマ・アカウントの名前。

ACCESS_TYPE

VARCHAR(30)

USERNAME列に表示されたデータベース・ユーザー・アカウントがデータベースへのアクセスに使用するロール。Oracle Database Vaultアカウントには直接アクセス権があります。

PRIVILEGE

VARCHAR(40)

NOT NULL

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(30)

NOT NULL

データベース・ユーザー・アカウントの名前。

OBJECT_NAME

VARCHAR(30)

NOT NULL

権限の定義に使用されるPL/SQLファンクションまたはプロシージャの名前。

DVSYS.DBA_DV_USER_PRIVS_ALLビュー

DVSYS.DBA_DV_USER_PRIVS_ALLデータ・ディクショナリ・ビューでは、PUBLICによって付与された権限を含むデータベース・アカウントの権限が表示されます。

次に例を示します。

SELECT USERNAME, ACCESS_TYPE, PRIVILEGE FROM DVSYS.DBA_DV_USER_PRIVS;

次のような出力が表示されます。

USERNAME            ACCESS_TYPE  PRIVILEGE
------------------- ------------ -----------------
AMALCOLM_DVACCTMGR  CONNECT      CREATE_SESSION
LBROWN_DVOWNER      DIRECT       CREATE PROCEDURE
...

関連するビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_ROLEビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

列

データ型

NULL

説明

USERNAME

VARCHAR(30)

権限が定義されているデータベース・スキーマ・アカウントの名前。

ACCESS_TYPE

VARCHAR(30)

USERNAME列に表示されたデータベース・ユーザー・アカウントがデータベースへのアクセスに使用するロール。Oracle Database Vaultアカウントには直接アクセス権があります。

PRIVILEGE

VARCHAR(40)

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(30)

データベース・ユーザー・アカウントの名前。

OBJECT_NAME

VARCHAR(30)

権限の定義に使用されるPL/SQLファンクションまたはプロシージャの名前。

17 Oracle Database Vaultの監視

この章の内容は次のとおりです。

- セキュリティ違反未遂行為

- データベースの構成および構造の変更

- カテゴリ別のセキュリティ・ポリシー変更

- セキュリティ・ポリシー変更の詳細

関連項目:
スクリーン・リーダー用のテキスト説明を作成するように「監視」ページの表を構成する方法については、「Database Vault Administratorのグラフのテキスト説明の提供」を参照してください。

セキュリティ違反未遂行為

レルム違反やコマンド・ルール違反などのセキュリティ違反をチェックできます。この機能を使用すると、違反をコミットしたユーザーの名前、コミットしたアクションおよびアクティビティのタイムスタンプなどのデータが表示されます。

これらのイベントを表示するには、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。AUDIT_TRAILパラメータの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

セキュリティ違反をチェックするには、次のようにします。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「監視」をクリックします。

3. 「監視」ページの上部で、「次のレコードを表示」リストから選択して「実行」をクリックし、監視アクションの期間を設定します。
「監視」ページのこのセクションには、ページのデータがリフレッシュされた最終時刻も表示されます。

4. 「監視」ページで、「セキュリティ違反未遂行為」をクリックします。
セキュリティ・ポリシー変更を示す表が表示されます。

データベースの構成および構造の変更

データベースまたはデータベース・スキーマ・オブジェクトに対する構造の変更を確認できます。この機能で、CREATE TABLE、ALTER TABLE、DROP TABLE、ALTER DATABASEなどの文の監査も行えます。コマンド・ルールで使用されるコマンドにかぎらず、すべてのコマンドが監査されます。たとえば、本番システムで表に予期しない変更が行われた場合、この機能を使用して状況を確認できます。

これらのイベントを表示するには、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。AUDIT_TRAILパラメータの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

次の手順に従います。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「監視」をクリックします。

3. 「監視」ページの上部で、「次のレコードを表示」リストから選択して「実行」をクリックし、監視アクションの期間を設定します。
「監視」ページのこのセクションには、ページのデータがリフレッシュされた最終時刻も表示されます。

4. 「監視」ページで、「データベースの構成および構造の変更」をクリックします。
次のような表が表示されます。

カテゴリ別のセキュリティ・ポリシー変更

この項の内容は次のとおりです。

- カテゴリ別のセキュリティ・ポリシー変更について

- カテゴリ別のセキュリティ・ポリシー変更の監視手順

カテゴリ別のセキュリティ・ポリシー変更について

次に示すカテゴリについて、ポリシー変更数を確認できます。これらのカテゴリは、任意の環境のデータベース・セキュリティ・ポリシー(つまり構成)を反映します。セキュリティに関連した何かが変更された場合は、グラフや表を使用して掘り下げ、調査する必要がある予期しない変更を発見できます。

これらのイベントを表示するには、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。AUDIT_TRAILパラメータの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

- Database Vaultポリシー: Oracle Database Vaultの構成またはポリシーの変更を表す、Oracle Database Vaultの管理パッケージまたはユーザー・インタフェースを介して行われた変更を示します。

- Label Securityポリシー: Oracle Label Securityのポリシーまたは権限の変更を表す、Oracle Database Vaultの管理パッケージまたはユーザー・インタフェースを介して行われた変更を示します。

- 監査ポリシー: AUDIT文またはNOAUDIT文から取得されるデータベース監査ポリシーに対する変更を示します。

- 権限の付与: システム権限またはオブジェクト権限のGRANT文に対する変更を示します。

- 権限の取消: システム権限またはオブジェクト権限のREVOKE文に対する変更を示します。

- データベース・アカウント: CREATE USER文、ALTER USER文またはDROP USER文に対する変更を示します。

- データベース・ロール: CREATE ROLE文、ALTER ROLE文またはDROP ROLE文に対する変更を示します。

カテゴリ別のセキュリティ・ポリシー変更の監視手順

カテゴリ別のセキュリティ・ポリシー変更を監視するには、次のようにします。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログオン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「監視」をクリックします。

3. 「監視」ページの上部で、「次のレコードを表示」リストから選択して「実行」をクリックし、監視アクションの期間を設定します。
「監視」ページのこのセクションには、ページのデータがリフレッシュされた最終時刻も表示されます。

4. 「監視」ページで、「カテゴリ別のセキュリティ・ポリシー変更」のグラフを確認します。
次のようなグラフが表示されます。このグラフは、Oracle Database Vaultポリシー、監査ポリシー、権限の付与および取消、データベース・アカウントおよびデータベース・ロールに基づいて、セキュリティ・ポリシー変更の数を示しています。

セキュリティ・ポリシー変更の詳細

変更を行ったユーザー、発生したアクション、変更のタイムスタンプなど、セキュリティ・ポリシー変更の詳細を確認できます。

これらのイベントを表示するには、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。AUDIT_TRAILパラメータの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

セキュリティ・ポリシー変更の詳細を監視するには、次のようにします。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「管理」ページで、「監視」をクリックします。

3. 「監視」ページの上部で、「次のレコードを表示」リストから選択して「実行」をクリックし、監視アクションの期間を設定します。
ページのこのセクションには、ページのデータがリフレッシュされた最終時刻も表示されます。

4. 「監視」ページで、「セキュリティ・ポリシー変更の詳細」をクリックします。
セキュリティ・ポリシー変更の詳細を示す表が表示されます。

18 Oracle Database Vaultレポート

この章の内容は次のとおりです。

- Oracle Database Vaultレポートのカテゴリ

- Oracle Database Vaultレポートを実行できるユーザー

- Oracle Database Vaultレポートの実行方法

- Oracle Database Vaultレポートの生成

- 一般セキュリティ・レポートの生成

関連項目:
「Enterprise Manager Grid ControlでのOracle Database Vault固有レポートの使用」

Oracle Database Vaultレポートのカテゴリ

Oracle Database Vaultには、データベースからのセキュリティに関する情報を示す一連のレポートが用意されています。これらのレポートには、Oracle Database Vaultのカスタム監査イベント情報も表示されます。レポートは、次の2つのカテゴリに分類されます。

- Database Vaultレポート。このレポートでは、レルム、コマンド・ルール、ファクタ、ファクタのアイデンティティ、ルール・セットおよびセキュア・アプリケーション・ロールの構成上の問題をチェックできます。レルム違反、監査結果なども明らかになります。

- 一般セキュリティ・レポート。このレポートでは、オブジェクト権限、データベース・アカウントのシステム権限、機密オブジェクト、権限管理、強力なデータベース・アカウントおよびロール、初期化パラメータ、プロファイル、アカウントのパスワード、セキュリティ監査、その他のセキュリティ脆弱性レポートのステータスをチェックできます。

Oracle Database Vaultレポートを実行できるユーザー

Oracle Database Vaultレポートを実行するには、DV_OWNER、DV_ADMINまたはDV_SECANALYSTのロールを持つアカウントを使用してログインする必要があります。これらのロールの詳細は、次の各項を参照してください。

- 「DV_OWNER Database Vault所有者ロール」

- 「DV_ADMIN Database Vault構成管理者ロール」

- 「DV_SECANALYST Database Vaultセキュリティ分析者ロール」

Oracle Database Vaultレポートの実行方法

Oracle Database Vaultレポートを実行するには、次のようにします。

1. DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールを付与されているユーザーとしてDatabase Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。

2. 「Database Vaultレポート」または「一般セキュリティ・レポート」を選択します。
これらのレポート・カテゴリの詳細は、次の各項を参照してください。

- 「Oracle Database Vaultレポートの生成」

- 「一般セキュリティ・レポートの生成」

3. レポートを選択し、「レポートの実行」をクリックしてレポートを実行します。
多くのレポートは、入力パラメータを指定せずに実行できます。たとえば、「AUDIT権限」レポートを選択し、「レポートの実行」をクリックすると、レポート結果がすぐに表示されます。しかし、一部の使用可能なレポートには、結果を表示するために1つ以上の入力パラメータが必要です。

「レポート結果」ページには、列ヘッダーがレポートの上部に表示された表形式でレポートの内容が表示されます。ページには、レポート・タイトルおよびレポートが実行された日時も表示されます。「レポート・メニューに戻る」をクリックして「レポート」ページに戻ると、必要に応じて別のレポートを選択して実行できます。

一部のレポートは、実行する前に少なくとも1つの入力パラメータを指定する必要があります。たとえば、「オブジェクトの依存性レポート」を選択して「レポートの実行」をクリックすると、レポート・パラメータ・ページが表示されます。「所有者」ボックスを使用すると、オブジェクトを所有するデータベース・アカウントを選択できます。「オブジェクト名」フィールドでは、オブジェクトの名前を指定します。デフォルトですべてのオブジェクト名になるパーセント記号(%)などのワイルドカード文字を使用できます。「結果セット・サイズ」パラメータは、表示される結果の最大行数を決定します。すべてのレコードを表示する場合、「すべて」を選択します。このページで入力するパラメータは、レポート結果を生成するSQL問合せに直接渡されます。「レポートの実行」をクリックすると、指定されたパラメータに基づいたレポート結果が表示されます。

Oracle Database Vaultレポートの生成

Oracle Database Vaultレポートを生成するには、「Database Vaultレポート」タブをクリックした後、次のレポートのカテゴリから選択します。

- Oracle Database Vault構成の問題のレポート

- Oracle Database Vaultの監査レポート

Oracle Database Vault構成の問題のレポート

構成の問題のレポートには、次のものがあります。

- 「コマンド・ルール構成の問題」レポート

- 「ファクタ構成の問題」レポート

- 「アイデンティティのないファクタ」レポート

- 「アイデンティティ構成の問題」レポート

- 「レルム認可構成の問題」レポート

- 「ルール・セット構成の問題」レポート

- 「セキュア・アプリケーション構成の問題」レポート

「コマンド・ルール構成の問題」レポート

「コマンド・ルール構成の問題」レポートは、次の構成の問題が存在するコマンド・ルールを示します。

- コマンド・ルールのルール・セットが無効である。

- コマンド・ルールのルール・セットが不完全である。

- コマンド・ルールのオブジェクト所有者が存在しない。この状況は、オブジェクトのユーザー・アカウントが削除された場合に発生する可能性があります。

「ファクタ構成の問題」レポート

「ファクタ構成の問題」レポートは、次の構成の問題が存在するOracle Database Vaultファクタを示します。

- ファクタ割当てのルール・セットが無効である。

- ファクタ割当てのルール・セットが不完全である。

- ファクタの監査オプションが無効である。

- ファクタ取得メソッドまたは定数が存在しない。

- サブファクタ(子ファクタ)がファクタ・アイデンティティにリンクされていない。

- サブファクタ(子ファクタ)がラベル・ファクタにリンクされていない。

- ファクタに対してOracle Label Securityポリシーが存在しない。

「アイデンティティのないファクタ」レポート

「アイデンティティのないファクタ」レポートは、アクセス制御の構成にアイデンティティが定義されていないOracle Database Vaultファクタを示します。Background_Job_Idなどの一部のファクタの場合、これは本当の問題ではない可能性がありますが、アクセス制御の構成が完全かどうか、すべてのファクタの構成を考慮に入れているかどうかの判断にこのレポートを役立てることができます。

「アイデンティティ構成の問題」レポート

「アイデンティティ構成の問題」レポートは、次の構成の問題が存在するOracle Database Vaultファクタ・アイデンティティを示します。

- ラベル・アイデンティティ(このアイデンティティのOracle Label Securityラベル)が削除されていて、すでに存在しない。

- アイデンティティに対してマップが存在しない。

「レルム認可構成の問題」レポート

「レルム認可構成の問題」レポートは、次の構成の問題が存在するOracle Database Vaultレルムの情報を示します。

- レルム認可のルール・セットが無効である。

- レルム認可に対して権限受領者が存在しない。

- レルム・セキュア・オブジェクトに対して所有者が存在しない。この状況は、ユーザー・アカウントが削除された場合に発生する可能性があります。

しかし、ほとんどの場合、このような問題はレルムの構成時および検証時に発見されます。

「ルール・セット構成の問題」レポート

「ルール・セット構成の問題」レポートは、ルール・セットにルールが定義されていないか、有効なルールがない場合に、Oracle Database Vaultルール・セットの情報を示します。

「セキュア・アプリケーション構成の問題」レポート

「セキュア・アプリケーション構成の問題」レポートは、次の構成の問題が存在するDatabase Vaultセキュア・アプリケーション・ロールの情報を示します。

- データベース・ロールが存在しない。この状況は、データベース・ロールが削除された場合に発生する可能性があります。

- ロールのルール・セットが無効である。

- ロールのルール・セットが不完全である。

Oracle Database Vaultの監査レポート

監査レポートには、次のものがあります。

- 「レルムの監査」レポート

- 「コマンド・ルールの監査」レポート

- 「ファクタの監査」レポート

- 「Label Security統合の監査」レポート

- 「コアDatabase Vault監査証跡」レポート

- 「セキュア・アプリケーション・ロールの監査」レポート

「レルムの監査」レポート

「レルムの監査」レポートは、レルム保護およびレルム認可の操作によって生成される監査レコードを示します。レルム認可はルール・セットを使用して管理し、そのルール・セットの処理結果を監査できます。レルム違反は、レルムで保護されているオブジェクトに対してアクションを実行するデータベース・アカウントに、そのアクションを実行する権限がない場合に発生します。レルムに関連付けられているルール・セットを指定しない場合でも、Oracle Database Vaultによって違反が監査されます。レルムを構成する際に、レルム違反のインスタンスを監査するように設定できます。この情報を使用して、セキュリティ違反の試行を調査できます。

「コマンド・ルールの監査」レポート

「コマンド・ルールの監査」レポートは、コマンド・ルール処理の操作によって生成される監査レコードを示します。コマンド・ルールを構成する際に、ルール・セットの処理結果を監査するように設定できます。

「ファクタの監査」レポート

「ファクタの監査」レポートは、評価できなかった、または様々な条件下で監査レコードを作成するように設定されたファクタを示します。また、ファクタの設定に失敗した試みも示します。

ファクタ・アイデンティティを解決できない、または割り当てることができない(データが見つからない、行が多すぎるなど)インスタンスを監査できます。ファクタには、実行時にアイデンティティをファクタに割り当てるルール・セットを関連付けることができます。ファクタを構成する際に、ルール・セットの処理結果を監査するように設定できます。

「Label Security統合の監査」レポート

「Label Security統合の監査」レポートは、セッション初期化の操作およびLabel Securityセッション・ラベル割当ての操作によって生成される監査レコードを示します。Label Securityセッションの初期化に失敗したインスタンス、およびセッションで最大セッション・ラベルを超えるラベルの設定がLabel Securityコンポーネントによって妨げられているインスタンスを監査できます。

「コアDatabase Vault監査証跡」レポート

「コアDatabase Vault監査証跡」レポートは、コア・アクセス・セキュリティ・セッション初期化の操作によって生成される監査レコードを示します。アクセス・セキュリティ・セッションの初期化に失敗したインスタンスを監査できます。次のデータが表示されます。

違反試行

インスタンス番号

タイムスタンプ

オブジェクト名

リターン・コード

ルール・セット

アカウント

コマンド

ユーザー・ホスト

「セキュア・アプリケーション・ロールの監査」レポート

「セキュア・アプリケーション・ロールの監査」レポートは、Oracle Database Vaultに対してセキュア・アプリケーション・ロールを有効にする操作によって生成される監査レコードを示します。

一般セキュリティ・レポートの生成

一般セキュリティ・レポートを生成するには、「一般セキュリティ・レポート」タブをクリックした後、次のレポートから選択します。

- オブジェクト権限レポート

- データベース・アカウントのシステム権限レポート

- 機密オブジェクト・レポート

- 権限管理 - サマリー・レポート

- 強力なデータベース・アカウントおよびロールのレポート

- 初期化パラメータおよびプロファイルのレポート

- データベース・アカウント・パスワードのレポート

- セキュリティ監査レポート: コア・データベース監査レポート

- その他のセキュリティ脆弱性レポート

オブジェクト権限レポート

オブジェクト権限レポートには、次のものがあります。

- 「PUBLICでのオブジェクト・アクセス」レポート

- 「PUBLIC以外でのオブジェクト・アクセス」レポート

- 「直接オブジェクト権限」レポート

- 「オブジェクトの依存性」レポート

「PUBLICでのオブジェクト・アクセス」レポート

「PUBLICでのオブジェクト・アクセス」レポートには、PUBLICにアクセス権が付与されているすべてのオブジェクトがリストされます。レポート・パラメータ・ページで指定されたデータベース・アカウントについて、PUBLICへのオブジェクト付与によるすべてのオブジェクト・アクセスの詳細を示します。レポート・パラメータ・ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタ処理できます。

注意:
このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。

「PUBLIC以外でのオブジェクト・アクセス」レポート

「PUBLIC以外でのオブジェクト・アクセス」レポートは、「レポート・パラメータ」ページで指定されたデータベース・アカウントについて、直接またはロールを介したアカウントへの付与によるオブジェクト・アクセスをすべて(ただし、PUBLICへの付与を除く)示します。「レポート・パラメータ」ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタにかけることができます。

注意:
このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。

「直接オブジェクト権限」レポート

「直接オブジェクト権限」レポートは、非システム・データベース・アカウントに付与された直接オブジェクト権限を示します。次のデータベース・アカウントは、このレポートの対象外です。

CTXSYS

LBACSYS

SYS

WMSYS

DMSYS

MDSYS

SYSMAN

DVSYS

ORDSYS

SYSTEM

EXFSYS

PUBLIC

WKSYS

「オブジェクトの依存性」レポート

「オブジェクトの依存性」レポートは、データベース・リンクを使用しないで作成されたビューの依存性を含む、プロシージャ、パッケージ、ファンクション、パッケージ本体およびトリガー間のデータベース内の依存性をすべて示します。最低限の権限の原則を使用するセキュリティ・ポリシーを既存のアプリケーション用に開発するために役立ちます。データベース・オブジェクト(UTL_FILEパッケージなど)がPUBLICに付与された権限または他のなんらかのグローバル・ロールを保持する場合、「オブジェクトの依存性」レポートを使用して、そのオブジェクトに依存するアカウントを割り出し、アカウントでオブジェクトをどのように使用しているかを判断できます。レポートを実行するには、依存性を調べるデータベース・アカウントと、そのアカウントが依存するオブジェクトを、レポート・パラメータ・ページに入力します。

「レポート結果」ページには、依存オブジェクトとオブジェクト・タイプの他に、ソース・オブジェクトの名前とタイプが表示されます。このレポートには、機密オブジェクトが使用されている可能性がある場所が示されます。いくつかのアカウントを調べることで、制限付きロールの開発に役立つパターンを発見できることがあります。このような制限付きロールは、広く使用される機密オブジェクトのPUBLICの権限と置換できます。

データベース・アカウントのシステム権限レポート

データベース・アカウントのシステム権限レポートには、次のものがあります。

- 「データベース・アカウントごとの直接システム権限」レポート

- 「データベース・アカウントごとの直接および間接システム権限」レポート

- 「データベース・アカウントごとの階層システム権限」レポート

- 「データベース・アカウントのANYシステム権限」レポート

- 「権限ごとのシステム権限」レポート

「データベース・アカウントごとの直接システム権限」レポート

「データベース・アカウントごとの直接システム権限」レポートは、レポート・パラメータ・ページで選択されたデータベース・アカウントに直接付与されているシステム権限をすべて示します。また、権限がWITH ADMINオプションを使用して付与されているかどうかも示します。

「データベース・アカウントごとの直接および間接システム権限」レポート

「データベース・アカウントごとの直接および間接システム権限」レポートは、「レポート・パラメータ」ページで選択されたデータベース・アカウントに対するシステム権限をすべて示します。システム権限は、直接またはWITH ADMINステータスのデータベース・ロールを介して付与されています。

「データベース・アカウントごとの階層システム権限」レポート

「データベース・アカウントごとの階層システム権限」レポートは、「レポート・パラメータ」ページで指定されたデータベース・アカウントに付与されているロールベースのシステム権限および直接システム権限の階層分類を示します。

「データベース・アカウントのANYシステム権限」レポート

「データベース・アカウントのANYシステム権限」レポートは、指定されたデータベース・アカウントまたはロールに付与されているANYシステム権限をすべて示します。ANYシステム権限は、とても強力であるため、アカウントおよびロールに慎重に割り当てる必要があります。

「権限ごとのシステム権限」レポート

「権限ごとのシステム権限」レポートは、「レポート・パラメータ」ページで選択されたシステム権限を持つデータベース・アカウントおよびロールを示します。

機密オブジェクト・レポート

機密オブジェクト・レポートには、次のものがあります。

- 「強力なSYSパッケージに対するEXECUTE権限」レポート

- 「機密オブジェクトへのアクセス」レポート

- 「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート

- 「SYSDBA/SYSOPER権限を持つアカウント」レポート

「強力なSYSパッケージに対するEXECUTE権限」レポート

「強力なSYSパッケージに対するEXECUTE権限」レポートは、オペレーティング・システム・リソースや他の強力なシステム・パッケージへのアクセスに使用できるシステム・パッケージに対してEXECUTE権限を持つデータベース・アカウントおよびロールを示します。次のシステムPL/SQLパッケージが対象となります。

DBMS_ALERT

DBMS_RANDOM

DBMS_BACKUP_RESTORE

DBMS_REPAIR

DBMS_CAPTURE_ADM

DBMS_REPCAT

DBMS_DDL

DBMS_REPCAT_ADMIN

DBMS_DISTRIBUTED_TRUST_ADMIN

DBMS_RESOURCE_MANAGER

DBMS_FGA

DBMS_RESOURCE_MANAGER_PRIVS

DBMS_JOB

DBMS_RLS

DBMS_LDAP

DBMS_SESSION

DBMS_LOB

DEBUG_EXTPROC

DBMS_LOGMNR

UTL_FILE

DBMS_LOGMNR_D

UTL_HTTP

DBMS_OBFUSCATION_TOOLKIT

UTL_SMTP

DBMS_ORACLE_TRACE_AGENT

UTL_TCP

DBMS_PIPE

「機密オブジェクトへのアクセス」レポート

「機密オブジェクトへのアクセス」レポートは、機密情報を含むシステム表またはビューに対してオブジェクト権限を持つデータベース・アカウントおよびロールを示します。次のシステム表およびビューが含まれます。

ALL_SOURCE

PROFILE$

ALL_USERS

PROXY_ROLE_DATA$

APPROLE$

PROXY_ROLE_INFO$

AUD$

ROLE_ROLE_PRIVS

AUDIT_TRAIL$

SOURCE$

DBA_ROLE_PRIVS

STATS$SQLTEXT

DBA_ROLES

STATS$SQL_SUMMARY

DBA_TAB_PRIVS

STREAMS$_PRIVILEGED_USER

DBMS_BACKUP_RESTORE

SYSTEM_PRIVILEGE_MAP

DEFROLE$

TABLE_PRIVILEGE_MAP

FGA_LOG$

TRIGGER$

LINK$

USER$

OBJ$

USER_HISTORY$

OBJAUTH$

USER_TAB_PRIVS

OBJPRIV$

SYSTEM_PRIVILEGE_MAP

「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート

「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポートは、SYSが所有するパッケージに対して実行権限を持つデータベース・アカウントおよびロールをすべて示します。このレポートを使用すると、PUBLIC、あるいはその他のアカウントおよびロールから取り消すことができる権限を特定できます。これにより、最低限の権限の原則を使用するセキュリティ・ポリシーの全体的な実装の一部としての脆弱性が軽減されます。

「SYSDBA/SYSOPER権限を持つアカウント」レポート

「SYSDBA/SYSOPER権限を持つアカウント」レポートは、SYS権限が付与された接続の権限を持つデータベース・アカウントを示します。また、そのアカウントが外部パスワードを使用するかどうかも示します。ただし、このレポートには、SYSDBAになり得るオペレーティング・システム・ユーザーは含まれないことに注意してください。

権限管理 - サマリー・レポート

「権限管理 - サマリー・レポート」には、次のものがあります。

- 「権限受領者ごとの権限の配布」レポート

- 「権限受領者、所有者ごとの権限の配布」レポート

- 「権限受領者、所有者、権限ごとの権限の配布」レポート

関連項目:
これらのレポートに表示された件数の基になっている値を調べるには、「DVSYS.DBA_DV_PUB_PRIVSビュー」

「権限受領者ごとの権限の配布」レポート

「権限受領者ごとの権限の配布」レポートは、データベース・アカウントまたはロールに付与された権限の総数を示します。このレポートを使用すると、強力な権限を持つアカウントおよびロールを認識できます。

「権限受領者、所有者ごとの権限の配布」レポート

「権限受領者、所有者ごとの権限の配布」レポートは、オブジェクトの権限受領者および所有者に基づいて権限の総数を示します。このレポートを使用すると、強力な権限を持つアカウントまたはロールを認識できます。このレポートは、潜在的な侵入者または内部関係者によって、攻撃または侵害するためのアカウントとして強力な権限を持つアカウントが狙われていると疑われる場合に使用できます。たとえば、侵入者がパスワードを推測することでアカウントを侵害できる場合、侵入者はすでに保持している権限よりも多くの権限を入手できます。

「権限受領者、所有者、権限ごとの権限の配布」レポート

「権限受領者、所有者、権限ごとの権限の配布」レポートは、オブジェクトの権限、権限受領者および所有者に基づいて権限の総数を示します。このレポートを使用すると、強力な権限を持つアカウントまたはロールを認識できます。

強力なデータベース・アカウントおよびロールのレポート

強力なデータベース・アカウントおよびロールのレポートには、次のものがあります。

- 「WITH ADMIN権限の付与」レポート

- 「DBAロールを持つアカウント」レポート

- 「セキュリティ・ポリシー除外」レポート

- 「BECOME USER」レポート

- ALTER SYSTEMまたはALTER SESSIONレポート

- 「パスワード履歴へのアクセス」レポート

- WITH GRANT権限レポート

- 「指定されたロールを持つロールとアカウント」レポート

- 「カタログ・ロールを持つデータベース・アカウント」レポート

- 「AUDIT権限」レポート

- 「OSセキュリティ脆弱性に関する権限」レポート

関連項目:

- 「DVSYS.DBA_DV_PUB_PRIVSビュー」

- 「DVSYS.DBA_DV_USER_PRIVSビュー」

- 「DVSYS.DBA_DV_USER_PRIVS_ALLビュー」

「WITH ADMIN権限の付与」レポート

「WITH ADMIN権限の付与」レポートは、WITH ADMIN句によって権限を付与されているデータベース・アカウントおよびロールをすべて示します。この権限は、別のアカウントに必要以上のシステム権限を付与するために悪用される可能性があります。

「DBAロールを持つアカウント」レポート

「DBAロールを持つアカウント」レポートは、DBAロールが付与されているデータベース・アカウントをすべて示します。DBAロールは、不正に利用される可能性のある特権ロールです。時間を節約し、アカウントに本当に必要な最小権限を判断しないで済むように、このロールがデータベース・アカウントに付与されることはよくあります。このレポートは、最低限の権限の原則を使用するポリシーを、既存のデータベースに適用する際に役立ちます。

どのユーザーに特権ロールを付与するかを決定するためのガイドラインは、付録D「Oracle Database Vaultセキュリティ・ガイドライン」を参照してください。

「セキュリティ・ポリシー除外」レポート

「セキュリティ・ポリシー除外」レポートは、EXEMPT ACCESS POLICYシステム権限が付与されている(Oracle Database Vault以外の)データベース・アカウントおよびロールを示します。この権限を持つアカウントは、すべてのVirtual Private Database(VPD)のポリシー・フィルタと、Oracle Virtual Private Databaseを間接的に使用するOracle Label Securityポリシーを無視できます。この権限は、Oracle Virtual Private DatabaseまたはOracle Label Securityによって保護される表の機密情報にアクセスするターゲットを示すため、どうしても必要な場合にかぎり付与すべき強力なシステム権限です。付録A「Oracle Database Vaultの監査」で説明するように監査ポリシーを使用すると、この権限を監査できます。

「BECOME USER」レポート

「BECOME USER」レポートは、BECOME USERシステム権限を持つデータベース・アカウントおよびロールをすべて示します。これは、非常に強力なシステム権限で、Oracle Data Pumpで使用するIMP_FULL_DATABASEロールおよびEXP_FULL_DATABASEロールを有効にします。この権限を持つアカウントは、機密情報を入手したり、アプリケーションを侵害するために悪用されたりする可能性があります。

ALTER SYSTEMまたはALTER SESSIONレポート

ALTER SYSTEMまたはALTER SESSIONレポートは、ALTER SYSTEMまたはALTER SESSION権限を持つデータベース・アカウントおよびロールをすべて示します。これらの権限は、本当に必要なアカウントおよびロール(SYSアカウントやDV_ADMINロールなど)に限定することをお薦めします。ALTER SYSTEM文を使用すると、Oracle Database Vaultのセキュリティ強化サービスの一部として推奨値に設定されているセキュリティ関連のデータベース初期化パラメータを変更できます。ALTER SYSTEM文とALTER SESSION文の両方を使用すると、機密構成情報が含まれる可能性があるデータベース・トレース・ファイルをオペレーティング・システムにダンプできます。

ALTER SYSTEMおよびALTER SESSION権限の使用に関するガイドラインは、「ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項」を参照してください。

「パスワード履歴へのアクセス」レポート

「パスワード履歴へのアクセス」レポートは、各アカウントで過去に使用されたハッシュ済パスワードを格納するUSER_HISTORY$表にアクセスできるデータベース・アカウントを示します。この表へのアクセスにより、データベースをハッキングする何者かがアカウントの既存のパスワードを簡単に推測できるようになります。

WITH GRANT権限レポート

WITH GRANT権限レポートは、WITH GRANT句によって権限を付与されているデータベース・アカウントをすべて示します。WITH GRANTは、オブジェクトレベルの権限に使用されることに注意してください。WITH GRANTオプションを使用して権限が付与されているアカウントは、別のアカウントにオブジェクト権限を付与するために悪用される可能性があります。

「指定されたロールを持つロールとアカウント」レポート

このレポートは、ロールが付与されているデータベース・アカウントおよびロールを示します。このレポートは、依存性の分析のために用意されています。

「カタログ・ロールを持つデータベース・アカウント」レポート

「カタログ・ロールを持つデータベース・アカウント」レポートは、次のロールが付与されているデータベース・アカウントおよびロールをすべて示します。

- DELETE_CATALOG_ROLE

- EXECUTE_CATALOG_ROLE

- RECOVERY_CATALOG_OWNER

- SELECT_CATALOG_ROLE

これらのカタログベースのロールは、非常に多くの強力な権限を保持します。これらを使用するDBAロールと同様に、慎重に付与する必要があります。

「AUDIT権限」レポート

「AUDIT権限」レポートは、AUDIT ANYまたはAUDIT SYSTEM権限を持つデータベース・アカウントおよびロールをすべて示します。この権限を使用すると監査を無効にできるため、システムを侵害した侵入者の監査証跡レコードを削除するために使用される可能性があります。この権限を持つアカウントは、侵入者のターゲットになる恐れがあります。

「OSセキュリティ脆弱性に関する権限」レポート

「OSセキュリティ脆弱性に関する権限」レポートは、機密情報や他の保護情報をオペレーティング・システムにエクスポートするために必要なシステム権限を持つデータベース・アカウントおよびロールを示します。

初期化パラメータおよびプロファイルのレポート

初期化パラメータおよびプロファイルのレポートには、次のものがあります。

- 「セキュリティ関連のデータベース・パラメータ」レポート

- 「リソース・プロファイル」レポート

- 「システム・リソース制限」レポート

「セキュリティ関連のデータベース・パラメータ」レポート

「セキュリティ関連のデータベース・パラメータ」レポートは、データベース・パラメータの設定が正しくない場合に、セキュリティの脆弱性の原因となる可能性があるこれらのパラメータを示します。このレポートを使用すると、推奨される設定とデータベース・パラメータ値の現在の状態を比較できます。

「リソース・プロファイル」レポート

「リソース・プロファイル」レポートは、CPU_PER_SESSIONやIDLE_TIMEなど、際限なくリソースの消費を許す可能性があるリソース・プロファイルのビューを示します。リソースの潜在的使用の抑制が必要なプロファイルは、見直す必要があります。

「システム・リソース制限」レポート

「システム・リソース制限」レポートを使用すると、データベースごとに現在のシステム・リソースの使用率を認識できます。このレポートは、既存のアプリケーションの負荷の下で、これらのリソースのいずれかが限界に達しつつあるかどうかを判断するために役立ちます。短期間で大幅な増加を示すリソースは、DoS攻撃を示している可能性があります。リソースの上限を下げて、この先の状況を回避することが必要な場合があります。

データベース・アカウント・パスワードのレポート

データベース・アカウント・パスワードのレポートには、次のものがあります。

- 「データベース・アカウントのデフォルト・パスワード」レポート

- 「データベース・アカウントのステータス」レポート

「データベース・アカウントのデフォルト・パスワード」レポート

「データベース・アカウントのデフォルト・パスワード」レポートは、デフォルト・パスワードを持つデータベース・アカウントを示します。デフォルト・パスワードは、Oracle Databaseのインストール時に指定されます。

データベースを保護するために、このレポートに含まれるアカウントのパスワードをデフォルト以外の複雑なパスワードに変更する必要があります。

「データベース・アカウントのステータス」レポート

「データベース・アカウントのステータス」レポートを使用すると、既存のデータベース・アカウントを簡単に確認できます。このレポートにはアカウントごとにアカウント・ステータスが示されるため、ロックする必要があるアカウントを特定するために役立ちます。ロック日および有効日は、パスワード・エイジングの結果としてアカウントがロックされたかどうかの判断に役立つ情報となります。特殊なパスワードおよびリソース・セキュア・プロファイルが使用されている場合は、それらを使用していないアカウントを特定できます。体系立てて定義されたデフォルト表領域を使用していないアカウントも特定でき、アカウントの一時表領域を割り出すことができます。また、このレポートでは、外部パスワードを使用するアカウントも識別されます。

セキュリティ監査レポート: コア・データベース監査レポート

コア・データベース監査レポートは、付録A「Oracle Database Vaultの監査」で定義されている監査ポリシーに対する監査レコードの他に、ユーザーが定義した監査文に対して生成された監査レコードを返します。

このレポートは、データベース初期化パラメータAUDIT_TRAILがDBに設定されている場合に取得される監査レコードのみを示します。AUDIT_TRAILパラメータの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

その他のセキュリティ脆弱性レポート

その他のセキュリティ脆弱性レポートには、次のものがあります。

- 「Javaポリシーの付与」レポート

- 「OSディレクトリ・オブジェクト」レポート

- 「動的SQLに依存するオブジェクト」レポート

- アンラップされたPL/SQLパッケージ本体レポート

- 「ユーザーまたはパスワード表」レポート

- 「表領域割当て制限」レポート

- 「所有者でないオブジェクトのトリガー」レポート

「Javaポリシーの付与」レポート

「Javaポリシーの付与」レポートは、データベースに格納されるJavaポリシーの権限を示します。最低限の権限の原則に対する違反の検出に役立ちます。必ずしも権限を必要としないPUBLICおよびその他のアカウントやロールに対するGRANT、READまたはWRITE権限を見つけます。データベースでJavaが必要ない場合は、PUBLICのJavaロード権限を無効にすることをお薦めします。

注意:
「Javaポリシーの付与」レポートを実行するには、Oracle JVM(Oracle Database Vaultに用意されたJava仮想マシン・オプション)をインストールする必要があります。

「OSディレクトリ・オブジェクト」レポート

「OSディレクトリ・オブジェクト」レポートは、PUBLICで使用できるか否かに関係なく、データベースに存在するすべてのディレクトリ・オブジェクトとその権限を示します。ディレクトリ・オブジェクトは保護されたオペレーティング・システム(OS)に対してのみ存在し、データベース内でのディレクトリ・オブジェクトへのアクセスは保護する必要があります。リモート・データベース・セッションでデバイス上のすべてのファイルが参照できるようになるため、オペレーティング・システムのルート・ディレクトリ(/など)を任意のストレージ・デバイス上で使用しないでください。

「動的SQLに依存するオブジェクト」レポート

「動的SQLに依存するオブジェクト」レポートは、動的SQLを利用するオブジェクトを示します。パラメータ・チェックまたはバインド変数が使用されない場合、潜在的な侵入者がこのチャネルを使用する可能性が大きくなります。このレポートにより、動的SQLを使用しているユーザーが明らかになり、問題を探す範囲を狭めることができます。このようなオブジェクトは、SQLインジェクション攻撃のターゲットとなる可能性があり、この種の攻撃を回避するために保護する必要があります。動的SQLを使用するオブジェクトを特定したら、次のようにします。

- そのオブジェクトに対してクライアント・アプリケーション(Webアプリケーションなど)が保持する権限を確認します。

- そのオブジェクト用にPUBLICまたはより広範なアカウント・ベースに付与されたアクセス権を確認します。

- パラメータを確認します。

- 可能な場合は、バインド変数を使用します。

アンラップされたPL/SQLパッケージ本体レポート

アンラップされたPL/SQLパッケージ本体レポートは、ラップされないPL/SQLパッケージ・プロシージャを示します。データ・ディクショナリまたはデータ・ディクショナリ・ビューで読み取ることができない程度にコードを不明瞭化するラップ・ユーティリティが用意されています。このユーティリティを使用すると、データを操作するソース・コードの読取りを不可能にすることで、侵入者がデータ保護を回避する能力を削ぐことができます。

「ユーザーまたはパスワード表」レポート

「ユーザーまたはパスワード表」レポートを使用すると、ユーザー名およびパスワードの文字列を格納する、データベースのアプリケーション表を特定できます。これらの表を調査して、情報が暗号化されているかどうかを判断する必要があります。(%USER%NAME%や%PASSWORD%などの列名を検索してください。)暗号化されていない場合は、これらの表を使用するコードおよびアプリケーションを変更して、データベース・セッションから見えないように保護してください。

「表領域割当て制限」レポート

「表領域割当て制限」レポートは、1つ以上の表領域に対して割当て制限があるデータベース・アカウントをすべて示します。これらの表領域は、DoS攻撃の潜在的なターゲットになり得ます。

「所有者でないオブジェクトのトリガー」レポート

「所有者でないオブジェクトのトリガー」レポートは、作用対象のデータベース・オブジェクトを所有するアカウントとは異なるデータベース・アカウントが所有するトリガーを示します。トリガーが信頼できるデータベース・アプリケーションに属していない場合、Oracle Label SecurityやVirtual Private Database(VPD)によって保護されている表などから機密データが盗まれ、保護されていない表に挿入されて、後で表示やエクスポートが行われる可能性があります。

A Oracle Database Vaultの監査

この付録の内容は次のとおりです。

- Oracle Database Vault固有の監査イベント

- Oracle Database Vault監査証跡のアーカイブおよびパージ

- Oracle Database Vault用に作成されるOracle Database監査設定

Oracle Database Vault固有の監査イベント

この項の内容は次のとおりです。

- Oracle Database Vaultの監査イベント

- Oracle Database Vault監査証跡の書式

Oracle Database Vaultの監査イベント

Oracle Database Vaultでは、監査イベントを使用して次のアクティビティを追跡します。

- レルムの監査。レルムの作成時に設定した監査オプションに基づいて、正常終了したアクションおよび失敗したアクションの両方を監査できます。ただし、スキーマ所有者によって実行されたアクションは監査できません。

- ルール・セット監査。ルール・セットの処理結果を監査します。正常終了した処理および失敗した処理の両方を監査できます。レルム認可は、ルール・セットを使用して管理できます。ルール・セットの処理結果を監査できます。ファクタ割当ておよびセキュア・アプリケーション・ロール監査は、ルール・セットを使用して管理できます。

- ファクタの監査。正常終了したファクタ処理および失敗したファクタ処理の両方を監査できます。失敗したファクタ処理の場合、「取得エラー」、「取得がNULL」、「検証エラー」、「検証がFalse」、「信頼レベルがNULL」、「信頼レベルがゼロ未満」のすべてまたはいずれかについて監査できます。

- Oracle Label Securityセッション初期化の失敗。Oracle Label Securityセッションの初期化に失敗したインスタンスを監査します。

- Oracle Label Securityセッション・ラベル・アップグレード試行の失敗。Oracle Label Securityコンポーネントによって最大セッション・ラベルを超えるラベルの設定が妨げられているセッションのインスタンスを監査します。

関連項目:

- 「監査オプション」(ファクタの場合)

- 「監査オプション」(ルール・セットの場合)

- 「レルム認可の定義」

- 監査レポートの表示の詳細は、第18章「Oracle Database Vaultレポート」を参照してください。

Oracle Database Vault監査証跡の書式

Oracle Database Vault監査イベントのレコードは、DVSYSスキーマの一部であるAUDIT_TRAIL$表に格納されます。これらの監査レコードはOracle Database Vault監査証跡の一部ではないため、データベースで監査がどのように有効になっても、Oracle Database VaultがDVSYS.AUDIT_TRAIL$表から監査データをどのように収集するかには影響しません。実際には、Oracle Databaseで監査が無効になっている場合でも、Oracle Database Vaultの監査機能はDVSYS.AUDIT_TRAIL$表への書込みを続けます。DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールが付与されているユーザーは、DVYS.AUDIT_TRAIL$表に直接問い合せることができます。

DV_OWNER、DV_ADMIN、DV_SECANALYSTまたはDV_MONITORロールが付与されているユーザーは、DVYS.AUDIT_TRAIL$表に直接問い合せることができます。

注意:
Oracle Audit Vault and Database Firewallは、Oracle Database Vaultの監査データを収集できます。詳細は、『Oracle Audit Vault and Database Firewall管理者ガイド』を参照してください。

表A-1では、監査証跡の書式を説明しています。DVSYS.AUDIT_TRAIL$表を使用するカスタム・レポートの作成を予定している場合、これらの書式を理解する必要があります。

表A-1 Oracle Database Vault監査証跡の書式

列

データ型

NULL

説明

ID#

NUMBER

NOT NULL

監査レコードごとの数値識別子。

OS_USERNAME

VARCHAR2(255)

アクションが監査対象となったユーザーのオペレーティング・システムのログイン・ユーザー名。

USERNAME

VARCHAR2(30)

アクションが監査対象となったデータベース・ユーザーの名前。

USERHOST

VARCHAR2(128)

クライアント・コンピュータ名。

TERMINAL

VARCHAR2(255)

ユーザーの端末に対する識別子。

TIMESTAMP

DATE

監査証跡エントリの作成日時(ローカル・データベース・セッションのタイムゾーン)。

OWNER

VARCHAR2(30)

アクションの影響を受けるオブジェクトの作成者、常時DVSYS(DVSYSでオブジェクトが作成されるため)

OBJ_NAME

VARCHAR2(128)

アクションの影響を受けるオブジェクトの名前。想定値は次のとおりです。

- ROLE$

- REALM$

- CODE$

- FACTOR$

ACTION

NUMBER

NOT NULL

数値のアクション・タイプ・コード。アクション・タイプに対応する名前は、ACTION_NAME列に示されます。ACTIONおよびACTION_NAMEの想定値は次のとおりです。

- 10000: ファクタ評価の監査

- 10001: ファクタ割当ての監査

- 10002: ファクタ式の監査

- 10003: レルム違反の監査

- 10004: レルム認可の監査

- 10005: コマンド認可の監査

- 10006: セキュア・ロールの監査

- 10007: アクセス制御セッション初期化の監査

- 10008: アクセス制御コマンド認可の監査

- 10009: Oracle Label Securityセッション初期化の監査

- 10010: Oracle Label Securityラベル・アップグレード試行の監査

ACTION_NAME

VARCHAR2(128)

ACTION列の数値コードに対応するアクション・タイプの名前

ACTION_OBJECT_ID

NUMBER

OBJ_NAMEに指定された表のレコードの一意の識別子

ACTION_OBJECT_NAME

VARCHAR2(128)

OBJ_NAMEに指定された表のレコードの一意の名前または固有のキー

ACTION_COMMAND

VARCHAR2(4000)

実行された結果、監査イベントがトリガーされたコマンド・プロシージャのSQLテキスト。

AUDIT_OPTION

VARCHAR2(4000)

結果として監査イベントがトリガーされたレコードに指定されたすべての監査オプションのラベル。たとえば、失敗またはNULLになったときに監査することになっているファクタ設定操作では、これら2つのオプションを指します。

RULE_SET_ID

NUMBER

実行された結果、監査イベントがトリガーされたルール・セットの一意の識別子。

RULE_SET_NAME

VARCHAR2(30)

実行された結果、監査イベントがトリガーされたルール・セットの一意の名前。

RULE_ID

NUMBER

未使用

RULE_NAME

VARCHAR2(30)

未使用

FACTOR_CONTEXT

VARCHAR2(4000)

監査イベントがトリガーされた時点での、現行セッションに対するすべてのファクタ識別子を含むXML文書。

COMMENT_TEXT

VARCHAR2(4000)

監査対象となった文の詳細を示す、監査証跡エントリについてのテキスト・コメント。

SESSIONID

NUMBER

NOT NULL

Oracleセッションごとの数値識別子。

ENTRYID

NUMBER

NOT NULL

ID#列の値と同じ。

STATEMENTID

NUMBER

NOT NULL

起動された結果、監査イベントが生成された文の数値識別子。ほとんどのOracle Database Vaultイベントの場合、このパラメータは空です。

RETURNCODE

NUMBER

NOT NULL

アクションによって生成されたOracleエラー・コード。起動された結果、監査イベントが生成された文またはプロシージャに対するエラー・コード。ほとんどのOracle Database Vaultイベントの場合、このパラメータは空です。

EXTENDED_TIMESTAMP

TIMESTAMP(6)WITH TIME ZONE

UTC(協定世界時)タイムゾーンの、監査証跡エントリの作成時のタイムスタンプ(エントリに対するユーザー・ログインのタイムスタンプ)。

PROXY_SESSIONID

NUMBER

エンタープライズ・ユーザーがプロキシ機構を介してログインした場合の、プロキシ・セッションのシリアル番号

GLOBAL_UID

VARCHAR2(32)

ユーザーがエンタープライズ・ユーザーとしてログインした場合の、ユーザーのグローバル・ユーザー識別子。

INSTANCE_NUMBER

NUMBER

INSTANCE_NUMBER初期化パラメータによって指定されるインスタンス番号

OS_PROCESS

VARCHAR2(16)

Oracleプロセスのオペレーティング・システム・プロセス識別子

CREATED_BY

VARCHAR2(30)

アクションが監査対象となったユーザーのデータベースのログイン・ユーザー名。

CREATE_DATE

DATE

SYSDATEの日付を基にした、アクションが発生した日付。

UPDATED_BY

VARCHAR2(30)

CREATED_BY列の値と同じ。

UPDATE_DATE

DATE

UPDATED_BY列の値と同じ。

Oracle Database Vault監査証跡のアーカイブおよびパージ

DVSYSが所有するDVSYS.AUDIT_TRAIL$システム表をダンプ・ファイルにエクスポートすることで、Oracle Database Vault監査証跡のアーカイブを作成できます。監査証跡は、大きくなりすぎないように定期的にアーカイブし、パージする必要があります。

Oracle Database Vault監査証跡をアーカイブし、パージするには、次のようにします。

1. エクスポート操作を実行するユーザーに適切な権限が付与されていることを確認してください。
詳細は、「Oracle Database Vault環境でのOracle Data Pumpの使用」を参照してください。

2. Oracle Database Vaultを無効にします。
「手順1: Oracle Database Vaultの無効化」を参照してください。

3. オペレーティング・システムのコマンド・プロンプトで、Oracle Database Vault監査証跡用のディレクトリを$ORACLE_BASE/admin/$DB_UNIQUE_NAME/dvauditなどに作成します。
このディレクトリを、Oracle Databaseのオペレーティング・システム監査証跡ディレクトリと同じ場所(デフォルトでは、$ORACLE_BASE/admin/$DB_UNIQUE_NAME/adumpディレクトリ)に置いてもかまいません。SQL*Plusでは、監査証跡ディレクトリの場所は次のようにチェックできます。

SHOW PARAMETER AUDIT_FILE_DEST

次のような出力が表示されます。

NAME                 TYPE     VALUE
-------------------  -------  ---------------------------------------
audit_file_dest      string   /opt/oracle/app/oracle/admin/orcl/adump

4. SQL*Plusで、Oracle Database Vault監査証跡の生成場所となるディレクトリ・オブジェクトを作成します。これを行うには、SYSまたはCREATE ANY DIRECTORY権限を持つ任意のユーザーとして接続します。
次に例を示します。

CREATE DIRECTORY dv_audit_dir AS '/opt/oracle/app/oracle/admin/orcl/dvaudit';

ディレクトリ・パスを一重引用符で囲みます。二重引用符は使用しないでください。

5. SQL*Plusで、ユーザーDVSYSに、ディレクトリ・オブジェクトに対する読取り/書込み権限を付与します。

次に例を示します。

GRANT READ, WRITE ON DIRECTORY dvaudit TO dvsys;

6. オペレーティング・システムのコマンド・プロンプトで次のようなコマンドを入力し、DVSYS.AUDIT_TRAIL$監査表を新しいダンプ・ファイルにエクスポートします。

EXPDP DVSYS
Enter password: password
DIRECTORY=dvaudit \
TABLES=DVSYS.AUDIT_TRAIL$ \
QUERY=DVSYS.AUDIT_TRAIL$:"WHERE timestamp < 2009-08-03:19:34:59"
DUMPFILE=dv_audit_031607.dmp

ここでは、次のようになります。

- DIRECTORY: 手順5で作成したディレクトリ・オブジェクトを入力します。EXPDPを実行するユーザー(この例ではDVSYS)に、このディレクトリ・オブジェクトの読取り/書込み権限が付与されていることを確認します。ディレクトリ・オブジェクトを作成したユーザーには、そのディレクトリ・オブジェクトの読取り/書込み権限が自動的に付与されています。

- TABLES: 監査証跡表の名前DVSYS.AUDIT_TRAIL$を入力します。

- QUERY: オプション。この設定を使用すると、監査表の内容の一部がダンプ・ファイルに書き込まれます。このケースでは、timestamp列の値が2009-08-03:19:34:59より小さい監査レコードです。

- DUMPFILE: 作成するダンプ・ファイルの名前を入力します。デフォルトの拡張子は.dmpですが、任意の拡張子を使用できます。指定するファイル名は一意であることを確認してください。

7. SQL*Plusで、Oracle Database Vault監査証跡表をパージします。これでアーカイブが完了します。
たとえば、timestamp列の値が2009-08-03:19:34:59より小さいすべての監査証跡レコードをアーカイブする場合は、次の文を入力します。

DELETE FROM DVSYS.AUDIT_TRAIL$ WHERE TIMESTAMP < 2009-08-03:19:34:59;

監査証跡を完全にパージして監査証跡表に割り当てられているエクステントを削除するには、次の文を入力します。

TRUNCATE TABLE DVSYS.AUDIT_TRAIL$;

8. SQL*Plusを終了します。

9. Oracle Database Vaultを再び有効にします。
「手順3: Oracle Database Vaultの有効化」を参照してください。

Oracle Database Vault用に作成されるOracle Database監査設定

Oracle Database Vaultをインストールすると、データベース内に複数のAUDIT設定が作成されます。ただし、これらの監査設定が行われるには、このデータベースで監査が有効になっている必要があります。監査が有効かどうかは、SHOW PARAMETERコマンドを使用して、AUDIT_TRAIL初期化パラメータの値を検索することで確認できます。デフォルトでは、Oracle Databaseでの監査は無効です。

AUDIT_TRAILパラメータがNONEに設定されている場合、監査は有効ではないので、AUDIT_TRAILを設定する必要があります。AUDIT_TRAILパラメータの設定の詳細は、『Oracle Databaseセキュリティ・ガイド』および『Oracle Databaseリファレンス』を参照してください。

表A-2に、Oracle Database Vaultによりデータベースに追加されるAUDITの設定を示します。

表A-2 Oracle Database VaultによりOracle Databaseに追加される監査ポリシーの設定

監査設定タイプ

監査対象文(特に断りのない場合はBY ACCESSかつ成功時または失敗時)

システム監査設定/システム権限の使用

ALTER ANY

CREATE ANY

DELETE ANY

DROP ANY

EXECUTE ANY (WHENEVER NOT SUCCESSFUL)

FORCE ANY

GRANT ANY

INSERT ANY

UPDATE ANY

システム監査設定/オブジェクト管理

ALTER DATABASE, PROFILE, ROLLBACK SEGMENT, SESSION, SYSTEM, TABLE, TABLESPACE, USER

CREATE CLUSTER, DATABASE LINK, INDEXTYPE, LIBRARY, OPERATOR, PUBLIC SYNONYM, PROCEDURE, PROFILE, ROLE, ROLLBACK SEGMENT, SEQUENCE, SESSION, SNAPSHOT, SYNONYM, TABLE, TABLESPACE, TRIGGER, TYPE, USER, VIEW

TRUNCATE

システム監査設定/割込みコマンド

ALTER SESSION

BECOME USER

CREATE SESSION

DEBUG CONNECT SESSION

RESTRICTED SESSION

システム監査設定/管理コマンド

ADMINISTER DATABASE TRIGGER

BACKUP ANY TABLE

EXEMPT ACCESS POLICY

MANAGE TABLESPACE

システム監査設定/監査コマンド

AUDIT ANY

AUDIT SYSTEM

システム監査設定/アクセス制御

GRANT ANY PRIVILEGE/ANY OBJECT PRIVILEGE/ROLE

GRANT DIRECTORY

GRANT SEQUENCE

GRANT TABLE

GRANT TYPE

DVSYS/DVFのユーザー監査設定

LBACSYSのユーザー監査設定

これらのアカウントの詳細は、表11-2「Oracle Database Vaultで使用されるデータベース・アカウント」を参照してください。

また、DVSYSスキーマおよびDVFスキーマの詳細は、次の項を参照してください。

- 「DVSYSスキーマ」

- 「DVFスキーマ」

ADMINISTER DATABASE TRIGGER

ALTER object

AUDIT SYSTEM

BECOME USER

CLUSTER

COMMENT

CONTEXT

CREATE object

DATABASE LINK

DEBUG

DIRECTORY

DROP object

EXECUTE LIBRARY (WHENEVER NOT SUCCESSFUL)

EXECUTE PROCEDURE (WHENEVER NOT SUCCESSFUL)

EXEMPT ACCESS POLICY

EXPORT FULL DATABASE

GRANT object

IMPORT FULL DATABASE

INDEX

MANAGE SCHEDULER

MANAGE TABLESPACE

MATERIALIZED VIEW(マテリアライズド・ビューへのアクセスと作成の両方を監査)

SELECT SEQUENCE (WHENEVER NOT SUCCESSFUL)

SELECT TABLE (WHENEVER NOT SUCCESSFUL)

DVFのオブジェクト監査設定

AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

COMMENT TABLE/VIEW

DELETE TABLE/VIEW

EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT SUCCESSFUL)

GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE

SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)

DVSYSのオブジェクト監査設定

LBACSYSのオブジェクト監査設定

AUDIT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

COMMENT TABLE/VIEW

DELETE TABLE/VIEW

EXECUTE PACKAGE/PROCEDURE/FUNCTION (WHENEVER NOT SUCCESSFUL)

GRANT PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/TABLE

INSERT TABLE/VIEW

RENAME PACKAGE/PROCEDURE/FUNCTION/SEQUENCE/VIEW/TABLE

SELECT SEQUENCE/TABLE/VIEW (WHENEVER NOT SUCCESSFUL)

UPDATE TABLE/VIEW

B Oracle Database Vaultの無効化および有効化

この付録の内容は次のとおりです。

- Oracle Database Vaultを無効にする必要がある場合

- Oracle Database Vaultが有効か無効かの確認

- 手順1: Oracle Database Vaultの無効化

- 手順2: 必要なタスクの実行

- 手順3: Oracle Database Vaultの有効化

Oracle Database Vaultを無効にする必要がある場合

アップグレード・タスクを実行する際、または誤った構成を修正する際には、Oracle Database Vaultを無効にする必要があります。修正タスクが終了したら、Oracle Database Vaultを再度有効にできます。

注意:
Oracle Database Vaultを無効にすると、インストール時に既存のユーザーおよびロールから取り消された権限が有効のままになることに注意してください。取り消される権限のリストは、「既存のユーザーおよびロールから取り消される権限」を参照してください。

次の場合に、Oracle Database Vaultを無効にする必要があります。

- Oracle Database Vaultユーザー・アカウントが不注意からロックされてしまった場合、またはパスワードを忘れてしまった場合。(以後、この問題を回避するためのガイドラインについては、「Oracle Database Vaultアカウント」のヒントを参照してください。)

- CONNECTロールに関連付けられたルール・セットが誤って構成されている場合。その結果、この問題を修正できるDV_OWNERまたはDV_ADMINロールを持つアカウントも含め、すべてのアカウントについてデータベース・ログインが失敗します。

- Oracle Database Vaultに対してメンテナンス・タスクを実行する必要がある場合。

- Oracle Databaseのオプションの製品または機能(Oracle SpatialやOracle Multimediaなど)のいずれかをDatabase Configuration Assistant(DBCA)を使用してインストールする必要がある場合。

- サード・パーティ製品のインストール、Oracle製品のインストール、またはOracle Database Vaultが稼働している場合はインストールできないOracleパッチの更新を実行する場合。

- Oracle Database Vault監査証跡をアーカイブする必要がある場合。

Oracle Database Vaultが有効か無効かの確認

Oracle Database Vaultが有効か無効かは、V$OPTIONデータ・ディクショナリ・ビューに問い合せることで確認できます。どのユーザーでもこのビューに問い合せることができます。Oracle Database Vaultが有効な場合、問合せはTRUEを返します。それ以外の場合はFALSEを返します。

PARAMETER列の値は大/小文字を区別します。次に例を示します。

SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

Oracle Database Vaultが有効な場合、次の出力結果が表示されます。

PARAMETER                     VALUE
----------------------------- -----------------------
Oracle Database Vault         TRUE

手順1: Oracle Database Vaultの無効化

Oracle Database Vaultを無効にする手順:

1. データベース、Database Controlコンソール・プロセスおよびリスナーを停止します。

- UNIXの場合: 環境変数ORACLE_HOME、ORACLE_SIDおよびPATHが正しく設定されていることを確認します。SYSOPER権限を持つユーザーSYSとしてSQL*Plusにログインし、データベースを停止します。次に、コマンドラインからDatabase Controlコンソール・プロセスとリスナーを停止します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password

SQL> SHUTDOWN IMMEDIATE
SQL> EXIT

$ emctl stop dbconsole
$ lsnrctl stop [listener_name]

Oracle RACインスタンスの場合は、各データベース・インスタンスを次のように停止します。

$ srvctl stop database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止します。Oracle Databaseサービスの名前はOracleで始まります。

2. Oracle Database Vaultを次のように無効にします。

- UNIXの場合: 次のコマンドを実行します。

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk dv_off ioracle

データベースでOracle ExadataストレージにIPCプロトコルを使用している場合は、次のコマンドを使用してDatabase Vaultを無効にします。

$ cd $ORACLE_HOME/rdbms/lib
$ make –f ins_rdbms.mk dv_off ipc_rds ioracle

- Windowsの場合: ORACLE_HOME\binディレクトリで、oradvll.dllファイルの名前をoradvll.dll.dblなどの別の名前に変更します。

3. データベース、Database Controlコンソール・プロセスおよびリスナーを再起動します。

- UNIXの場合: SYSOPER権限を持つユーザーSYSとしてSQL*Plusにログインし、データベースを再起動します。次に、コマンドラインからDatabase Controlプロセスとリスナーを再起動します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password

SQL> STARTUP
SQL> EXIT

$ emctl start dbconsole
$ lsnrctl start [listener_name]

Oracle RACインストールの場合は、次のように各データベース・インスタンスを再起動します。

$ srvctl start database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを再起動します。Oracle Databaseサービスの名前はOracleで始まります。

4. Oracle RACインストールの場合は、データベースがインストールされているノードごとに、これらの手順を繰り返します。

手順2: 必要なタスクの実行

この段階で、Oracle Database Vaultは無効になっています。次のようなアクティビティを実行できます。

- Oracle Database VaultのPL/SQLパッケージおよびファンクションを使用します。たとえば、ログインまたはCONNECTルール・セットのエラーを修正するには、DBMS_MACADM PL/SQLパッケージまたはOracle Database Vault Administratorインタフェースを使用します。

- パスワードの作成または変更、あるいはアカウントのロックおよびロック解除などのタスクを実行するために、SYSTEMアカウントまたはSYSアカウントを使用します。通常のデータベースおよび管理ユーザー・アカウントの変更に加えて、DV_ADMINまたはDV_ACCTMGRロールを付与されているユーザーなど、任意のOracle Database Vault固有のアカウントのパスワードおよびロック・ステータスを変更できます。(以後、この問題を回避するためのガイドラインについては、「Oracle Database Vaultアカウント」のヒントを参照してください。)

- インストール、アップグレード、またはセキュリティ保護を無効にする必要のあるその他のタスクを実行します。

手順3: Oracle Database Vaultの有効化

Oracle Database Vaultを有効にする手順:

1. データベース、Database Controlコンソール・プロセスおよびリスナーを停止します。

- UNIXの場合: 環境変数ORACLE_HOME、ORACLE_SIDおよびPATHが正しく設定されていることを確認します。SYSOPER権限を持つユーザーSYSとしてSQL*Plusにログインし、データベースを停止します。次に、コマンドラインからDatabase Controlコンソール・プロセスとリスナーを停止します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password

SQL> SHUTDOWN IMMEDIATE
SQL> EXIT

$ emctl stop dbconsole
$ lsnrctl stop [listener_name]

Oracle RACインスタンスの場合は、各データベース・インスタンスを次のように停止します。

$ srvctl stop database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止します。Oracle Databaseサービスの名前はOracleで始まります。

2. Oracle Database Vaultを次のように有効にします。

- UNIXの場合: 次のコマンドを実行します。makeコマンドでは、Oracle Database Vault(dv_on)とOracle Label Security(lbac_on)の両方が有効になります。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk dv_on lbac_on ioracle

Oracle ExadataストレージにIPCプロトコルを使用する場合は、次のコマンドを使用してDatabase VaultおよびLabel Securityを有効にします。

$ cd $ORACLE_HOME/rdbms/lib
$ make –f ins_rdbms.mk dv_on lbac_on ipc_rds ioracle

- Windowsの場合: ORACLE_HOME\binディレクトリで、oradvll.dllファイルのバックアップ・コピーの名前(例: oradv11.dll.dbl)をoradvll.dllに変更します。Oracle Label Securityの実行可能ファイルの名前がoralbacll.dllになっている(oralbacll.dll.dblや別のバックアップ名ではない)ことを確認します。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。

3. データベース、Database Controlコンソール・プロセスおよびリスナーを再起動します。

- UNIXの場合: SYSOPER権限を持つユーザーSYSとしてSQL*Plusにログインし、データベースを再起動します。次に、コマンドラインからDatabase Controlコンソール・プロセスとリスナーを再起動します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password

SQL> STARTUP
SQL> EXIT

$ emctl start dbconsole
$ lsnrctl start [listener_name]

Oracle RACインストールの場合は、次のように各データベース・インスタンスを再起動します。

$ srvctl start database -d db_name

- Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを再起動します。Oracle Databaseサービスの名前はOracleで始まります。

4. Oracle RACインストールの場合は、データベースがインストールされているノードごとに、これらの手順を繰り返します。

C Oracle Database Vaultのインストール後の手順

この付録の内容は次のとおりです。

- ロケールおよびNLS設定の確認

- Oracle Database Vault Administratorの手動デプロイ

- Oracle Database Vault Administratorのタイムアウト値の設定

- Oracle Database Vault Administratorのアクセシビリティの有効化

- Oracle RACノードでのOracle Database Vaultの構成

- Oracle Database Vaultへの言語の追加

- Oracle Database Vaultのアンインストール

- Oracle Database Vaultの再インストール

ロケールおよびNLS設定の確認

NLS_LANGUAGE初期化パラメータの値が、Oracle Databaseのインストール先のコンピュータのオペレーティング・システムで使用されているロケールおよびNLS設定(NLS_LANGまたはLANG環境変数)と一致していることを確認してください。これらの値が一致していないと、Database Vault Administratorには、デフォルトのレルム、コマンド・ルール、ルール・セットまたはファクタが表示されません。

たとえば、オペレーティング・システムのロケール設定($LANG変数)がen_US.UTF-8である場合、対応するNLS_LANG環境変数をAMERICAN_AMERICA.AL32UTF8に、データベースのNLS_LANGUAGE初期化パラメータ値をAMERICANに設定する必要があります。データベースのNLS_LANGUAGEパラメータは、オペレーティング・システムのNLS_LANG環境変数から導出されます。

ロケールおよびNLS設定の確認と構成の詳細は、使用しているプラットフォームに対応するOracle Databaseのインストレーション・ガイドのグローバリゼーション・サポートに関する付録を参照してください。

Oracle Database Vault Administratorの手動デプロイ

Oracleデータベースを手動で作成し、Enterprise Manager Configuration Assistantを使用してOracle Enterprise Manager Database Controlを構成した場合は、Oracle Database Vault Administratorを手動でデプロイする必要があります。この手順では、新しいアプリケーションを作成せずに、現行のEnterprise Managerと同じOC4JコンテナにDatabase Vault Administratorをデプロイします。

この項の内容は次のとおりです。

- Database Vault AdministratorのスタンドアロンOC4Jコンテナへのデプロイ

- Database Vault Administratorのデータベース・コンソールOC4Jコンテナへのデプロイ

Database Vault AdministratorのスタンドアロンOC4Jコンテナへのデプロイ

Database Vault Administratorを、Oracle Application Server Containers for J2EE(OC4J)ホームに手動でデプロイできます。デフォルトでは$ORACLE_HOME/oc4j/j2ee/homeディレクトリにあります。

Oracle Database Vault Administratorの手動デプロイの手順:

1. ファイル$ORACLE_HOME/oc4j/j2ee/home/config/server.xmlを編集します。読み込んだ最後の行、</application-server>の直前に次の行を追加します。

<application name="dva" path="Oracle_home_dir/dv/jlib/dva_webapp.ear" auto-start="true" />

Oracle_home_dirをOracleホーム・ディレクトリへの相対パスまたは直接パスで置き換えます。($ORACLE_HOME環境変数を入力することはできません。)

次に例を示します。

<application name="dva" path="/u00/app/oracle/oracle/product/dv12/dv/jlib/dva_webapp.ear" auto-start="true" />

2. ファイル$ORACLE_HOME/oc4j/j2ee/home/config/http-web-site.xmlを編集します。読み込んだ最後の行、</web-site>の直前に次の行を追加します。

<web-app application="dva" name="dva_webapp" root="/dva" />

3. ファイル$ORACLE_HOME/oc4j/j2ee/home/config/global-web-application.xmlを編集します。<servlet-class>oracle.jsp.runtimev2.JspServlet</servlet-class>を検索します。次の行のコメントを解除します。

<init-param>
<param-name>main_mode</param-name>
<param-value>justrun</param-value>
</init-param>

4. 次のディレクトリを作成します。

mkdir -p $ORACLE_HOME/dv/jlib/sysman/config

5. 作成した構成ディレクトリでデータベース接続構成ファイル、emoms.プロパティを作成します。次の行をファイルに追加します。

oracle.sysman.emSDK.svlt.ConsoleMode=standalone
oracle.sysman.eml.mntr.emdRepRAC=FALSE
oracle.sysman.eml.mntr.emdRepDBName=oracle_sid
oracle.system.eml.mntr.emdRepConnectDescriptor=TNS_connection_string

次の指示に従います。

- Oracle RAC環境では、oracle.sysman.eml.mntr.emdRepRACをTRUEに設定します。

- oracle.sysman.eml.mntr.emdRepConnectDescriptorには、$ORACLE_HOME/network/admin/tnsnames.oraの別名を使用できます。次の構文を使用することもできます。

oracle.sysman.eml.mntr.emdRepConnectDescriptor=
(DESCRIPTION\=
(ADDRESS_LIST\=(ADDRESS\=(PROTOCOL\=TCP) (HOST\=HOSTNAME)(PORT\=PORT)))
(CONNECT_DATA\=
(SERVICE_NAME\=ORACLE_SID))

6. 正しい環境変数が設定されていることを確認します。
次に例を示します。

ORACLE_SID=orcl
export ORACLE_SID
ORACLE_HOME=/u00/app/oracle/product/11.2
export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/jdbc/lib
export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/jdk/bin:$PATH
export PATH

OCI JDBCライブラリを使用するには、LD_LIBRARY_PATH変数を設定します。

7. 次の構文を使用してOC4Jを起動します。

$ORACLE_HOME/jdk/bin/java -Djava.awt.headless=true -DEMDROOT=$ORACLE_HOME/dv/jlib -jar $ORACLE_HOME/oc4j/j2ee/home/oc4j.jar -userThreads -config $ORACLE_HOME/oc4j/j2ee/home/config/server.xml

これらの手順を完了すると、Database Vault Administratorを起動できます。この環境では、HTTPポートは8888にデフォルト設定されます。次の構文をURLに使用します。

http://hostname:8888/dva

Database Vault Administratorのデータベース・コンソールOC4Jコンテナへのデプロイ

Database Vault Administratorをデータベース・コンソールOC4Jコンテナに手動でデプロイする手順:

1. Oracleデータベース・コンソールを停止します。

- UNIXの場合: $ORACLE_HOME/binディレクトリに移動して次のコマンドを実行します。

./emctl stop dbconsole

- Windows: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesid」サービスを右クリックします。メニューから「停止」を選択します。

2. バックアップ・コピーを作成し、$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/server.xmlファイルを開きます。

3. </application-server>要素の前に次の行を追加します。

<application name="dva" path="$ORACLE_HOME/dv/jlib/dva_webapp.ear" parent="default" start="true" />

UNIXとWindowsシステムの両方で、$ORACLE_HOMEをOracle Databaseホームの絶対パスで置き換えます。

4. バックアップ・コピーを作成し、$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_service_name/config/http-web-site.xmlファイルを開きます。

5. </web-site>要素の前に次の行を追加します。

<web-app application="dva" name="dva_webapp" load-on-startup="true" root="/dva" shared="true"/>

6. Oracleデータベース・コンソールを再起動します。

- UNIXの場合: $ORACLE_HOME/binディレクトリに移動して次のコマンドを実行します。

./emctl start dbconsole

- Windows: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesid」サービスを右クリックします。メニューから「開始」を選択します。

これらの手順を完了すると、次のURLを使用してOracle Database Vault Administratorを起動できます。

https://hostname:port/dva

次に例を示します。

https://myserver:1158/dva

ポート番号が不明な場合は、ORACLE_HOME/host_sid/sysman/config/emd.propertiesファイルを開いてREPOSITORY_URLを検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Manager Database Controlと同じです。

Oracle Database Vault Administratorのタイムアウト値の設定

デフォルトでは、Oracle Database Vaultセッションは35分間続きます。セッションの持続時間を変更する場合は、この項の手順に従ってください。

Oracle Database Vault Administratorのセッション時間を設定するには、次のようにします。

1. web.xmlファイルをバックアップします。このファイルは、デフォルトでは$ORACLE_HOME/dv/jlib/dva_webapp/dva_webapp/WEB-INFディレクトリにあります。

2. テキスト・エディタで、web.xmlファイルを開きます。

3. 次の設定を検索します。

<session-config>
<session-timeout>35</session-timeout>
</session-config>

4. <session-timeout>設定を希望する時間に分単位で設定します。

5. 変更を保存して、web.xmlファイルを閉じます。

6. Database Vault Administratorを停止し、再起動します。

- UNIXの場合: $ORACLE_HOME/binディレクトリに移動して次のコマンドを実行します。

./emctl stop dbconsole
./emctl start dbconsole

- Windows: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesid」サービスを右クリックします。メニューから「停止」を選択します。コンソールの停止後、「開始」を選択します。

Oracle Database Vault Administratorのアクセシビリティの有効化

障害のあるお客様がデータにアクセスして使用できるように、Database Vault Administratorを構成できます。次のセクションで、Database Vault Administratorの完全なアクセシビリティを有効化する方法について説明します。

- Oracle Database Vault Administratorのアクセシビリティ・モードの有効化

- Database Vault Administratorのグラフのテキスト説明の提供

Oracle Database Vault Administratorのアクセシビリティ・モードの有効化

Oracle Database Vault Administratorでは、一部のユーザー操作の応答性を向上させるユーザー・インタフェース開発技術を利用しています。たとえば、表の新しいレコード・セットに移動した際、HTMLページ全体は再表示されません。これはパフォーマンスを向上させる技術ですが、一般にスクリーン・リーダーはこの技術をサポートしていません。この機能を無効にして、障害のあるお客様がDatabase Vault AdministratorのHTMLページにアクセスしやすくするには、次の手順に従います。

HTMLページ全体の表示を有効にするには、次のようにします。

1. uix-config.xml構成ファイルを見つけます。
デフォルトでは、uix-config.xmlファイルは次のディレクトリにあります。

$ORACLE_HOME/oc4j/j2ee/oc4j_applications/applications/em/em/WEB-INF

2. テキスト・エディタを使用してuix-config.xmlファイルを開き、次のエントリを見つけます。

<!-- An alternate configuration that disables accessibility features  -->
<default-configuration>
<accessibility-mode>inaccessible</accessibility-mode>
...
</default-configuration>

3. アクセシビリティ・モードのプロパティ値をinaccessibleからaccessibleに変更します。

4. 変更を保存して、uix-config.xmlファイルを閉じます。

5. Oracle Database Vault Administratorを再起動します。
「Oracle Database Vaultの起動」を参照してください。

Database Vault Administratorのグラフのテキスト説明の提供

Database Vault Administratorの「監視」ページでは、グラフ内にセキュリティ・ポリシーが表示されます。しかし、グラフの情報はスクリーン・リーダーで読み取ることができません。この問題に対処するために、各グラフのすべての情報のテキスト表示を提供するようにDatabase Vault Administratorを構成できます。デフォルトでは、グラフのテキスト表示のサポートは無効になっています。グラフのテキスト説明が有効な場合、Database Vault Administratorでグラフ・データのテキスト表示が示されます。

グラフのテキスト表示を有効にするには、次のようにします。

1. web.xml構成ファイルを見つけます。
Oracle Database 10gインストールでweb.xmlファイルを見つけるには、ディレクトリをOracleホームの次の場所に変更します。

$ORACLE_HOME/dv/jlib/dva_webapp/dva_webapp/WEB-INF/

2. 任意のテキスト・エディタでweb.xmlファイルを開き、ファイルの次の6行を見つけます。

<!-- Uncomment this to enable textual chart descriptions
<context-param>
<param-name>enableChartDescription</param-name>
<param-value>true</param-value>
</context-param>
-->

3. このセクションの最初の行と最後の行を削除して、このセクションからコメントを削除し、セクションが次の4行で構成されるようにします。

<context-param>
<param-name>enableChartDescription</param-name>
<param-value>true</param-value>
</context-param>

4. 変更を保存して、web.xmlファイルを終了します。

5. Oracle Database Vault Administratorを再起動します。
「Oracle Database Vaultの起動」を参照してください。

Oracle RACノードでのOracle Database Vaultの構成

Oracle Real Application Clusters(Oracle RAC)インスタンスに対してOracle Database Vaultをインストールした後、Oracle RACノードごとに次の手順を実行します。この手順では、各ノードは別個のOracleホームを持つと仮定します。

1. SYSDBA権限を持つユーザーSYSとしてSQL*Plusにログインします。

sqlplus sys as sysdba
Enter password: password

2. 次のALTER SYSTEM文を実行します。

ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE;
ALTER SYSTEM SET OS_ROLES=FALSE SCOPE=SPFILE;
ALTER SYSTEM SET RECYCLEBIN='OFF' SCOPE=SPFILE;
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE='EXCLUSIVE' SCOPE=SPFILE;
ALTER SYSTEM SET SQL92_SECURITY=TRUE SCOPE=SPFILE;

3. Oracle Databaseを再起動します。

CONNECT SYS/AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

Oracle Database Vaultへの言語の追加

デフォルトでは、Oracle Database Vaultによって英語表のみがロードされます。言語を追加するには、追加する新しい言語ごとにDBMS_MACADM.ADD_NLS_DATAプロシージャを実行します。複数の言語をDatabase Vaultに追加できます。

Oracle Database Vaultに新しい言語を追加するには、次のようにします。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとしてSQL*Plusにログインします。

2. 次のプロシージャを実行します。

EXEC DBMS_MACADM.ADD_NLS_DATA('language');

language設定は、大文字と小文字のいずれを使用しても指定できます。次に例を示します。

EXEC DBMS_MACADM.ADD_NLS_DATA('french');

EXEC DBMS_MACADM.ADD_NLS_DATA('JAPANESE');

languageを、サポートされている次のいずれかの言語で置き換えます。

- ENGLISH

- GERMAN

- SPANISH

- FRENCH

- ITALIAN

- JAPANESE

- KOREAN

- BRAZILIAN PORTUGUESE

- SIMPLIFIED CHINESE

- TRADITIONAL CHINESE

Oracle Database Vaultのアンインストール

次の手順では、Oracle DatabaseインストールからOracle Database Vaultを削除します。単一インスタンスとOracle RACインストールの両方に適用されます。アンインストール・プロセスによって、初期化パラメータ設定(インストール・プロセスで変更した設定でも)は影響を受けません。

Oracle Database Vaultをアンインストールするには、次のようにします。

1. データベース、Database Controlコンソール・プロセスおよびリスナーを停止します。
次に例を示します。

sqlplus sys as sysoper
Enter password: password
Connected.

SQL> SHUTDOWN IMMEDIATE
SQL> EXIT

$ emctl stop dbconsole
$ lsnrctl stop [listener_name]

Oracle RACインスタンスの場合は、各データベース・インスタンスを次のように停止します。

$ srvctl stop database -d db_name

Windowsの場合は、[コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止できます。Oracle Databaseサービスの名前はOracleで始まります。

2. 次のコマンドを実行して、Oracle Database VaultとOracle Label Securityを無効にします。

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk dv_off lbac_off ioracle

3. SQL*Plusにログインし、データベース、Database Controlコンソール・プロセスおよびリスナーを再起動します。
次に例を示します。

SQL> STARTUP
SQL> EXIT

$ emctl stop dbconsole
$ lsnrctl start [listener_name]

Oracle RACインストールの各インスタンスの場合:

$ srvctl start database -d db_name

Windowsの場合は、[コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止できます。Oracle Databaseサービスの名前はOracleで始まります。

4. SQL*Plusで、SYSDBA権限を持つユーザーSYSとしてログインします。

5. リサイクルビンを無効にします。
リサイクルビンが有効かどうかを確認するには、次のコマンドを入力します。

SQL> SHOW PARAMETER RECYCLEBIN

リサイクルビンが有効の場合は、次のように無効にします。

SQL> ALTER SYSTEM SET RECYCLEBIN = OFF SCOPE=SPFILE;
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP

リサイクルビンを無効にしても、リサイクルビンにすでにあるオブジェクトはパージされず、影響も受けません。セキュリティ強化のために、リサイクルビンは無効にしておいてください。「リサイクルビンのセキュリティの考慮事項」を参照してください。

6. 次のSQLスクリプトを実行します。

SQL> @$ORACLE_HOME/rdbms/admin/dvremov.sql

7. DV_OWNERおよびDV_ACCTMGRユーザー・アカウントとDV_REALM_RESOURCEおよびDV_REALM_OWNERロールを手動で削除します。

SQL> DROP DBV_OWNER CASCADE;
SQL> DROP DBV_ACCTMGR CASCADE;
SQL> DROP DV_REALM_RESOURCE;
SQL> DROP DV_REALM_OWNER;

8. Oracle Label Securityを有効にします。

$ cd $ORACLE_HOME/rdbms/lib
$ make -f ins_rdbms.mk lbac_on ioracle

その後、SQL*Plusにログインして次の文を入力することで、Oracle Database Vaultが本当にアンインストールされたことを二重にチェックできます。

SQL> SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

Oracle Database Vaultがアンインストールされている場合、次の出力結果が表示されます。

PARAMETER                     VALUE
----------------------------- -----------------------
Oracle Database Vault         FALSE

Oracle Database Vaultの再インストール

Oracle Database Vaultを再インストールするには、「Oracle Database Vaultの登録(有効化)」の手順に従います。

D Oracle Database Vaultセキュリティ・ガイドライン

この付録の内容は次のとおりです。

- 職務分離のガイドライン

- Oracle Database管理アカウントの管理

- Oracle Database Vaultによって信頼されるアカウントおよびロール

- 信頼できる人物に制限する必要のあるアカウントおよびロール

- Oracle Database Vaultを本番環境で使用するためのガイドライン

- セキュアな構成のガイドライン

職務分離のガイドライン

この項の内容は次のとおりです。

- Oracle Database Vaultによる職務分離の処理

- Oracle Database Vault環境での分離タスクの定義

- 職務分離マトリクスの作成

- データベース・システムにアクセスするユーザーのタスクの識別および文書化

Oracle Database Vaultによる職務分離の処理

職務分離とは、各ユーザーの権限をそのユーザーが担当するタスクのみに制限し、それ以外のタスクの権限は付与しないことを意味します。多くの権限を1人のユーザーに付与するのではなく、特定の権限カテゴリを特定のユーザーに割り当てます。簡単に言えば、組織で求められる各タスクのアカウンタビリティが職務分離によって構築されます。

職務分離は、過去10年で非常に重要視されるようになりました。多くの組織にとって、職務分離は今後も展開し続ける新しい概念です。データベースの統合、法令順守およびアウトソーシングは、職務分離を推し進める要因の一部にすぎません。Oracle Database Vaultの職務分離では、セキュリティ関連の管理を日常的なDBA操作と分離することによって、セキュリティが強化されます。Database Vaultの職務分離は、現在および将来のビジネス要件に容易に対処できるようにカスタマイズが可能です。特に小規模組織では、限られたリソースでセキュリティ・プロファイルを向上させるために、柔軟性が必要となります。

Oracle Database Vault環境での分離タスクの定義

Oracle Database Vaultでは、次の主な職責が定義されます。

- アカウント管理。アカウント管理では、ユーザー・アカウントの作成、変更、および削除を行います。DV_ACCTMGRロールがこれらの権限を提供します。

- セキュリティ管理。セキュリティ管理では、基本的なセキュリティ・タスクを行います。たとえば、レルムやコマンド・ルールの作成、データベース・ユーザーのアクセスに対するセキュリティ・ポリシーの設定、実行が許可されたジョブに対するデータベース・ユーザーの認可などがあります。セキュリティ管理者は、セキュリティ監査レポートの実行も行います。DV_OWNERおよびDV_ADMINロールにこれらの権限が含まれています。(Oracle Database Vaultのロールによる職務分離の詳細は、「Oracle Database Vaultロール」を参照してください。)
オプションで、アカウント管理とセキュリティ管理の職責を統合することもできます。

- リソース管理。リソース管理とは、データベース・システムの管理のことで、ビジネス・データへのアクセスのことではありません。次のような操作があります。

- バックアップ操作では、事前定義されたツールを使用してバックアップを実行するための事前定義時刻が必要です。

- チューニングおよび監視操作では、継続したパフォーマンス監視および分析が必要です。

- パッチ適用操作では、パッチが適用されている間のみの一時アクセスが必要です。

リソース管理では、これらの各タスクについて、名前付きアカウントとバックアップ・アカウントを作成する必要があります。これらのアカウントを、データベース・ディクショナリ・レルムの所有者として追加します。これらのアカウントをデータベースのプライマリ・リソース・マネージャとして使用します。

データベース・アカウント管理とデータベース・セキュリティ管理のための個別アカウントと、バックアップ操作のためのその他の名前付きアカウントが必要です。監査者は、各職責のための個別のデータベース・アカウントをチェックし、各アカウントのアクションを追跡できます。特定タスクに割り当てられているユーザーの数は、あまり重要ではありません。Oracle Database Vault監査イベントは保護されており、Database Vaultレポートにはすべての違反未遂が表示されます。

職務分離マトリクスの作成

職務分離を適切に行うためには、環境で基本的な管理タスクを実行するユーザーおよびその管理タスクの内容を理解する必要があります。1人のデータベース管理者が新規データベース・アカウントのプロビジョニングとアプリケーション・パッチ適用の両方の管理を担当する場合であっても、これらの各タスクを文書化し、計画することが大切です。これらの各タスク・タイプに別の管理アカウントを使用することで、アカウンタビリティが向上し、関連するリスクが低減します。中規模から大規模の組織では、データベース管理者は通常、一般的な管理タスクを実行する必要はありますが、アプリケーションで管理されるビジネス・データにアクセスする必要はありません。職務分離マトリクスを作成すると、Database Vaultデプロイメントを計画する際に役立ちます。必要に応じて、追加タスクおよび関連するユーザーをリストに含めることができます。この情報は、組織の全体的なエンタープライズ・セキュリティ・ドキュメントの一部となります。

表D-1は、職務分離マトリクスの例を示しています。

表D-1 職務分離マトリクスの例

ユーザー、プロセスまたはアプリケーション

アカウントの作成

データベース管理

セキュリティ管理

SYSDBA

バックアップ

チューニング

パッチ適用

監視

...

JSMITH

X

SHARDY

X

PKESTNER

X

RTYLER

X

SANDERSON

X

X

SYSTEM

EBSパッチ適用

RMAN

X

X

システム管理タスクで、特定のツールおよびプログラムからデータへの一時的なアクセスが必要なこともあります。この場合、Oracle Database Vaultルールおよびルール・セットに、この一時アクセスまたは緊急アクセスに対するプロビジョニングを構築します。

データベース・システムにアクセスするユーザーのタスクの識別および文書化

組織で必要となる次のタスク範囲を文書化する必要があります。

- 各管理ユーザーの職責。

- ユーザーが必要とするアクセス権の種類。たとえば、アプリケーション所有者はデータ・アクセス、開発者は開発インスタンスに対するアクセスのみを必要とします。

- ビジネス・データにアクセスせずにシステムを管理する必要のあるユーザー(バックアップ、パッチ適用、チューニングおよび監視操作を実行するユーザーなど)。

- 各タスク・カテゴリの職務(バックアップの必要なファイル、パッチ適用の必要なアプリケーション、監視の正確な対象など)。これらの各タスクの代替ユーザー・アカウントも含まれます。

- 保護が必要なデータベースとアプリケーション。これには、Oracle Applications、パートナ・アプリケーションおよびカスタム・アプリケーションが含まれます。

- ビジネス・データベースへのアクセスを認可する必要のあるユーザー。次のユーザーが含まれます。

- 中間層プロセスを利用するアプリケーション所有者

- アプリケーション・インタフェースを利用するビジネス・ユーザー

- セキュリティ侵害の対処方法など、緊急時のWhat-Ifシナリオ。

- 本番環境でのレポート作成。次の内容が含まれます。

- レポートの実行者

- 実行が必要なレポート

- 各レポートの実行頻度

- 各レポートのコピーの受取りを必要とするユーザー

- 職務分離マトリクス以外に、次のマトリクスの作成があります。

- Oracle Database Vault固有マトリクス。Database Vaultロールを付与されているユーザーの名前およびタスクを含めることができます。

- アプリケーション保護マトリクス。保護対象アプリケーションおよび設定した保護タイプを含めることができます。

表D-2は、OracleがPeopleSoftアプリケーション向けに作成した保護の例を示しています。これらのセキュリティ・ポリシーを作成するためのスクリプトは、次のURLからダウンロードできます。

http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html

表D-2 アプリケーション保護マトリクスの例

保護タイプ

ルール・セットによる認可

SYSADM

PSFTDBA

SYSTEM

DBA

PeopleSoftレルム

所有者

所有者

アクセス不可

アクセス不可

SELECTコマンド・ルール

制限なし

制限PSFTDBルール・セット

アクセス不可

アクセス不可

CONNECTコマンド・ルール

PeopleSoftAccessルール・セット

制限なし

制限なし

制限なし

DROP TABLESPACEコマンド・ルール

無効なルール・セット

無効なルール・セット

無効なルール・セット

無効なルール・セット

Oracle Database管理アカウントの管理

この項の内容は次のとおりです。

- 一般的な管理目的のためのSYSTEMユーザー・アカウントの使用

- アプリケーション表のためのSYSTEMスキーマの使用

- SYSDBA管理権限の制限

- ルートとオペレーティング・システム・アクセスの管理

一般的な管理目的のためのSYSTEMユーザー・アカウントの使用

一般的なデータベース管理の目的でSYSTEMアカウントを使用する場合は、データベース管理者のための名前付きデータベース管理アカウントを作成します。これにより、データベース内の管理アクションに対するアカウンタビリティが向上します。

アプリケーション表のためのSYSTEMスキーマの使用

サイトでSYSTEMスキーマ内にアプリケーション表がある場合は、これらのアプリケーションを引き続き正常に動作させるため、SYSTEMアカウントをこれらの表に対するレルム認可に追加します。これらのアプリケーションのセキュリティを向上または微調整するため、SYSTEMアカウントに制限を加えることもできます。たとえば、SYSTEMユーザーのアクセスを特定のIPアドレスに制限するDatabase Vaultルール・セットを作成できます。

SYSDBA管理権限の制限

接続時にSYSDBA権限の使用がどうしても必要なユーザーや、引き続きSYSDBAアクセスを必要とするアプリケーション(Oracle Recovery Manager (RMAN)や必須パッチ適用プロセスなど)のみに、この権限を制限します。他のすべてのケースでは、日常的なデータベース管理を実行するための名前付きデータベース・アカウントを作成します。また、OSDBAユーザー・グループのメンバーにはSYSDBA管理権限が付与されます。

ルートとオペレーティング・システム・アクセスの管理

Oracle Database Vault は、多くの権限を持つデータベース・ユーザーが機密データにアクセスすることを防ぎます。また、Oracle Database自体を使用している場合は、透過的なデータ暗号化を使用することで、最大の権限を持つオペレーティング・システム・ユーザーが機密データにアクセスできないようにできます。透過的データ暗号化を使用すると、個々の表の列を非可視化できます。(データの透過的な暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。)オペレーティング・システムへの直接アクセスを常に注意深く確認し、制限することをお薦めします。

オペレーティング・システムにアクセスするには、アカウントをパーソナライズしておく必要があります。これらのパーソナライズされたアカウントは、LinuxまたはUNIX環境で、必要に応じてsudoを使用してoracleソフトウェア所有者にログインします。sudoでは、パーソナライズされた各ユーザーが実行できる特定のコマンドを制御できます。これらのユーザーについては、make、relink、gdb、またはデータベースで問題が発生する可能性があるその他のコマンドの使用を禁止してください。ただし、管理ユーザーがパッチをインストール、またはその他の緊急操作を実行する必要がある場合は、一定の時間のみmakeおよびrelinkコマンドを有効にし、この時間中のアクションを監査できます。

Oracle Database Vaultによって信頼されるアカウントおよびロール

Oracle Database Vaultは、データベース内の権限を与えられた多くのユーザーおよびロールからのアプリケーション・データへのアクセスを制限します。ただし、場合によっては、Oracle Database Vaultsは特定のロールおよび権限を信頼します。

表D-3に、信頼できるロールおよび権限を示します。これらのロールおよび権限は、Oracle Database Vaultのインストール時に作成されます。

表D-3 信頼できるOracle Database Vaultロールおよび権限

ロールまたは権限

ステータス

説明

DV_ACCTMGRロール

オープン

インストール時に作成され、新規データベース・アカウントの作成に使用されるロール。

DV_OWNERロール

オープン

インストール時に作成され、レルム、ファクタおよびコマンド・ルールの管理に使用されるロール。このユーザーは、自分自身をレルム認可に追加できます。DV_ACCTMGRロールを持つユーザーは、このユーザーを変更できません。

SYSDBA権限

有効

Oracle Databaseのインストール時に作成される権限。一部のOracle機能に必要です。SYSDBAの管理のガイドラインは、「SYSDBAアクセスの管理」を参照してください。

SYSOPER権限

有効

Oracle Databaseのインストール時に作成される権限。データベースの起動および停止。デフォルトではSYSにのみ付与されます。SYSOPERの管理のガイドラインは、「SYSOPERアクセスの管理」を参照してください。

信頼できる人物に制限する必要のあるアカウントおよびロール

いくつかのアカウントおよびロールは、デフォルトのOracle Databaseインストール環境で非常に強力な権限を持ちます。これらのアカウントおよびロールは、信頼できる人物に制限する必要があります。

- オペレーティング・システムのルート・アクセス権を持つユーザーの管理

- Oracleソフトウェア所有者の管理

- SYSDBAアクセスの管理

- SYSOPERアクセスの管理

オペレーティング・システムのルート・アクセス権を持つユーザーの管理

ルート・ユーザー・アクセス権を持つユーザーは、次のアクティビティを含め、システムを完全に制御できます。

- 暗号化されていないファイルの読取り

- ファイルの移動および削除

- システムでのプログラムの起動または停止

- Oracle Databaseインストール環境を所有するユーザーを含む任意のユーザーとしてのログイン

Oracle Database Vaultでは、オペレーティング・システム・ルート・アクセスに対して保護されません。ルート・ユーザー権限は、必ず適切な職責を持つ適切な人物にのみ付与してください。

Oracleソフトウェア所有者の管理

システムにOracleソフトウェア所有者としてのアクセス権を持つユーザーは、次のアクティビティを含め、Oracleソフトウェアを制御できます。

- 暗号化されていないデータベース・ファイルの読取り

- データベース・ファイルの移動および削除

- システムでのOracleプログラムの起動または停止

Oracle Database Vaultでは、Oracleソフトウェア所有者のオペレーティング・システム・アクセスから保護されません。Oracleソフトウェア所有者アクセス権は、必ず適切な職責を持つ適切な人物にのみ付与してください。

SYSDBAアクセスの管理

デフォルトでは、Oracle Databaseは、SYSDBAアクセスをOSDBAグループの管理ユーザーおよびユーザーSYSに限定します。SYSDBA権限はOracle Database Vaultの信頼できる権限です。この権限は信頼できるユーザーにのみ付与してください。

SYSOPERアクセスの管理

デフォルトでは、Oracle Databaseは、SYSOPERアクセスをOSOPERグループのオペレーティング・システム・ユーザーおよびユーザーSYSに限定します。これによって、SYSOPERがOracleデータ・ディクショナリを直接変更することを防ぎます。SYSOPER権限は、データベース内の制限された権限を持ちますが、このロールを持つユーザーは、Oracleデータベースの起動と停止を行うことができます。SYSOPER権限は、信頼できるユーザーにのみ付与してください。

Oracle Database Vaultを本番環境で使用するためのガイドライン

Oracle Database Vaultを本番環境で使用する際は、次のガイドラインに従ってください。

- アプリケーションの全テストを実行して、作成したDatabase Vaultポリシーが予測どおりに機能していることを確認します。

- アプリケーションのパフォーマンスを監視し、必要に応じてルール式を調整します。

- 適切な製品サポートおよびセキュリティ・グループに職責を次のように割り当てます。

- データベース・セキュリティ管理者にセキュリティ職責を割り当てます。

- データベース・アカウント・マネージャにアカウント管理を割り当てます。

- データベース管理者にリソース管理タスクを割り当てます。

- Database Vault APIスクリプトをセキュア・サーバーにバックアップします。

セキュアな構成のガイドライン

次の構成およびセキュリティのガイドラインに従ってください。

- UTL_FILEおよびDBMS_FILE_TRANSFERパッケージのセキュリティの考慮事項

- リサイクルビンのセキュリティの考慮事項

- CREATE ANY JOB権限のセキュリティの考慮事項

- CREATE EXTERNAL JOB権限のセキュリティの考慮事項

- LogMinerパッケージのセキュリティの考慮事項

- ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項

注意:

- パッチおよび新規アプリケーションをインストールすると、この項で取り消した権限のうち、Oracleが推奨する一部の権限が再付与されることがあります。パッチおよび新規アプリケーションをインストールした後で、これらの権限を確認し、取り消されたままになっていることを確認してください。

- パッケージに対するEXECUTE権限を取り消した場合は、所有者にパッケージに対するEXECUTEが付与されていることを確認し、パッケージの依存関係を確認し、取消し後に無効なパッケージを再コンパイルしてください。
パッケージへのアクセス権を持つユーザーを検索するには、SQL*PlusにSYSTEMとしてログインし、次の問合せを発行します。

SELECT * FROM DBA_TAB_PRIVS WHERE TABLE_NAME = package_name;

package_nameは、検索するパッケージの名前です。

パッケージに依存するユーザー、パッケージ、プロシージャおよびファンクションを検索するには、次の問合せを発行します。

SELECT OWNER, NAME, TYPE  FROM ALL_DEPENDENCIES
WHERE REFERENCED_NAME = package_name;

この2つの問合せは、動的SQLで行われたパッケージへの参照を識別しません。

関連項目:

- 「既存のユーザーおよびロールから取り消される権限」

- 表11-1「Oracle Database Vaultロールの権限」

UTL_FILEおよびDBMS_FILE_TRANSFERパッケージのセキュリティの考慮事項

UTL_FILEパッケージはSYSによって所有され、PUBLICに付与されます。ただし、ユーザーがオペレーティング・システム・ディレクトリ内のファイルを操作するためには、そのディレクトリ・オブジェクトへのアクセス権が必要です。UTL_FILEパッケージをセキュアに構成できます。詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

DBMS_FILE_TRANSFERパッケージは、SYSによって所有され、EXECUTE_CATALOG_ROLEに付与されます。このパッケージに対するEXECUTEアクセス権を持つユーザーは、同じファイルシステムの1つの場所から別の場所にファイルを移動できます。リモート・システム上のデータベースを含め、データベース・インスタンス間でファイルを移動することもできます。

DBMS_FILE_TRANSFERパッケージを保護するには、次の処理を行います。

- DBMS_FILE_TRANSFERパッケージのEXECUTE権限を取り消し、この権限を必要とする信頼できるユーザーに対してのみEXECUTE権限を付与します。

- コマンド・ルールを作成して、CREATE DATABASE LINKおよびCREATE DIRECTORY SQL文を制御します。Oracle Database Vault Administratorを使用したコマンド・ルールの作成の詳細は、「コマンド・ルールの作成および編集」を参照してください。

または、例D-1および例D-2に示すように、Oracle Database VaultのDBMS_MACADMパッケージを使用して、リモート・データベースへの接続の確立に使用されるCREATE DATABASE LINK文へのアクセスを制限および有効化することもできます。このメソッドを使用するには、Oracle Database Vault所有者アカウントを使用してSQL*Plusにログインします。

例D-1 CREATE DATABASE LINKへのアクセスを拒否するコマンド・ルールの作成

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE (
command       => 'CREATE DATABASE LINK',
rule_set_name => 'Disabled',
object_owner  => '%',
object_name   => '%',
enabled       => DBMS_MACUTL.G_YES);
END;
/
COMMIT;

有効なユーザーがCREATE DATABASE LINK文を使用する必要がある場合、Oracle Database Vault所有者は、Oracle Database Vault Administratorから再び有効にするか、SQL*Plusで次のコマンドを発行できます。

例D-2 CREATE DATABASE LINKへのアクセスを有効にするコマンド・ルールの作成

BEGIN
DBMS_MACADM.UPDATE_COMMAND_RULE (
command       => 'CREATE DATABASE LINK',
rule_set_name => 'Enabled',
object_owner  => '%',
object_name   => '%',
enabled       => DBMS_MACUTL.G_YES);
END;
/
COMMIT;

同様に、例D-3に、CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルールを示します。

例D-3 CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルール

-- Disable access to CREATE DIRECTORY
BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE (
command       => 'CREATE DIRECTORY',
rule_set_name => 'Disabled',
object_owner  => '%',
object_name   => '%',
enabled       => dbms_macutl.g_yes);
END;
/
COMMIT;

-- Enable access to CREATE DIRECTORY
BEGIN
dbms_macadm.update_command_rule (
command       => 'CREATE DIRECTORY',
rule_set_name => 'Enabled',
object_owner  => '%',
object_name   => '%',
enabled       => dbms_macutl.g_yes);
END;
/
COMMIT;

リサイクルビンのセキュリティの考慮事項

Oracle Database Vaultでは、ALTER SYSTEMコマンド・ルールによってリサイクル・ビン機能が有効になるのを防ぎますが、リサイクル・ビンがすでに有効な場合、無効化を防ぐことはできません。リサイクルビン機能が有効な場合、レルムで保護されたオブジェクトが削除されると、リサイクル・ビンに移動されます。そこでは、オブジェクトはレルムによって保護されなくなります。DVSYSスキーマ内のオブジェクトは例外です。DVSYSを保護スキーマとして保持し続けるために、リサイクル・ビンが無効な場合でも、このスキーマのオブジェクトを削除できません他のレルムのセキュリティを強化するために、リサイクルビンを無効にする必要があります。

SQL*Plusでは、リサイクルビンの内容は次のようにチェックできます。

SELECT * FROM RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN;

リサイクルビンの内容をパージするには、PURGE SQL文を使用します。

PURGE RECYCLEBIN;
PURGE USER_RECYCLEBIN;

リサイクルビンを無効にするには、次のようにします。

1. SYSDBA権限を使用してSYSとしてSQL*Plusにログインします。

sqlplus sys as sysdba
Enter password: password

2. リサイクルビンが無効になっていることを確認します。

SHOW PARAMETER RECYCLEBIN

3. リサイクルビンがオンの場合は、無効にします。

ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;

4. Oracle Databaseを再起動します。

SHUTDOWN IMMEDIATE
STARTUP

CREATE ANY JOB権限のセキュリティの考慮事項

CREATE ANY JOB権限はDBAロールおよびSCHEDULER_ADMINロールから取り消されています。使用しているアプリケーションにこの変更による影響がないことを確認してください。

詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。

CREATE EXTERNAL JOB権限のセキュリティの考慮事項

CREATE EXTERNAL JOB権限は、Oracle Database 10gリリース 2 (10.2)で導入されました。データベースの外部のオペレーティング・システムで稼働するジョブを実行するデータベース・ユーザーに必要です。デフォルトでは、この権限は、CREATE JOB権限が付与されたすべてのユーザーに付与されます。セキュリティを高めるために、この権限を必要としないユーザーからこの権限を取り消し、必要とするユーザーにのみ付与してください。

LogMinerパッケージのセキュリティの考慮事項

このリリースのOracle Database Vaultでは、ロールEXECUTE_CATALOG_ROLEには、次のLogMinerパッケージに対するEXECUTE権限がデフォルトでは付与されません。

- DBMS_LOGMNR

- DBMS_LOGMNR_D

- DBMS_LOGMNR_LOGREP_DICT

- DBMS_LOGMNR_SESSION

使用しているアプリケーションにこの変更による影響がないことを確認してください。

ALTER SYSTEMおよびALTER SESSION権限のセキュリティの考慮事項

トレースおよびデバッグ・コマンドは、Oracleデータベース・メモリー情報を表示する可能性があることに注意してください。Oracle Database Vaultは、これらのコマンドに対する保護を行いません。Oracleデータベース・メモリー情報を保護するために、ALTER SYSTEM権限およびALTER SESSION権限へのアクセスを厳密に制御することをお薦めします。これらの権限は、SYSDBAとして接続しているときにユーザーSYSによって、またDBAロールを付与されている任意のユーザーによって付与できます。

また、ALTER SYSTEM文の既存のコマンド・ルールにツールを追加することをお薦めします。Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。ALTER SESSION権限は、信頼できるユーザーにのみ付与してください。(たとえば、ALTER SESSION文はトレースを有効にできます。)

例D-4は、このようなルールの作成方法を示しています。このルールにより、ALTER SYSTEM権限を持つユーザーは、コマンドALTER SYSTEM DUMPを発行できなくなります。このコマンド・ルールを作成する場合は、Oracle Database Vault所有者としてSQL*Plusにログインします。

例D-4 既存のALTER SYSTEMコマンド・ルールへのルールの追加

CONNECT amalcolm_dvacctmgr
Enter password: password

BEGIN
DBMS_MACADM.CREATE_RULE('NO_SYSTEM_DUMP',
'(INSTR(UPPER(DVSYS.DV_SQL_TEXT),''DUMP'') = 0)');
END;
/
EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET
('Allow Fine Grained Control of System Parameters','NO_SYSTEM_DUMP');

COMMIT;

または、Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。詳細は、「ルール・セットに追加するルールの作成」を参照してください。

E Oracle Database Vaultのトラブルシューティング

この付録の内容は次のとおりです。

- トレース・ファイルを使用したデータベースのイベントの診断

- 一般的な診断のヒント

- Oracle Database Vaultコンポーネントにかかわる構成の問題

トレース・ファイルを使用したデータベースのイベントの診断

この項の内容は次のとおりです。

- トレース・ファイルを使用したOracle Database Vaultイベントの診断について

- Oracle Database Vaultで追跡できるトレース・イベントと追跡できないイベントのタイプ

- Oracle Database Vaultトレース・イベントのレベル

- Oracle Database Vaultトレース・ファイルを有効にしたときのパフォーマンスへの影響

- Oracle Database Vaultトレース・イベントの有効化

- Oracle Database Vaultトレース・ファイル・データの検索

- Oracle Database Vaultトレース・ファイルの例

- Oracle Database Vaultトレース・イベントの無効化

トレース・ファイルを使用したOracle Database Vaultイベントの診断について

Oracle Database Vaultデータベース・インスタンスのトレース・ファイルを有効化および確認して、Oracle Database Vaultのデータベース・インスタンスで、サーバーやバックグラウンド・プロセスのイベントを監視することができます。トレース・ファイルを見れば、Oracle Database Vaultのポリシー認可が成功したか失敗したかを確認できます。バグおよびその他の問題が発生したとき、その解決に有効な情報を得ることができます。

Oracle Database Vaultのトレースを設定するには、DV_ADMINロールが必要です。この構成を実行するには、ALTER SESSION SET EVENTSまたはALTER SYSTEM SET EVENTSというSQL文を使用します。

関連項目:
トレース・ファイルの管理の詳細は、『Oracle Database管理者ガイド』を参照してください

Oracle Database Vaultで追跡できるトレース・イベントと追跡できないイベントのタイプ

表E-1に、トレース・ファイルで追跡できるアクティビティのタイプを示します。

表E-1 Oracle Database Vaultトレース・ファイルの内容

Database Vaultの機能

説明

レルムの認可

このトレース・ファイルは、ロールに対するルール・セットとレルム認可を使用して、レルム認可の各ケースを追跡します。このタイプのトレース・ファイルの詳細は、「Oracle Database Vaultトレース・ファイルの例」を参照してください。

ルール・セットの評価

このトレース・ファイルには、レルム認可、コマンド・ルールのCONNECTコマンド・ルール、およびファクタからのルール・セット評価に関する情報が含まれます。

Oracle Data Pumpの認可

このトレース・ファイルには、Database VaultのData Pumpの認可結果と、ユーザー、オブジェクト、SQLテキストに関するその他の情報が含まれます。

Oracle Schedulerジョブの認可

このトレース・ファイルには、Database VaultのOracle Schedulerジョブの認可結果、ジョブ名、ジョブ所有者、現在の文などが含まれます。

オブジェクト権限のバイパス

このトレース・ファイルは、直接の権限付与と、ロールを介した権限付与の両方を追跡します。このタイプのトレースは、必須レルムが有効になっておらず、オブジェクト権限を持つユーザーがレルム保護されたオブジェクトにアクセスできる場合に役に立ちます。

ファクタのロード

このトレース・ファイルは、ロードされた各ファクタの式と値を追跡します。

その他

オブジェクト所有者がバイパスしたレルム保護や、Database Vaultで失敗した操作、成功した操作

Oracle Database Vaultトレース・イベントのレベル

Oracle Database Vaultで使用できるトレース・イベントのレベルは、次のとおりです。

- 低: Oracle Database Vaultで失敗したすべての認可に関する情報をトレース・ファイルに出力します。このタイプのトレース・ファイルには、レルム認可の失敗、ファクタのロードの失敗、ルール・セット評価の失敗などが記録されます。Oracleデータベースのパフォーマンスに対する影響は小さくなります。

- 高: 認可の成功と失敗の両方を含むトレース・レコードを出力します。このタイプのトレースは、すべての認可を追跡するので、低レベルのトレースよりオーバーヘッドが大きくなります。また、トレース・ファイルのサイズも通常は大きくなります。

- 最高: PL/SQLスタックとファンクション・コール・スタック、および高レベルでトレースされる内容(表E-1を参照)をトレース・ファイルに出力します。Oracleデータベースのパフォーマンスに対する影響は最も大きくなります。

Oracle Database Vaultトレース・ファイルを有効にしたときのパフォーマンスへの影響

トレース・ファイルの有効化には注意してください。有効化により、データベース・インスタンス操作のオーバーヘッドが増加し、パフォーマンスが低下する可能性があります。

Oracle Database Vaultトレース・イベントの有効化

この項の内容は次のとおりです。

- 現在のデータベース・セッションに対するトレース・イベントの有効化

- すべてのデータベース・セッションに対するトレース・イベントの有効化

現在のデータベース・セッションに対するトレース・イベントの有効化

1. DV_ADMINロールおよびALTER SESSIONシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。
次に例を示します。

sqlplus lbrown_dvowner
Enter password: password
Connected.

2. ALTER SESSION SET EVENTS SQL文を入力してトレースを低に設定します。「Oracle Database Vaultトレース・イベントのレベル」を参照してください。

- 影響が小さい操作の失敗に対してトレースを有効にするには、次のいずれかの文を入力します。

ALTER SESSION SET EVENTS 'TRACE[DV] DISK=LOW';

ALTER SESSION SET EVENTS '47998 TRACE NAME CONTEXT FOREVER, LEVEL 1';

- 影響が大きい操作の失敗と成功に対してトレースを有効にするには、次のいずれかの文を入力します。

ALTER SESSION SET EVENTS 'TRACE[DV] DISK=HIGH';

ALTER SESSION SET EVENTS '47998 TRACE NAME CONTEXT FOREVER, LEVEL 3';

- 最も影響が大きいファンクションとPL/SQLコール・スタックを使用する操作の失敗と成功に対してトレースを有効にするには、次のいずれかの文を入力します。

ALTER SESSION SET EVENTS 'TRACE[DV] DISK=HIGHEST';

ALTER SESSION SET EVENTS '47998 TRACE NAME CONTEXT FOREVER, LEVEL 4';

すべてのデータベース・セッションに対するトレース・イベントの有効化

1. DV_ADMINロールおよびALTER SYSTEMシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。
次に例を示します。

sqlplus lbrown_dvowner
Enter password: password
Connected.

2. 「現在のデータベース・セッションに対するトレース・イベントの有効化」の手順2に示されている構文を使用して、ALTER SYSTEM SET EVENTS SQL文を入力します。
次に例を示します。

ALTER SYSTEM SET EVENTS 'TRACE[DV] DISK=LOW';

3. データベースを再起動します。
次に例を示します。

SHUTDOWN IMMEDIATE
STARTUP

すべてのデータベース・セッションに対してトレース・イベントを有効にするには、init.oraファイルに次の行を追加してデータベースを再起動する方法もあります。

event="47998 trace name context forever, level [trace_level]"

trace_levelを、次のいずれかの値に置き換えます。

- 1: 最低レベルのトレース

- 3: 高レベルのトレース

- 4: 最高レベルのトレース

次に例を示します。

event="47998 trace name context forever, level [1]"

Oracle Database Vaultトレース・ファイル・データの検索

この項の内容は次のとおりです。

- Database Vaultトレース・ファイルのディレクトリの場所の検索

- Linuxのgrepコマンドを使用してトレース・ファイルから文字列を検索

- ADRコマンド・インタプリタ(ADRCI)ユーティリティを使用してトレース・ファイルを問合せ

Database Vaultトレース・ファイルのディレクトリの場所の検索

トレース・ファイルのディレクトリの完全な場所は、V$DIAG_INFO動的ビューを問い合せて検索することができます。

次に例を示します。

SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File';

VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_7174.trc

Linuxのgrepコマンドを使用してトレース・ファイルから文字列を検索

トレース・ファイルの問合せ、または処理を行うとき、Linuxのgrepコマンドを使用して文字列を検索することができます。たとえば、レルム認可の失敗を表示するトレース・ファイルを検索するには、次のコマンドを入力します。

grep 'Result=Realm Authorization Failed'  *.trc

ADRコマンド・インタプリタ(ADRCI)ユーティリティを使用してトレース・ファイルを問合せ

トレース・ファイルを問い合せるには、ADRコマンド・インタプリタ(ADRCI)というコマンドライン・ユーティリティを使用する方法もあります。たとえば、ADRCIを使用してトレース・ファイルを検索するには、SHOW TRACEFILEコマンドを入力します。

adrci --To start ACRCI from the command line
adrci> show tracefile

diag/rdbms/orcl/orcl/trace/orcl_m002_14551.trc
diag/rdbms/orcl/orcl/trace/orcl_tmon_13450.trc
diag/rdbms/orcl/orcl/trace/orcl_vktm_963.trc
diag/rdbms/orcl/orcl/trace/alert_orcl.log
...

すべてのトレース・インシデントの数を検索するには、次のようにします。

adrci> show incident

ADR Home = /u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl:
*************************************************************************
234 rows fetched

次のADRCIコマンドは、名前にoraという語が含まれているすべてのトレース・ファイルのリストを返します。

adrci> show tracefile %ora%

/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_18841.trc
/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_12017.trc
/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_19372.trc
/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_12221.trc
/u01/app/oracle/product/11.2.0.4/log/diag/rdbms/orcl/orcl/trace/orcl_ora_1600.trc
...

次のADRCIコマンドは、Realm Authorization Failedというフレーズを含むトレース・ファイルを検索します。

adrci> show trace %trc -xp "[payload like '%Realm Authorization Failed%']"

関連項目:

- ADRCIユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください

- ADRCIユーティリティでのレポートの表示については、『Oracle Database管理者ガイド』を参照してください

Oracle Database Vaultトレース・ファイルの例

この項では、低、高、最高の3つのレベルすべてについてトレース・ファイルの例を示します。

例E-1は、低レベルのレルム違反を示すトレース・ファイル・データです。

例E-1 低レベルのOracle Database Vaultレルム違反を示すトレース・ファイル

*** 2010-02-05 18:35:31.438
*** SESSION ID:(34.559) 2010-02-05 18:35:31.438
*** CLIENT ID:() 2010-02-05 18:35:31.438
*** SERVICE NAME:(SYS$USERS) 2010-02-05 18:35:31.438
*** MODULE NAME:(SQL*Plus) 2010-02-05 18:35:31.438
*** ACTION NAME:() 2010-02-05 18:35:31.438

Result=Realm Authorization Failed
Realm_Name=realm 3      Required_Auth_Level=0
Current_User=116
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=INSERT INTO U1.T1 VALUES(30)

Result=Realm Authorization Failed
Realm_Name=realm 3      Required_Auth_Level=0
Current_User=116
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=DELETE FROM U1.T1

Result=Realm Authorization Failed
Realm_Name=realm 3      Required_Auth_Level=0
Current_User=116
Object_Owner=U1 Object_Name=T3  Object_Type=TABLE
SQL_Text=CREATE TABLE U1.T3(C INT)

*** 2010-02-05 18:35:34.465

Result=Realm Authorization Failed
Realm_Name=realm 3      Required_Auth_Level=0
Current_User=116
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=INSERT INTO U1.T1 VALUES(30)

Result=Realm Authorization Failed
Realm_Name=realm 3      Required_Auth_Level=0
Current_User=116
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=DELETE FROM U1.T1

例E-2は、高レベルのトレースを有効にしたときのトレース・ファイルで示されたDatabase Vault権限です。

例E-2 高レベルのトレースを有効にしたOracle Database Vault権限

Result= Realm Authorization Passed
Reason=Current user is the object owner
Current_User=70 Command=SELECT
Object_Owner=LBACSYS    Object_Name=LBAC$AUDIT  Object_Type=TABLE

Result= Realm Authorization Passed
Reason=Current user is the object owner
Current_User=70 Command=SELECT
Object_Owner=LBACSYS    Object_Name=LBAC$AUDIT  Object_Type=TABLE

Result= Realm Authorization Passed
Reason=Current user is the object owner
Current_User=70 Command=SELECT
Object_Owner=LBACSYS    Object_Name=LBAC$POL    Object_Type=TABLE

Result= Realm Authorization Passed
Reason=Current user is the object owner
Current_User=70 Command=SELECT
Object_Owner=LBACSYS    Object_Name=LBAC$USER_LOGON     Object_Type=VIEW

……

Result= Realm Authorization Passed
Reason=Current user is the object owner
Current_User=70 Command=SELECT
Object_Owner=LBACSYS    Object_Name=LBAC$POL    Object_Type=TABLE

Result=Set Factor Value
Factor_Name=Sensitive_Treatments        Factor_Expression=/SURGERY/PSYCHOLOGICAL

Result=Set Factor Value
Factor_Name=Database_Instance   Factor_Expression=UPPER(SYS_CONTEXT('USERENV','INSTANCE'))      Factor_Value=1

Result=Set Factor Value
Factor_Name=Client_IP   Factor_Expression=UPPER(SYS_CONTEXT('USERENV','IP_ADDRESS'))    Factor_Value=

Result=Set Factor Value
Factor_Name=Authentication_Method       Factor_Expression=UPPER(SYS_CONTEXT('USERENV','AUTHENTICATION_METHOD')) Factor_Value=PASSWORD
……

*** ACTION NAME:() 2010-02-05 18:47:19.540

Result=Rule Set Evaluation Failed
Command=SELECT  RuleSet_ID=2    RuleSet_Name=Disabled
Current_User=SYSTEM
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=SELECT * FROM U1.T1

Result=Rule Set Evaluation Succeeded
Command=SELECT  RuleSet_ID=1    RuleSet_Name=Enabled
Current_User=SYSTEM
Object_Owner=U1 Object_Name=T1  Object_Type=TABLE
SQL_Text=SELECT * FROM U1.T1

例E-3では、最高レベルのトレースを有効にしたときのトレース・ファイルでOracle Schedulerのジョブ認可に関連する最高レベルの違反が示されています。

例E-3 レルム保護されたオブジェクトに対する違反の最高レベルのトレース

------ Call Stack Trace ------
kzvdvechk<-kzvdveqau<-kksfbc<-opiexe<-kpoal8<-opiodr<-ttcpip<-opitsk<-opiino<-opiodr<-opidrv<-sou2o<-opimai_real<-ssthrdmain<-main<-__libc_start_main<-_start

Result=Object Privilege check passed
Current_User=INVOKER2   Used_Role=1
Object_Owner=SYSTEM     Object_Name=PRODUCT_PRIVS       Object_Type=VIEW
SQL_Text=SELECT CHAR_VALUE FROM SYSTEM.PRODUCT_PRIVS WHERE (UPPER('SQL*PLUS') LIKE UPPER(PRODUCT)) AND ((USER LIKE USERID) OR (USERID = 'PUBLIC')) AND (UPPER(ATTRIBUTE) = 'ROLES')
*** MODULE NAME:(SQL*Plus) 2010-02-05 18:57:53.973
*** ACTION NAME:() 2010-02-05 18:57:53.973

----- Current SQL Statement for this session (sql_id=2sr63rjm45yfh) -----
UPDATE INVOKER1.T1 SET A = 20
----- PL/SQL Stack -----
----- PL/SQL Call Stack -----
object      line  object
handle    number  name
0x26a00e34         1  anonymous block
0x2495b000       185  package body SYS.DBMS_ISCHED
0x24958fb8       486  package body SYS.DBMS_SCHEDULER
0x247bbb34         1  anonymous block

------ Call Stack Trace ------
kzvdvechk<-kzvdveqau<-kksfbc<-opiexe<-opipls<-opiodr<-__PGOSF151_rpidrus<-skgmstack<-rpidru<-rpiswu2<-rpidrv<-psddr0<-psdnal<-pevm_EXECC<-pfrinstr_EXECC<-pfrrun_no_tool<-pfrrun<-plsql_run<-peicnt<-kkxexe<-opiexe<-kpoal8<-opiodr<-kpoodr<-upirtrc<-kpurcsc<-kpuexec
<-OCIStmtExecute<-jslvec_execcb<-jslvswu<-jslve_execute0<-jskaJobRun<-jsiRunJob<-jsaRunJob<-spefcmpa<-spefmccallstd<-pextproc<-__PGOSF495_peftrusted<-__PGOSF522_psdexsp<-rpiswu2<-psdextp<-pefccal<-pefcal<-pevm_FCAL<-pfrinstr_FCAL<-pfrrun_no_tool<-pfrrun<-plsql_run
<-peicnt<-kkxexe<-opiexe<-kpoal8<-opiodr<-ttcpip<-opitsk<-opiino<-opiodr<-opidrv<-sou2o<-opimai_real<-ssthrdmain<-main<-__libc_start_main<-_start

Result=Realm Authorization Succeeded
Realm_Name=jobowner realm       Used_Auth_Level=0
Current_User=119
Object_Owner=INVOKER1   Object_Name=T1  Object_Type=TABLE
SQL_Text=UPDATE INVOKER1.T1 SET A = 20

Result=Scheduler Job Authorization Succeeded
Current_User=JOBOWNER   Logon_User=INVOKER2
Job_Owner=JOBOWNER      Job_Name=DMLJOB1
Object_Owner=INVOKER1   Object_Name=T1  Object_Type=TABLE
SQL_Text=UPDATE INVOKER1.T1 SET A = 20

Oracle Database Vaultトレース・イベントの無効化

この項の内容は次のとおりです。

- 現在のデータベース・セッションに対するトレース・イベントの無効化

- すべてのデータベース・セッションに対するトレース・イベントの無効化

現在のデータベース・セッションに対するトレース・イベントの無効化

1. DV_ADMINロールおよびALTER SESSIONシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。
次に例を示します。

sqlplus lbrown_dvowner
Enter password: password
Connected.

2. トレースを無効にするには、次のSQL文の両方を入力します。

ALTER SESSION SET EVENTS 'TRACE[DV] OFF';
ALTER SESSION SET EVENTS '47998 trace name context off';

あるいは、ALTER SYSTEM文を使用する方法もあります。

ALTER SYSTEM SET EVENTS 'TRACE[DV] OFF';
ALTER SYSTEM SET EVENTS '47998 trace name context off';

すべてのデータベース・セッションに対するトレース・イベントの無効化

1. DV_ADMINロールおよびALTER SYSTEMシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。
次に例を示します。

sqlplus lbrown_dvowner
Enter password: password
Connected.

2. 「現在のデータベース・セッションに対するトレース・イベントの無効化」の手順2に示されている構文を使用して、ALTER SYSTEM SET EVENTS SQL文を入力します。
次に例を示します。

ALTER SYSTEM SET EVENTS 'TRACE[DV] OFF';

3. データベースを再起動します。
次に例を示します。

SHUTDOWN IMMEDIATE
STARTUP

すべてのデータベース・セッションに対してトレース・イベントを無効にするには、init.oraファイルに次の行を追加してデータベースを再起動する方法もあります。

event="47998 trace name context off"

init.oraファイルで、47998行目との競合がないようにしてください。event="47998 trace name context forever, level [1]"などです。

一般的な診断のヒント

レルム、ファクタおよびルール・セットの問題を診断するには、次の一般的なヒントに従ってください。

- レルム保護の場合、コマンドに作用する基礎となるシステム権限またはオブジェクト権限をユーザーが保持している(直接またはロールを介して付与されている)ことを確認します。

- レルム認可が機能しない場合は、アカウントのロールが正しく設定されていることを確認します。

- ファクタおよびルール・セットで使用されるPL/SQL式の場合、これらの式で使用されるPL/SQLパッケージ・ファンクションに対するEXECUTE権限をアカウントに直接付与し、結果が正しいと思われるかどうかを判断します。

- 一般に、監査レポートを使用して問題を診断します。詳細は、「Oracle Database Vaultの監査レポート」を参照してください。

Oracle Database Vaultコンポーネントにかかわる構成の問題

レルム、コマンド・ルール、ファクタ、ルール・セットまたはセキュア・アプリケーション・ロールの構成にかかわる問題が疑われる場合、適切な構成レポートを実行できます。詳細は、次の各項を参照してください。

- 「「コマンド・ルール構成の問題」レポート」

- 「「ファクタ構成の問題」レポート」

- 「「アイデンティティのないファクタ」レポート」

- 「「アイデンティティ構成の問題」レポート」

- 「「レルム認可構成の問題」レポート」

- 「「ルール・セット構成の問題」レポート」

- 「「セキュア・アプリケーション構成の問題」レポート」

これらのレポートの実行方法は、「Oracle Database Vaultレポートの実行方法」を参照してください。

索引
A B C D E F G H I J L M N O P Q R S T U V W X

記号

%ワイルドカード, 18.3

A

アクセス制御ポリシー

ツールとコンポーネントを使用した構成

Oracle Label SecurityのPL/SQL API, 1.2.5

Oracle Policy Manager, 1.2.5

レポート

コアDatabase Vault監査レポート, 18.4.2.5

ランタイムのPL/SQLプロシージャおよびファンクションのアクセス制御, 15.1 「機密オブジェクトへのアクセス」レポート, 18.5.3.2 アクセシビリティ機能, C.4 アカウント

「データベース・アカウント」を参照

「DBAロールを持つアカウント」レポート, 18.5.5.2 「SYSDBA/SYSOPER権限を持つアカウント」レポート, 18.5.3.4 非定型ツール

使用の防止, 7.8.1

管理者

Oracle Database VaultでのDBA操作, 10

異なるタイプの制限, 7.9.1

ADRCIユーティリティ

Database Vault, E.1.6.3

アラート

ルール・セットでの電子メール・アラート, 5.8.1

Enterprise Manager Database Control, 10.1.3

ALTER DATABASE文

監視, 17.2

ALTER ROLE文

監視, 17.3.1

ALTER SESSION権限

トレース・ファイルの有効化, E.1.5

レポート, ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

ALTER SESSION文

権限の管理のガイドライン, D.6.6

ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5 ALTER SYSTEM権限

レポート, ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

ALTER SYSTEM文

コマンド・ルールを使用した制御, 6.1

権限の管理のガイドライン, D.6.6

ALTER TABLE文

監視, 17.2

ALTER USER文

監視, 17.3.1

ANY権限, 11.2.12 「データベース・アカウントのANYシステム権限」レポート, 18.5.2.4 API

「DBMS_MACADMパッケージ」、「DBMS_MACSEC_ROLESパッケージ」、「DBMS_MACUTLパッケージ」を参照

障害支援技術, C.4 AUD$表

「SYS.AUD$表」を参照

監査ポリシーの変更

監視, 17.3.1

AUDIT権限, 18.5.5.10 「AUDIT権限」レポート, 18.5.5.10 AUDIT_SYS_OPERATIONS初期化パラメータ, 2.1 AUDIT_TRAIL初期化パラメータ

コア・データベース監査レポートへの影響, 18.5.8

AUDIT_TRAIL$システム表

AUDIT_TRAIL初期化パラメータによる影響, A.1.2

アーカイブ, A.2

書式, A.1.2

パージ, A.2

監査

Database Vault監査証跡のアーカイブ, A.2

コア・データベース監査レポート, 18.5.8

DBMS_MACUTLフィールド, 14.2.1

ファクタ

オプション, 7.3

侵入者

ファクタの使用, 7.3

ルール・セットの使用, 5.3

Oracle Database監査設定, A.3 Database Vault監査証跡のパージ, A.2 レルム

DBMS_MACUTLフィールド, 14.2.1

オプション, 4.3

レポート, 18.4.2 ルール・セット

DBMS_MACUTLフィールド, 14.2.1

オプション, 5.3

セキュア・アプリケーション・ロール

監査レコード, 8.8

監査イベントに使用するビュー, 16.2 監査ポリシー

概要, A

監査イベント

概要, A.1.1

カスタム・イベント

監査証跡, A.1.2

追跡するイベント, A.1.1 変更の監視, 17.3.1 認証

Authentication_Methodデフォルト・ファクタ, 7.2

コマンド・ルール, 6.1

メソッド, DVF.F$AUTHENTICATION_METHODによる検出, 15.2.1

レルム・プロシージャ, 12.2

認可

Oracle Data Pumpアクティビティ, 10.2.1

レルム, 4.6

データベース・ジョブのスケジュール, 10.3.1

B

BECOME USERレポート, 18.5.5.4

BECOME USERシステム権限

概要, 18.5.5.4

C

カタログベースのロール, 18.5.5.9

子ファクタ

「ファクタ」を参照

クライアント

DVF.F$CLIENT_IPによるIPアドレスの検出, 15.2.2

コード・グループ

DBMS_MACUTLのファンクションを使用した値の取得, 14.3

「コマンド・ルールの監査」レポート, 18.4.2.2 「コマンド・ルール構成の問題」レポート, 18.4.1.1 コマンド・ルール

概要, 6.1

作成, 6.4

データ・ディクショナリ・ビュー, 6.10

データ・マスキング, 10.8.4

デフォルトのコマンド・ルール, 6.2

Database Vault Administratorでデフォルトのコマンド・ルールが表示されない, C.1

削除, 6.5

編集, 6.4

ファンクション

DBMS_MACUTL(ユーティリティ), 14.1

ガイドライン, 6.8 コマンド・ルールの動作, 6.6 オブジェクト

名前, 6.4

所有者, 6.4

パフォーマンスへの影響, 6.9 プロシージャ

DBMS_MACADM (構成), 12.4

処理フロー, 6.6 ポリシーの他のデータベースへの伝播, 10.1.2 レポート, 6.10 トラブルシューティング

監査レポート, 18.4.2.2

チュートリアル, 6.7.1 表示, 6.10, 16.3 「ルール・セット」も参照

選択, 6.4

併用, 6.1

法令順守

Oracle Database Vaultの対応, 1.3

コンピュータ名

DVF.F$MACHINEによる検出, 15.2.13

Machineデフォルト・ファクタ, 7.2

構成

変更の監視, 17.3.1

「DBMS_MACADMパッケージ」も参照

CONNECTイベント, コマンド・ルールを使用した制御, 6.1 コア・データベース

コアDatabase Vault監査レポートのトラブルシューティング, 18.4.2.5

コア・データベース監査レポート, 18.5.8 「コアDatabase Vault監査証跡」レポート, 18.4.2.5 CPU_PER_SESSIONリソース・プロファイル, 18.5.6.2 CREATE ANY JOB権限, D.6.3 CREATE ANY JOB文

権限の管理のガイドライン, D.6.3

CREATE EXTERNAL JOB権限, D.6.4 CREATE JOB権限, D.6.3 CREATE JOB文

権限の管理のガイドライン, D.6.3

CREATE ROLE文

監視, 17.3.1

CREATE TABLE文

監視, 17.2

CREATE USER文

監視, 17.3.1

D

データ定義言語(DDL)

文

コマンド・ルールを使用した制御, 6.1

データ・ディクショナリ

DV_ACCTMGRロールのレルムへの追加, 3.3.2

データ・ディクショナリ・レルム

データ・マスキング, 10.8.2

データ操作言語(DML)

文

DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWEDファンクションによるチェック, 14.3

コマンド・ルールを使用した制御, 6.1

データ・マスキング

概要, 10.8.1

レルムへのユーザーの追加, 10.8.3

コマンド・ルールの作成, 10.8.4

考えられるエラー, 10.8.1

Oracle Database Vaultが認識するデータ

「ファクタ」を参照

データ・ポンプ

「Oracle Data Pump」を参照

「データベース・アカウントのデフォルト・パスワード」レポート, 18.5.7.1 「データベース・アカウントのステータス」レポート, 18.5.7.2 データベース・アカウント

権限のカウント, 18.5.4.1

DBSNMP

パスワードの変更, 10.1.5

DV_MONITORロールへの付与, 11.2.4

レルム, 4.2

DVSYS, 11.3 LBACSYS, 11.3 監視, 17.3.1 レポート

「DBAロールを持つアカウント」レポート, 18.5.5.2

ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

「データベース・アカウントのANYシステム権限」レポート, 18.5.2.4

「AUDIT権限」レポート, 18.5.5.10

BECOME USERレポート, 18.5.5.4

「データベース・アカウントのデフォルト・パスワード」レポート, 18.5.7.1

「データベース・アカウントのステータス」レポート, 18.5.7.2

「カタログ・ロールを持つデータベース・アカウント」レポート, 18.5.5.9

「データベース・アカウントごとの直接および間接システム権限」レポート, 18.5.2.2

「直接オブジェクト権限」レポート, 18.5.1.3

「データベース・アカウントごとの直接システム権限」レポート, 18.5.2.1

「データベース・アカウントごとの階層システム権限」レポート, 18.5.2.3

「PUBLICでのオブジェクト・アクセス」レポート, 18.5.1.1

「PUBLIC以外でのオブジェクト・アクセス」レポート, 18.5.1.2

OSセキュリティ脆弱性に関する権限, 18.5.5.11

「パスワード履歴へのアクセス」レポート, 18.5.5.6

「権限受領者ごとの権限の配布」レポート, 18.5.4.1, 18.5.4.1, 18.5.4.1

「権限受領者、所有者ごとの権限の配布」レポート, 18.5.4.2, 18.5.4.2

「権限受領者、所有者、権限ごとの権限の配布」レポート, 18.5.4.3, 18.5.4.3

「指定されたロールを持つロールとアカウント」レポート, 18.5.5.8

「セキュリティ・ポリシー除外」レポート, 18.5.5.3

「WITH ADMIN権限の付与」レポート, 18.5.5.1

WITH GRANT権限レポート, 18.5.5.7

ロックアウトの解決方法, B.1 推奨, 11.3 SYSMAN

レルム, 4.2

「カタログ・ロールを持つデータベース・アカウント」レポート, 18.5.5.9 データベース管理操作, 10 データベース構成

変更の監視, 17.2

Database Configuration Assistant(DBCA)

Oracle Database Vault, 3.1

データベース定義言語(DDL)

文

コマンド・ルールを使用した制御, 6.1

データベースのドメイン, Database_Domainデフォルト・ファクタ, 7.2 データベース・オブジェクト

Oracle Database Vault, 11, 16.22

レポート

「オブジェクトの依存性」レポート, 18.5.1.4

「オブジェクト」も参照 データベース・オプション, インストール, B.1 データベース・ロール

概要, 11.2.1

権限のカウント, 18.5.4.1

デフォルトのOracle Database Vault, 11.2.1

DV_ACCTMGR

概要, 11.2.12

データ・ディクショナリ・レルムへの追加, 3.3.2

DV_ADMIN, 11.2.3 DV_AUDIT_CLEANUP, 11.2.6 DV_GOLDENGATE_ADMIN, 11.2.9 DV_GOLDENGATE_REDO_ACCESS, 11.2.10 DV_MONITOR, 11.2.4 DV_OWNER, 11.2.2 DV_PATCH_ADMIN, 11.2.11 DV_PUBLIC, 11.2.15 DV_REALM_OWNER, 11.2.13 DV_REALM_RESOURCE, 11.2.14 DV_SECANALYST, 11.2.5 DV_STREAMS_ADMIN, 11.2.7 DV_XSTREAM_ADMIN, 11.2.8 有効化, DVSYS.ROLE_IS_ENABLEDを使用して決定, 15.1.5 監視, 17.3.1 Oracle Database Vault, デフォルト, 11.2.1 レポート

「DBAロールを持つアカウント」レポート, 18.5.5.2

ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

「AUDIT権限」レポート, 18.5.5.10

BECOME USERレポート, 18.5.5.4

「カタログ・ロールを持つデータベース・アカウント」レポート, 18.5.5.9

OSセキュリティ脆弱性に関する権限, 18.5.5.11

「権限受領者ごとの権限の配布」レポート, 18.5.4.1

「指定されたロールを持つロールとアカウント」レポート, 18.5.5.8

「セキュリティ・ポリシー除外」レポート, 18.5.5.3

「WITH ADMIN権限の付与」レポート, 18.5.5.1

職務分離の実施, 2.3 データベース・セッション, 7.3

「セッションを許可」デフォルト・ルール・セットを使用した制御, 5.2

ファクタ検証, 7.7.1

セッション・ユーザー名, Proxy_Userデフォルト・ファクタ, 7.2

Database Vault

「Oracle Database Vault」を参照

Database Vaultアカウント管理レルム

SYSアクセス, 4.2

Database Vault Administrator

Oracle Enterprise Managerなしでのログオン, 10.1.1

データベース

dbconsole

プロセスの確認, 3.2.2

プロセスの起動, 3.2.2

ファクタを使用した定義, 7.1 ドメイン, Domainデフォルト・ファクタ, 7.2 イベントの監視, E.1.1 グループ化されたスキーマ

「レルム」を参照

ホスト名, Database_Hostnameデフォルト・ファクタ, 7.2 インスタンス, ファンクションを使用した情報の取得, 12.5 インスタンス

Database_Instanceデフォルト・ファクタ, 7.2

複数のインスタンスの管理, 3.2.2

名前, DVF.F$DATABASE_INSTANCEによる検出, 15.2.5

番号, DVSYS.DV_INSTANCE_NUMによる検出, 15.3.3

IPアドレス

Database_IPデフォルト・ファクタ, 7.2

DVF.F$DATABASE_IPを使用して取得, 15.2.6

ログ・ファイルの場所, 3.2.2 イベントの監視, E.1.1 名前

Database_Nameデフォルト・ファクタ, 7.2

DVF.F$DATABASE_NAMEを使用して取得, 15.2.7

DVSYS.DV_DATABASE_NAMEを使用して取得, 15.3.4

パラメータ

「セキュリティ関連のデータベース・パラメータ」レポート, 18.5.6.1

存在しないロール, 18.4.1.7 スキーマの作成, DVF.F$IDENTIFICATION_TYPEによる検出, 15.2.10 スキーマの作成, Identification_Typeデフォルト・ファクタ, 7.2 構造的な変更, 監視, 17.2 ユーザー名, Session_Userデフォルト・ファクタ, 7.2 DBAロール

Oracle Database Vaultインストールの影響, 2.4

DBA_DV_COMMAND_RULEビュー, 6.10 DBA_USERS_WITH_DEFPWDデータ・ディクショナリ・ビュー

Oracle Database Vaultでのアクセス, 2.4

dbconsoleプロセス

ステータスの確認, 3.2.2

起動, 3.2.2

DBMS_FILE_TRANSFERパッケージ, 管理のガイドライン, D.6.1 DBMS_MACADMパッケージ

概要, 12.1

コマンド・ルール・プロシージャ, リスト, 12.4

ファクタ・プロシージャ, リスト, 12.5

Oracle Label Securityポリシー・プロシージャ, リスト, 12.7

レルム・プロシージャ, リスト, 12.2

ルール・セット・プロシージャ, リスト, 12.3

セキュア・アプリケーション・ロール・プロシージャ, リスト, 12.6

DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャ, 12.2.1 DBMS_MACADM.ADD_FACTOR_LINKプロシージャ, 12.5.1 DBMS_MACADM.ADD_NLS_DATA

プロシージャ, C.6

DBMS_MACADM.ADD_NLS_DATAプロシージャ, 12.8.1 DBMS_MACADM.ADD_OBJECT_TO_REALMプロシージャ, 12.2.2 DBMS_MACADM.ADD_POLICY_FACTORプロシージャ, 12.5.2 DBMS_MACADM.ADD_RULE_TO_RULE_SETプロシージャ, 12.3.1 DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャ, 12.8.2, 12.8.4 DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャ, 12.8.3 DBMS_MACADM.CHANGE_IDENTITY_FACTORプロシージャ, 12.5.3 DBMS_MACADM.CHANGE_IDENTITY_VALUEプロシージャ, 12.5.4 DBMS_MACADM.CREATE_COMMAND_RULEプロシージャ, 12.4.1 DBMS_MACADM.CREATE_DOMAIN_IDENTITYプロシージャ, 12.5.5 DBMS_MACADM.CREATE_FACTORプロシージャ, 12.5.6 DBMS_MACADM.CREATE_FACTOR_TYPEプロシージャ, 12.5.7 DBMS_MACADM.CREATE_IDENTITYプロシージャ, 12.5.8 DBMS_MACADM.CREATE_IDENTITY_MAPプロシージャ, 12.5.9 DBMS_MACADM.CREATE_MAC_POLICYプロシージャ, 12.7.1 DBMS_MACADM.CREATE_POLICY_LABELプロシージャ, 12.7.2 DBMS_MACADM.CREATE_REALMプロシージャ, 12.2.3 DBMS_MACADM.CREATE_ROLEプロシージャ, 12.6.1 DBMS_MACADM.CREATE_RULEプロシージャ, 12.3.2 DBMS_MACADM.CREATE_RULE_SETプロシージャ, 12.3.3 DBMS_MACADM.DELETE_AUTH_FROM_REALMプロシージャ, 12.2.4 DBMS_MACADM.DELETE_COMMAND_RULEプロシージャ, 12.4.2 DBMS_MACADM.DELETE_FACTORプロシージャ, 12.5.10 DBMS_MACADM.DELETE_FACTOR_LINKプロシージャ, 12.5.11 DBMS_MACADM.DELETE_FACTOR_TYPEプロシージャ, 12.5.12 DBMS_MACADM.DELETE_IDENTITYプロシージャ, 12.5.13 DBMS_MACADM.DELETE_IDENTITY_MAPプロシージャ, 12.5.14 DBMS_MACADM.DELETE_MAC_POLICY_CASCADEプロシージャ, 12.7.3 DBMS_MACADM.DELETE_OBJECT_FROM_REALMプロシージャ, 12.2.5 DBMS_MACADM.DELETE_POLICY_FACTORプロシージャ, 12.7.4 DBMS_MACADM.DELETE_POLICY_LABELプロシージャ, 12.7.5 DBMS_MACADM.DELETE_REALMプロシージャ, 12.2.6 DBMS_MACADM.DELETE_REALM_CASCADEプロシージャ, 12.2.7 DBMS_MACADM.DELETE_ROLEプロシージャ, 12.6.2 DBMS_MACADM.DELETE_RULEプロシージャ, 12.3.4 DBMS_MACADM.DELETE_RULE_FROM_RULE_SETプロシージャ, 12.3.5 DBMS_MACADM.DELETE_RULE_SETプロシージャ, 12.3.6 DBMS_MACADM.DROP_DOMAIN_IDENTITYプロシージャ, 12.5.15 DBMS_MACADM.GET_INSTANCE_INFOファンクション, 12.5.16 DBMS_MACADM.GET_SESSION_INFOファンクション, 12.5.17 DBMS_MACADM.RENAME_FACTORプロシージャ, 12.5.18 DBMS_MACADM.RENAME_FACTOR_TYPEプロシージャ, 12.5.19 DBMS_MACADM.RENAME_REALMプロシージャ, 12.2.8 DBMS_MACADM.RENAME_ROLEプロシージャ, 12.6.3 DBMS_MACADM.RENAME_RULEプロシージャ, 12.3.7 DBMS_MACADM.RENAME_RULE_SETプロシージャ, 12.3.8 DBMS_MACADM.SYNC_RULESプロシージャ, 12.3.9 DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERプロシージャ, 12.8.5 DBMS_MACADM.UPDATE_COMMAND_RULEプロシージャ, 12.4.3 DBMS_MACADM.UPDATE_FACTORプロシージャ, 12.5.20 DBMS_MACADM.UPDATE_FACTOR_TYPEプロシージャ, 12.5.21 DBMS_MACADM.UPDATE_IDENTITYプロシージャ, 12.5.22 DBMS_MACADM.UPDATE_MAC_POLICYプロシージャ, 12.7.6 DBMS_MACADM.UPDATE_REALMプロシージャ, 12.2.9 DBMS_MACADM.UPDATE_REALM_AUTHプロシージャ, 12.2.10 DBMS_MACADM.UPDATE_ROLEプロシージャ, 12.6.4 DBMS_MACADM.UPDATE_RULEプロシージャ, 12.3.10 DBMS_MACADM.UPDATE_RULE_SETプロシージャ, 12.3.11 DBMS_MACSEC_ROLESパッケージ

概要, 13.1

ファンクション, リスト, 13.1

DBMS_MACSEC_ROLES.CAN_SET_ROLEファンクション, 13.2 DBMS_MACSEC_ROLES.SET_ROLEプロシージャ, 13.3 DBMS_MACUTLパッケージ

概要, 14.1

定数(フィールド)

例, 14.2.2

リスト, 14.2.1

プロシージャおよびファンクション, リスト, 14.3 DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWEDプロシージャ, 14.3.1 DBMS_MACUTL.GET_CODE_VALUEファンクション, 14.3.2 DBMS_MACUTL.GET_DAYファンクション, 14.3.6 DBMS_MACUTL.GET_HOURファンクション, 14.3.5 DBMS_MACUTL.GET_MINUTEファンクション, 14.3.4 DBMS_MACUTL.GET_MONTHファンクション, 14.3.7 DBMS_MACUTL.GET_SECONDファンクション, 14.3.3 DBMS_MACUTL.GET_YEARファンクション, 14.3.8 DBMS_MACUTL.IS_ALPHAファンクション, 14.3.9 DBMS_MACUTL.IS_DIGITファンクション, 14.3.10 DBMS_MACUTL.IS_DVSYS_OWNERファンクション, 14.3.11 DBMS_MACUTL.IS_OLS_INSTALLEDファンクション, 14.3.12 DBMS_MACUTL.IS_OLS_INSTALLED_VARCHARファンクション, 14.3.13 DBMS_MACUTL.USER_HAS_ROLEファンクション, 14.3.14 DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクション, 14.3.15 DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクション, 14.3.16 DBMS_RLS PL/SQLパッケージ

SYSによるEXECUTEの付与および取消し, Preface

DBSNMPユーザー・アカウント

パスワードの変更, 10.1.5

DV_MONITORロールへの付与, 11.2.4

レルム, 4.2

Oracle Database Vaultのアンインストール, C.7 DELETE_CATALOG_ROLEロール, 18.5.5.9 DoS攻撃

レポート

「システム・リソース制限」レポート, 18.5.6.3

「表領域割当て制限」レポート, 18.5.9.6

「データベース・アカウントごとの直接および間接システム権限」レポート, 18.5.2.2 「直接オブジェクト権限」レポート, 18.5.1.3 直接システム権限, 18.5.2.3 「データベース・アカウントごとの直接システム権限」レポート, 18.5.2.1 「無効」デフォルト・ルール・セットを使用したシステム機能の無効化, 5.2 ドメイン

ファクタを使用した定義, 7.1

DVF.F$DATABASE_DOMAINによるデータベースのドメインの検出, 15.2.3

DVF.F$DOMAINによる検出, 15.2.8

DROP ROLE文

監視, 17.3.1

DROP TABLE文

監視, 17.2

DROP USER文

監視, 17.3.1

デュアル・キー接続, デュアル・キー・セキュリティ

「二人制整合性(TPI)」を参照

DV_ACCTMGRロール

概要, 11.2.12

データ・ディクショナリ・レルムへの追加, 3.3.2

DV_ADMINロール

概要, 11.2.3

DV_ADMINを付与されたユーザーのパスワードの変更, 11.2.3

DV_AUDIT_CLEANUPロール

概要, 11.2.6

DV_AUDIT_CLEANUPを付与されたユーザーのパスワードの変更, 11.2.6

Database Vaultが無効の場合, 11.2.6

GRANTおよびREVOKE操作が受ける影響, 11.2.6

関連付けられている権限, 11.2.6

DV_GOLDENGATE_ADMINロール, 11.2.9 DV_GOLDENGATE_REDO_ACCESSロール, 11.2.10 DV_MONITORロール, 11.2.4 DV_OWNERロール

概要, 11.2.2

DV_OWNERを付与されたユーザーのパスワードの変更, 11.2.2

DV_PATCH_ADMINロール, 11.2.11

関連付けられている権限, 11.2.11

DV_PUBLICロール, 11.2.15 DV_REALM_OWNERロール, 11.2.13 DV_REALM_RESOURCEロール, 11.2.14 DV_SECANALYSTロール

概要, 11.2.5

DV_SECANALYSTを付与されたユーザーのパスワードの変更, 11.2.5

DV_STREAMS_ADMINロール, 11.2.7 DV_XSTREAM_ADMINロール, 11.2.8 DVA

「Oracle Database Vault Administrator」を参照

DVFアカウント

監査ポリシー, A.3

データベース・アカウント, 11.3

DVFスキーマ, 15.2

概要, 11.1.2

監査ポリシー, A.3

DVSYSアカウント, 11.3

監査ポリシー, A.3

DVSYSスキーマ

概要, 11.1.1

監査ポリシー, A.3

コマンド・ルール, 6.4

DV_OWNERロール, 11.2.2

ファクタの検証メソッド, 7.3

DVSYS.DBA_DV_CODEビュー, 16.2 DVSYS.DBA_DV_COMMAND_RULEビュー, 16.3 DVSYS.DBA_DV_DATAPUMP_AUTHビュー, 16.4 DVSYS.DBA_DV_FACTORビュー, 16.5 DVSYS.DBA_DV_FACTOR_LINKビュー, 16.6 DVSYS.DBA_DV_FACTOR_TYPEビュー, 16.7 DVSYS.DBA_DV_IDENTITYビュー, 16.8 DVSYS.DBA_DV_IDENTITY_MAPビュー, 16.9 DVSYS.DBA_DV_MAC_POLICYビュー, 16.10 DVSYS.DBA_DV_MAC_POLICY_FACTORビュー, 16.11 DVSYS.DBA_DV_POLICY_LABELビュー, 16.12 DVSYS.DBA_DV_PUB_PRIVSビュー, 16.13 DVSYS.DBA_DV_REALMビュー, 16.14 DVSYS.DBA_DV_REALM_AUTHビュー, 16.15 DVSYS.DBA_DV_REALM_OBJECTビュー, 16.16 DVSYS.DBA_DV_ROLEビュー, 16.17 DVSYS.DBA_DV_RULEビュー, 16.18 DVSYS.DBA_DV_RULE_SETビュー, 16.19 DVSYS.DBA_DV_RULE_SET_RULEビュー, 16.20 DVSYS.DBA_DV_USER_PRIVSビュー, 16.21 DVSYS.DBA_DV_USER_PRIVS_ALLビュー, 16.22

E

ルール・セットでの電子メール・アラート, 5.8.1

「有効」デフォルト・ルール・セットを使用したシステム機能の有効化, 5.2

暗号化された情報, 18.5.9.5

エンタープライズのアイデンティティ, Enterprise_Identityデフォルト・ファクタ, 7.2

Enterprise Manager

「Oracle Enterprise Manager」を参照

エラー

ファクタのエラー・オプション, 7.3

ルール・セットのエラー・オプション, 5.3

イベント・ハンドラ

ルール・セット, 5.3

例

.DBMS_MACUTLの定数, 14.2.2

レルム, 4.12

職務分離マトリクス, D.1.3

トレース・ファイル, E.1.7

「チュートリアル」も参照

「強力なSYSパッケージに対するEXECUTE権限」レポート, 18.5.3.1 EXECUTE_CATALOG_ROLEロール, 18.5.5.9

Oracle Database Vaultインストールの影響, 2.4

EXEMPT ACCESS POLICYシステム権限, 18.5.5.3 データのエクスポート

「Oracle Data Pump」を参照

外部ネットワーク・サービス, ファイングレイン・アクセス

電子メール・アラートを使用した例, 5.8.1

F

「ファクタの監査」レポート, 18.4.2.3

「ファクタ構成の問題」レポート, 18.4.1.2

「アイデンティティのないファクタ」レポート, 18.4.1.3

ファクタ

概要, 7.1

割当て, 7.3

無効なルール・セット, 18.4.1.2

不完全なルール・セット, 18.4.1.2

検証, 7.3

割当て操作, 18.4.2.3 監査イベント, カスタム, A.1.1 監査オプション, 7.3 子ファクタ

概要, 7.3

「ファクタ構成の問題」レポート, 18.4.1.2

マップ, 7.5.3, 7.5.3

作成, 7.3 名前の作成, 7.3 データ・ディクショナリ・ビュー, 7.12 DBMS_MACUTLの定数, 例, 14.2.2 デフォルト・ファクタ, 7.2, 7.2 Database Vault Administratorでデフォルトのファクタが表示されない, C.1 削除, 7.6 ドメイン, DVF.F$DOMAINによる検出, 15.2.8 編集, 7.4 エラー・オプション, 7.3 評価, 7.3 評価操作, 18.4.2.3 ファクタ・タイプ

概要, 7.3

選択, 7.3

ファクタとアイデンティティの組合せのマップ, 7.5.3 機能, 7.7 ファンクション

DBMS_MACUTL(ユーティリティ), 14.1

DBMS_MACUTLの定数(フィールド), 14.2.1

ガイドライン, 7.10 子ファクタを使用した識別, 7.5.3 アイデンティティ

概要, 7.3, 7.5.1

ファクタへの追加, 7.5

割当て, 7.3

構成, 7.5.2

作成, 7.5.2

データ・ディクショナリ・ビュー, 7.12

データベース・セッション, 7.3

削除, 7.5.2

DVSYS.GET_FACTORを使用した決定, 7.3

編集, 7.5.2

エンタープライズ全体のユーザー, 15.2.8

ファクタの識別の動作, 7.3

ラベル, 7.3, 7.5.2

マップ, 概要, 7.5.3

マップ, 識別, 7.3

マップ, 手順, 7.5.3

マップ, チュートリアル, 7.9.1

Oracle Label Securityラベル, 7.3

レポート, 7.12

解決, 7.3

取得メソッド, 7.3

動的に設定, 15.1.1

信頼レベル, 7.3, 7.5.2

Oracle Label Security, 7.3

初期化, コマンド・ルール, 6.1 無効な監査オプション, 18.4.1.2 ラベル, 18.4.1.2 ネーミング規則, 7.3 Oracle Virtual Private Database, ファクタの追加, 9.3 親ファクタ, 7.3 パフォーマンスへの影響, 7.11 プロシージャ

DBMS_MACADM (構成), 12.5

処理フロー, 7.7 ポリシーの他のデータベースへの伝播, 10.1.2 レポート, 7.12 取得, 7.7.2 DVSYS.GET_FACTORを使用して取得, 15.1.2 設定, 7.7.3 DVSYS.SET_FACTORを使用した設定, 15.1.1 トラブルシューティング

監査レポート, 18.4.2.3

構成の問題, E.3

ヒント, E.2

タイプ(ファクタのカテゴリ), 7.3 検証, 7.3 値(アイデンティティ), 7.1 ビュー

DVSYS.DBA_DV_CODE, 16.2

DVSYS.DBA_DV_FACTOR_LINK, 16.6

DVSYS.DBA_DV_FACTOR_TYPE, 16.7

DVSYS.DBA_DV_IDENTITY, 16.8

DVSYS.DBA_DV_IDENTITY_MAP, 16.9

DVSYS.DBA_DV_MAC_POLICY_FACTOR, 16.11

割当て方法, 7.3 ルール・セット

選択, 7.3

併用, 7.1

機能, 新

「新機能」を参照

ファンクション

コマンド・ルール

DBMS_MACUTL(ユーティリティ), 14.1

DVSYSスキーマの有効化, 15.1 ファクタ

DBMS_MACUTL(ユーティリティ), 14.1

Oracle Label Securityポリシー

DBMS_MACADM (構成), 12.7

レルム

DBMS_MACUTL(ユーティリティ), 14.1

ルール・セット

.DBMS_MACADM (構成), 12.3

DBMS_MACUTL(ユーティリティ), 14.1

SQLの検査用のPL/SQLファンクション, 15.3

セキュア・アプリケーション・ロール

DBMS_MACADM (構成), 12.6

DBMS_MACSEC_ROLES (構成), 13.1

.DBMS_MACUTL(ユーティリティ), 14.1

G

一般セキュリティ・レポート, 18.5

GRANT文

監視, 17.3.1

ガイドライン

ALTER SESSION権限, D.6.6

ALTER SYSTEM権限, D.6.6

コマンド・ルール, 6.8

CREATE ANY JOB権限, D.6.3

CREATE EXTERNAL JOB権限, D.6.4

CREATE JOB権限, D.6.3

DBMS_FILE_TRANSFERパッケージ, D.6.1

ファクタ, 7.10

一般セキュリティ, D

LogMinerパッケージ, D.6.5

DV_OWNERおよびDV_ACCTMGRアカウントの管理, 11.3

オペレーティング・システム・アクセス, D.2.4

Oracleソフトウェア所有者, D.4.2

パフォーマンスへの影響, 7.11

レルム, 4.14

リサイクルビン, D.6.2

ルート・アクセス, D.2.4

ルート・ユーザー・アクセス, D.4.1

ルール・セット, 5.10

セキュア・アプリケーション・ロール, 8.3

SYSDBAアクセス, D.4.3

SYSDBA権限, 制限, D.2.3

SYSOPERアクセス, D.4.4

SYSTEMスキーマおよびアプリケーション表, D.2.2

SYSTEMユーザー・アカウント, D.2.1

信頼できるアカウントおよびロール, D.3

本番環境でのDatabase Vaultの使用, D.5

UTL_FILEパッケージ, D.6.1

H

ハッカー

「セキュリティ攻撃」を参照

「データベース・アカウントごとの階層システム権限」レポート, 18.5.2.3 ホスト名

DVF.F$DATABASE_HOSTNAMEによる検出, 15.2.4

I

アイデンティティ

「ファクタ」、「アイデンティティ」を参照

「アイデンティティ構成の問題」レポート, 18.4.1.4 IDLE_TIMEリソース・プロファイル, 18.5.6.2 IMP_FULL_DATABASEロール

Oracle Database Vaultインストールの影響, 2.4

データのインポート

「Oracle Data Pump」を参照

不完全なルール・セット, 18.4.1.2

ロール有効化, 18.4.1.7

初期化パラメータ

「システム・パラメータを許可」デフォルト・ルール・セット, 5.2

インストール後の変更, 2.1

Oracle Database Vaultによる変更, 2.1

レポート, 18.5.6

内部関係者

「侵入者」を参照

インストール

セキュリティの考慮事項, D.6

侵入者

「セキュリティ攻撃」を参照

IPアドレス

Client_IPデフォルト・ファクタ, 7.2

ファクタを使用した定義, 7.1

J

「Javaポリシーの付与」レポート, 18.5.9.1

ジョブ, スケジュール

「データベース・ジョブのスケジュール」を参照

L

「Label Security統合の監査」レポート, 18.4.2.4

ラベル

概要, 7.5.2

「Oracle Label Security」も参照

言語

Oracle Database Vaultへの追加, C.6

Oracle Databaseとオペレーティング・システム間での一致, C.1

DVF.F$LANGによる検出, 15.2.11

DVF.F$LANGUAGEによる検出, 15.2.12

名前

Langデフォルト・ファクタ, 7.2

Languageデフォルト・ファクタ, 7.2

LBACSYSアカウント

概要, 11.3

監査ポリシー, A.3

OLSポリシー要件付きのファクタの統合, 9.4.3

「Oracle Label Security」も参照

LBACSYSスキーマ

監査ポリシー, A.3

ロックアウトされたアカウント, 解決方法, B.1 ログ・ファイル

Database Vaultのログ・ファイル, A.1.2

Oracle Databaseのログの場所, 3.2.2

ログイン

Oracle Database Vault

Oracle Database Vault所有者アカウント, 3.2.2

レポート, コア・データベース監査レポート, 18.5.8 LogMinerパッケージ

ガイドライン, D.6.5

M

Oracle Database Vaultのメンテナンス, B.1

ユーザー・アカウントとプロファイルの管理

「アカウント/プロファイルを保守可能」デフォルト・ルール・セット, 5.2

各自のアカウントでのユーザー・アカウントとプロファイルの管理, 「自分のアカウントを保守可能」デフォルト・ルール・セット, 5.2 アイデンティティのマップ, 7.5.3 監視

アクセシビリティ機能, 有効化, C.4.2

アクティビティ, 17

グラフのテキスト表示, 有効化, C.4.2

My Oracle Support, 7.8.3

概要, はじめに

N

ネーミング規則

ファクタ, 7.3

レルム, 4.3

ルール・セット, 5.3

ルール, 5.5.1

ネットワーク・プロトコル

DVF.F$NETWORK_PROTOCOLによる検出, 15.2.14

ネットワーク・プロトコル, Network_Protocolデフォルト・ファクタ, 7.2 新機能, Preface NOAUDIT文

監視, 17.3.1

「所有者でないオブジェクトのトリガー」レポート, 18.5.9.7 非システム・データベース・アカウント, 18.5.1.3

O

「PUBLICでのオブジェクト・アクセス」レポート, 18.5.1.1

「PUBLIC以外でのオブジェクト・アクセス」レポート, 18.5.1.2

「オブジェクトの依存性」レポート, 18.5.1.4

オブジェクト所有者

存在しない, 18.4.1.1

レポート

「コマンド・ルール構成の問題」レポート, 18.4.1.1

オブジェクト権限レポート, 18.5.1 オブジェクト

コマンド・ルールのオブジェクト

名前, 6.4

所有者, 6.4

処理, 6.6

動的SQLの使用, 18.5.9.3 監視, 17.3.1 オブジェクト名

DVSYS.DV_DICT_OBJ_NAMEによる検出, 15.3.7

オブジェクト所有者

DVSYS.DV_DICT_OBJ_OWNERによる検出, 15.3.6

レルム

オブジェクト名, 4.5

オブジェクト所有者, 4.5

オブジェクト・タイプ, 4.5

登録用のプロシージャ, 12.2

レポート

「機密オブジェクトへのアクセス」レポート, 18.5.3.2

「SYSDBA/SYSOPER権限を持つアカウント」レポート, 18.5.3.4

「直接オブジェクト権限」レポート, 18.5.1.3

「強力なSYSパッケージに対するEXECUTE権限」レポート, 18.5.3.1

「所有者でないオブジェクトのトリガー」レポート, 18.5.9.7

「PUBLICでのオブジェクト・アクセス」レポート, 18.5.1.1

「PUBLIC以外でのオブジェクト・アクセス」レポート, 18.5.1.2

「オブジェクトの依存性」レポート, 18.5.1.4

「動的SQLに依存するオブジェクト」レポート, 18.5.9.3

「OSディレクトリ・オブジェクト」レポート, 18.5.9.2

権限, 18.5.1

「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート, 18.5.3.3

機密, 18.5.3

「権限ごとのシステム権限」レポート, 18.5.2.5

タイプ

DVSYS.DV_DICT_OBJ_TYPEによる検出, 15.3.5

ビュー, DVSYS.DBA_DV_REALM_OBJECT, 16.16 「データベース・オブジェクト」も参照 「動的SQLに依存するオブジェクト」レポート, 18.5.9.3 OEM

「Oracle Enterprise Manager (OEM)」を参照

OLS

「Oracle Label Security」を参照

オペレーティング・システム・アクセス

Database Vaultでの使用のガイドライン, D.2.4

オペレーティング・システム

レポート

「OSディレクトリ・オブジェクト」レポート, 18.5.9.2

「OSセキュリティ脆弱性に関する権限」レポート, 18.5.5.11

脆弱性, 18.5.5.11 ORA-00942エラー, 8.6.7 ORA-01031エラー, 5.3 ORA-01301エラー, 10.8.1 ORA-06512エラー, 5.8.4, 14.3.1 ORA-24247エラー, 5.8.4 ORA-47305エラー, 8.6.7 ORA-47400エラー, 5.8.6, 10.8.1 ORA-47401エラー, 4.10, 10.8.1 ORA-47408エラー, 10.8.1 ORA-47409エラー, 10.8.1 ORA-47920エラー, 14.3.1 Oracle Data Guard

Oracle Database Vaultとの使用, 9

Oracle Data Pump

「Oracle Data Pump操作を許可」ルール・セット, 5.2

Oracle Database Vault監査証跡のアーカイブ, A.2

DVSYS.DBA_DV_DATAPUMP_AUTHビュー, 16.4

認可用のDVSYS.MACADMプロシージャ, 12.8.2

Database Vaultとともに使用する権限の付与, 10.2.2

エクスポートまたはインポートを実行する前のガイドライン, 10.2.3

Database Vaultとともに使用する権限の取消し, 10.2.4

Oracle Database Vaultとの使用, 10.2.1

Oracleデータベース

「データベース」も参照

Oracle Database Vault

概要, 1.1

コンポーネント, 1.2, 1.2.1

アンインストール, C.7

無効化

無効かどうかのチェック, B.2

手順, B

理由, B.1

有効化

有効かどうかのチェック, B.2

手順, B

よくある質問, 1.1 その他のOracle製品との統合, 9 メンテナンス, B.1 Oracle Databaseインストール, 影響, 2 インストール後の手順, C 登録, 3.1 再インストール, C.8 Oracle Database Vault Administrator

起動, 3.2

Oracle Enterprise Managerなしでの起動, 3.2.2

Oracle Database Vault Administrator(DVA)

アクセシビリティ機能, 有効化, C.4

アクセシビリティ・モード, C.4.1

Database Controlからアクセスするためのユーザーの構成, 3.2.1.3

手動デプロイ

データベース・コンソールOC4Jコンテナ, C.2.2

スタンドアロンOC4Jコンテナ, C.2.1

Oracle Enterprise Manager Database Controlからのログイン, 3.2.1.3 ログオン, 3.2 Oracle Enterprise Manager Grid Controlからのログオン, 3.2.1.2 Oracle Enterprise Managerなしでのログオン, 3.2.2 グラフのテキスト表示, C.4.2 タイムアウトの値, C.3 Oracle Database Vault所有者アカウント

ログイン例, 3.2.2

Oracle Enterprise Manager

DBSNMPアカウント

パスワードの変更, 10.1.5

DV_MONITORロールへの付与, 11.2.4

レルム, 4.2

使用するデフォルトのレルム, 4.2 パフォーマンス・ツール, 4.15 Database Vault AdministratorのURLの設定, 10.1.1 SYSMANアカウント

レルム, 4.2

Oracle Database Vaultとの使用, 10.1 Oracle Enterprise Manager Database Control

Database Vault Administratorのユーザーの構成, 3.2.1.3

Database Vault Administratorの起動, 3.2.1.3

Oracle Database Vaultの起動, 3.2.1.1

Oracle Enterprise Manager Grid Control

Database Vaultでの違反試行の監視, 11.2.4

Database Vaultポリシーの他のデータベースへの伝播, 10.1.2

Oracle Database Vaultの起動, 3.2.1.2

Oracle Enterprise User Security, Oracle Database Vaultとの統合, 9.1 Oracle GoldenGate

Database Vaultロールの使用

DV_GOLDENGATE_ADMIN, 11.2.9

DV_GOLDENGATE_REDO_ACCESS, 11.2.10

Oracle Database Vault環境, 10.7 Oracle Internet Directory識別名, Proxy_Enterprise_Identityデフォルト・ファクタ, 7.2 Oracle Label Security(OLS)

監査イベント, カスタム, A.1.1

DBMS_MACUTLファンクションを使用してインストールされているかどうかのチェック, 14.3

データ・ディクショナリ・ビュー, 9.4.5

データベース・オプション, 1.2.5

ファンクション

DBMS_MACUTL(ユーティリティ), 14.2.1

Database Vaultとの統合方法, 9.4.1 初期化, コマンド・ルール, 6.1 Oracle Database Vaultとの統合

例, 9.4.4.1

「Label Security統合の監査」レポート, 18.4.2.4, 18.4.2.4

手順, 9.4.3

要件, 9.4.2

ラベル

概要, 7.5.2

GET_FACTOR_LABELを使用した決定, 15.1.6

無効なラベル・アイデンティティ, 18.4.1.4

ポリシー

無視するアカウント, 18.5.5.3

ポリシー変更の監視, 17.3.1

存在しない, 18.4.1.2

Oracle Policy Manager, 1.2.5

プロシージャ

DBMS_MACADM (構成), 12.7

レポート, 9.4.5 ビュー

DVSYS.DBA_DV_MAC_POLICY, 16.10

DVSYS.DBA_DV_MAC_POLICY_FACTOR, 16.11

DVSYS.DBA_DV_POLICY_LABEL, 16.12

「LBACSYSアカウント」も参照 Oracle MetaLink

「My Oracle Support」を参照

Oracle Policy Manager

Oracle Label Securityとの併用, 1.2.5

Oracle Real Application Clusters

Oracle Database Vaultとの互換性, 1.1

RACノードでのDatabase Vaultの構成, C.5

Oracle Database Vaultのアンインストール, C.7

複数のファクタのアイデンティティ, 7.3

Oracle Recovery Manager(RMAN)

Oracle Database Vault環境, 10.4

Oracleソフトウェア所有者, 管理のガイドライン, D.4.2 Oracle Streams

Database Vaultロールの使用, 11.2.7

Oracle Database Vault環境, 10.5

Oracle Virtual Private Database(VPD)

無視するアカウント, 18.5.5.3

ファクタ, 追加, 9.3

GRANT EXECUTE権限と「VPD管理権限を付与可能」デフォルト・ルール・セット, 5.2

Oracle Label SecurityでのDatabase Vaultファクタの使用, 9.4.4.1

「OSディレクトリ・オブジェクト」レポート, 18.5.9.2 「OSセキュリティ脆弱性に関する権限」レポート, 18.5.5.11 OS_ROLES初期化パラメータ, 2.1

P

パラメータ

インストール後の変更, 2.1

レポート

「セキュリティ関連のデータベース・パラメータ」レポート, 18.5.6.1

親ファクタ

「ファクタ」を参照

「パスワード履歴へのアクセス」レポート, 18.5.5.6 パスワード

忘れた場合, 解決方法, B.1

レポート, 18.5.7

「データベース・アカウントのデフォルト・パスワード」レポート, 18.5.7.1

「パスワード履歴へのアクセス」レポート, 18.5.5.6

「ユーザーまたはパスワード表」レポート, 18.5.9.5

パッチ

DV_PATCH_ADMINの要件, 11.2.11

セキュリティの考慮事項, D.6

二人制整合性の使用, 5.9.1

パフォーマンスへの影響

コマンド・ルール, 6.9

レルム, 4.15

レポート

「リソース・プロファイル」レポート, 18.5.6.2

「システム・リソース制限」レポート, 18.5.6.3

ルール・セット, 5.11 セキュア・アプリケーション・ロール, 8.7 ルール・セットの静的評価, 5.11 パフォーマンス・ツール

Database Control, レルム, 4.15

Oracle Enterprise Manager

コマンド・ルール, 6.9

ファクタ, 7.11

レルム, 4.15

ルール・セット, 5.11

セキュア・アプリケーション・ロール, 8.7

Oracle Enterprise Manager Database Control

コマンド・ルール, 6.9

ファクタ, 7.11

ルール・セット, 5.11

セキュア・アプリケーション・ロール, 8.7

STATSPACKユーティリティ

コマンド・ルール, 6.9

ファクタ, 7.11

レルム, 4.15

ルール・セット, 5.11

セキュア・アプリケーション・ロール, 8.7

TKPROFユーティリティ

コマンド・ルール, 6.9

ファクタ, 7.11

レルム, 4.15

ルール・セット, 5.11

セキュア・アプリケーション・ロール, 8.7

PL/SQL

パッケージ

まとめ, 15.4

アンラップされた本体, 18.5.9.4

アンラップされたPL/SQLパッケージ本体レポート, 18.5.9.4

PL/SQLファクタ・ファンクション, 15.2 ポリシー変更, 監視, 17.3.1, 17.4 ポート番号

検索, 3.2.1.3, 3.2.2

Oracle Database Vault, 3.2.1.3, 3.2.2

インストール後の手順, C 権限

ANY権限, 11.2.12

既存のユーザーおよびロール, Database Vaultの影響, 2.4

最低限の権限の原則

違反, 18.5.9.1

監視

GRANT文, 17.3.1

REVOKE文, 17.3.1

Oracle Database Vaultの制限, 2.2 既存のユーザーおよびロールに対して阻止, 2.5 レポート

「DBAロールを持つアカウント」レポート, 18.5.5.2

ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

「データベース・アカウントのANYシステム権限」レポート, 18.5.2.4

「AUDIT権限」レポート, 18.5.5.10

「カタログ・ロールを持つデータベース・アカウント」レポート, 18.5.5.9

「データベース・アカウントごとの直接および間接システム権限」レポート, 18.5.2.2

「データベース・アカウントごとの直接システム権限」レポート, 18.5.2.1

「データベース・アカウントごとの階層システム権限」レポート, 18.5.2.3

リスト, 18.5.4

「OSディレクトリ・オブジェクト」レポート, 18.5.9.2

「権限受領者ごとの権限の配布」レポート, 18.5.4.1

「権限受領者、所有者ごとの権限の配布」レポート, 18.5.4.2

「権限受領者、所有者、権限ごとの権限の配布」レポート, 18.5.4.3

「WITH ADMIN権限の付与」レポート, 18.5.5.1

WITH GRANT権限レポート, 18.5.5.7

ロール

DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクションによるチェック, 14.3

システム

DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクションによるチェック, 14.3

ビュー

DVSYS.DBA_DV_PUB_PRIVS, 16.13

DVSYS.DBA_DV_USER_PRIVS, 16.21

DVSYS.DBA_DV_USER_PRIVS_ALL, 16.22

「権限受領者ごとの権限の配布」レポート, 18.5.4.1 「権限受領者、所有者ごとの権限の配布」レポート, 18.5.4.2 「権限受領者、所有者、権限ごとの権限の配布」レポート, 18.5.4.3 外部パスワードを使用する権限, 18.5.3.4 問題, 診断, E.1.1 プロシージャ

コマンド・ルール

DBMS_MACADM (構成), 12.4

ファクタ

DBMS_MACADM (構成), 12.5

レルム

.DBMS_MACADM (構成), 12.2

本番環境

セキュリティのガイドライン, D.5

プロファイル, 18.5.6 レルムへのPUBLICアクセス, 4.9 「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート, 18.5.3.3 PUBLICユーザー・アカウント

Oracle Database Vaultインストールの影響, 2.4

Q

割当て

表領域, 18.5.9.6

R

RAC

「Oracle Real Application Clusters」を参照

「レルムの監査」レポート, 18.4.2.1 「レルム認可構成の問題」レポート, 18.4.1.5 レルム

概要, 4.1

権限受領者としてロールを追加, 4.14

監査イベント, カスタム, A.1.1

認証関連プロシージャ, 12.2

認可

レルムで保護されたオブジェクトへのアクセスの有効化, 4.11

レルム認可の動作, 4.10

処理フロー, 4.10

トラブルシューティング, E.2

DBMS_MACADM.UPDATE_REALM_AUTHによる更新, 12.2

認可

権限受領者, 4.6

ルール・セット, 4.6

作成, 4.3 名前の作成, 4.3 データ・ディクショナリ・ビュー, 4.16 データ・マスキング, 10.8.3 DBMS_MACUTLの定数, 例, 14.2.2 デフォルトのレルム

リスト, 4.2

Database Vault Administratorでデフォルトのレルムが表示されない, C.1 削除, 4.8 無効化, 4.7 DV_REALM_OWNERロール, 11.2.13 DV_REALM_RESOURCEロール, 11.2.14 編集, 4.4 その他のOracle Database Vaultコンポーネントへの影響, 4.13 有効化, 4.7 レルムで保護されたオブジェクトへのアクセスの有効化, 4.11 例, 4.12 ファンクション

DBMS_MACUTL(ユーティリティ), 14.1

DBMS_MACUTLの定数(フィールド), 14.2.1

ガイドライン, 4.14 レルムの動作, 4.9 ネーミング規則, 4.3 オブジェクト関連プロシージャ, 12.2 パフォーマンスへの影響, 4.15 プロシージャ

DBMS_MACADM (構成), 12.2, 12.2

処理フロー, 4.9 ポリシーの他のデータベースへの伝播, 10.1.2 オブジェクトの削除後の保護, 4.14 PUBLICアクセス, 4.9 レルム認可

概要, 4.6

レルム・セキュア・オブジェクト

削除, 4.5

編集, 4.5

オブジェクト名, 4.5

オブジェクト所有者, 4.5

オブジェクト・タイプ, 4.5

レルム・システム認可

作成, 4.6

削除, 4.6

編集, 4.6

レルム・セキュア・オブジェクト, 4.5 レポート, 4.16 ロール

DV_REALM_OWNER, 11.2.13

DV_REALM_RESOURCE, 11.2.14

セキュア・オブジェクト, 18.4.1.5 レルムが保護する領域, 4.5 トラブルシューティング, E.2, E.3 チュートリアル, 3.3.1 DBMS_MACADM.UPDATE_REALMによる更新, 12.2 ビュー

DVSYS.DBA_DV_CODE, 16.2

DVSYS.DBA_DV_REALM, 16.14

DVSYS.DBA_DV_REALM_AUTH, 16.15

DVSYS.DBA_DV_REALM_OBJECT, 16.16, 16.16

「ルール・セット」も参照 RECOVERY_CATALOG_OWNERロール, 18.5.5.9 リサイクルビン, 管理のガイドライン, D.6.2 RECYCLEBIN初期化パラメータ

Oracle Database Vaultのデフォルト設定, 2.1

セキュリティの考慮事項, D.6.2

Oracle Database Vaultの登録, 3.1 Oracle Database Vaultの再インストール, C.8 REMOTE_LOGIN_PASSWORDFILE初期化パラメータ, 2.1 レポート・メニュー

「レポート結果」ページ, 18.3

パラメータ, 18.3

レポート

概要, 18.1

「機密オブジェクトへのアクセス」レポート, 18.5.3.2

「DBAロールを持つアカウント」レポート, 18.5.5.2

「SYSDBA/SYSOPER権限を持つアカウント」レポート, 18.5.3.4

ALTER SYSTEMまたはALTER SESSIONレポート, 18.5.5.5

「データベース・アカウントのANYシステム権限」レポート, 18.5.2.4

「AUDIT権限」レポート, 18.5.5.10

監査, 18.4.2

BECOME USERレポート, 18.5.5.4

カテゴリ, 18.1

「コマンド・ルールの監査」レポート, 18.4.2.2

「コマンド・ルール構成の問題」レポート, 18.4.1.1

コア・データベース監査レポート, 18.5.8

「コアDatabase Vault監査証跡」レポート, 18.4.2.5

「データベース・アカウントのデフォルト・パスワード」レポート, 18.5.7.1

「データベース・アカウントのステータス」レポート, 18.5.7.2

「カタログ・ロールを持つデータベース・アカウント」レポート, 18.5.5.9

「データベース・アカウントごとの直接および間接システム権限」レポート, 18.5.2.2

「直接オブジェクト権限」レポート, 18.5.1.3

「データベース・アカウントごとの直接システム権限」レポート, 18.5.2.1

Enterprise Manager Database Control, 10.1.4

「強力なSYSパッケージに対するEXECUTE権限」レポート, 18.5.3.1

「ファクタの監査」レポート, 18.4.2.3

「ファクタ構成の問題」レポート, 18.4.1.2

アイデンティティのないファクタ, 18.4.1.3

一般セキュリティ, 18.5

「データベース・アカウントごとの階層システム権限」レポート, 18.5.2.3

「アイデンティティ構成の問題」レポート, 18.4.1.4

「Javaポリシーの付与」レポート, 18.5.9.1

「Label Security統合の監査」レポート, 18.4.2.4

「所有者でないオブジェクトのトリガー」レポート, 18.5.9.7

「PUBLICでのオブジェクト・アクセス」レポート, 18.5.1.1

「PUBLIC以外でのオブジェクト・アクセス」レポート, 18.5.1.2

「オブジェクトの依存性」レポート, 18.5.1.4

「動的SQLに依存するオブジェクト」レポート, 18.5.9.3

「OSディレクトリ・オブジェクト」レポート, 18.5.9.2

OSセキュリティ脆弱性に関する権限, 18.5.5.11

「パスワード履歴へのアクセス」レポート, 18.5.5.6

実行の権限, 18.2

権限管理, 18.5.4

「権限受領者ごとの権限の配布」レポート, 18.5.4.1

「権限受領者、所有者ごとの権限の配布」レポート, 18.5.4.2

「権限受領者、所有者、権限ごとの権限の配布」レポート, 18.5.4.3

「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート, 18.5.3.3

「レルムの監査」レポート, 18.4.2.1

「レルム認可構成の問題」レポート, 18.4.1.5

「リソース・プロファイル」レポート, 18.5.6.2

「指定されたロールを持つロールとアカウント」レポート, 18.5.5.8

「ルール・セット構成の問題」レポート, 18.4.1.6

実行, 18.3

「セキュア・アプリケーション構成の問題」レポート, 18.4.1.7

「セキュア・アプリケーション・ロールの監査」レポート, 18.4.2.6

「セキュリティ・ポリシー除外」レポート, 18.5.5.3

「セキュリティ関連のデータベース・パラメータ」, 18.5.6.1

セキュリティ脆弱性, 18.5.9

「権限ごとのシステム権限」レポート, 18.5.2.5

「システム・リソース制限」レポート, 18.5.6.3

「表領域割当て制限」レポート, 18.5.9.6

アンラップされたPL/SQLパッケージ本体レポート, 18.5.9.4

「ユーザーまたはパスワード表」レポート, 18.5.9.5

「WITH ADMIN権限の付与」レポート, 18.5.5.1

WITH GRANT権限レポート, 18.5.5.7

必要なパラメータのページ

%ワイルドカード, 18.3

「リソース・プロファイル」レポート, 18.5.6.2 リソース

レポート

「リソース・プロファイル」レポート, 18.5.6.2

「システム・リソース制限」レポート, 18.5.6.3

REVOKE文

監視, 17.3.1

ロール

権限受領者としてレルムに追加, 4.14

カタログベース, 18.5.5.9

Database Vaultのデフォルト・ロール, 11.2.1

権限、DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクションによるチェック, 14.3

不完全なルール・セットでのロール有効化, 18.4.1.7

ロールベースのシステム権限, 18.5.2.3

セキュア・アプリケーション・ロールも参照

「指定されたロールを持つロールとアカウント」レポート, 18.5.5.8 ルート・アクセス

Database Vaultでの使用のガイドライン, D.2.4

ルート・アクセス, 管理のガイドライン, D.4.1 「ルール・セット構成の問題」レポート, 18.4.1.6 ルール・セット

概要, 5.1

既存ルールの追加, 5.5.2

監査オプション, 5.3

コマンド・ルール

無効化, 18.4.1.1

選択, 6.4

併用, 6.1

誤って構成されたCONNECTロール, 解決方法, B.1 作成, 5.3

ルール, 5.5.1

名前の作成, 5.3 データ・ディクショナリ・ビュー, 5.12 DBMS_MACUTLの定数, 例, 14.2.2 デフォルトのルール・セット, 5.2 Database Vault Administratorでデフォルトのルール・セットが表示されない, C.1 削除

ルール・セット, 5.6

ルール, 5.5.1, 5.5.1

無効化

ファクタ割当て, 18.4.1.2

レルム認可, 18.4.1.5

編集

ルール・セット, 5.4

ルール, 5.5.1

エラー・オプション, 5.3 ルールの評価, 5.5 評価オプション, 5.3 イベント・ハンドラ, 5.3 イベントの起動, DVSYS.DV_SYSEVENTによる検出, 15.3.1 ファクタ, 選択, 7.3 ファクタ, 併用, 7.1 失敗コード, 5.3 失敗メッセージ, 5.3 ファンクション

DBMS_MACADM (構成), 12.3

DBMS_MACUTL(ユーティリティ), 14.1

DBMS_MACUTLの定数(フィールド), 14.2.1

ルールセット用のPL/SQLファンクション, 15.3

ガイドライン, 5.10 ルール・セットの動作, 5.7.1 不完全, 18.4.1.1 ネーミング規則, 5.3 ネストされたルール, 5.7.2 パフォーマンスへの影響, 5.11 プロシージャ

DBMS_MACADM (構成), 12.3

処理フロー, 5.7.1 ポリシーの他のデータベースへの伝播, 10.1.2 レポート, 5.12 1人のユーザーが除外されるルール, 5.7.3 静的評価, 5.10 トラブルシューティング, E.2, E.3 ビュー

DVSYS.DBA_DV_RULE, 16.18

DVSYS.DBA_DV_RULE_SET, 16.19

DVSYS.DBA_DV_RULE_SET_RULE, 16.20

「コマンド・ルール」、「ファクタ」、「レルム」、「ルール」、「セキュア・アプリケーション・ロール」も参照 ルール

概要, 5.5

作成, 5.5.1

名前の作成, 5.5.1

データ・ディクショナリ・ビュー, 5.12

ルール・セットからの削除, 5.5.1

編集, 5.5.1

既存ルール, ルール・セットへの追加, 5.5.2

ネーミング規則, 5.5.1

ルール・セット内でのネスト, 5.7.2

ルール・セットからの削除, 5.5.1

レポート, 5.12

トラブルシューティング, E.2

ビュー

DVSYS.DBA_DV_RULE, 16.18

DVSYS.DBA_DV_RULE_SET_RULE, 16.20

「ルール・セット」も参照 ルール・セット

監査イベント, カスタム, A.1.1

S

SCHEDULER_ADMINロール

Oracle Database Vaultインストールの影響, 2.4

データベース・ジョブのスケジュール

概要, 10.3.1

「スケジューラ・ジョブの許可」ルール・セット, 5.2

CREATE EXTERNAL JOB権限のセキュリティの考慮事項, D.6.4

Oracle Database Vault権限の付与, 10.3.2

Oracle Database Vault権限の取消し, 10.3.3

スキーマ

DVF, 11.1.2

DVSYS, 11.1.1

「セキュア・アプリケーション構成の問題」レポート, 18.4.1.7 セキュア・アプリケーション・ロール, 8.1 「セキュア・アプリケーション・ロールの監査」レポート, 18.4.2.6 セキュア・アプリケーション・ロール

監査イベント, カスタム, A.1.1

作成, 8.2

データ・ディクショナリ・ビュー, 8.8

DBMS_MACSEC_ROLES.SET_ROLEファンクション, 8.2

削除, 8.4

機能, 8.5

ファンクション

DBMS_MACADM (構成), 12.6

DBMS_MACSEC_ROLES (構成), 13.1

DBMS_MACSEC_ROLESパッケージ, 13.1

DBMS_MACUTL(ユーティリティ), 14.1

DBMS_MACUTLの定数(フィールド), 14.2.1

管理のガイドライン, 8.3 パフォーマンスへの影響, 8.7 プロシージャ

.DBMS_MACADM (構成), 12.6

プロシージャおよびファンクション

DBMS_MACUTL(ユーティリティ), 14.3

ポリシーの他のデータベースへの伝播, 10.1.2 レポート, 8.8

「ルール・セット構成の問題」レポート, 18.4.1.6

トラブルシューティング, E.3 監査レポートのトラブルシューティング, 18.4.2.6 チュートリアル, 8.6.1 ビュー

DVSYS.DBA_DV_ROLE, 16.17

「ロール」、「ルール・セット」も参照 セキュリティ攻撃

サービス拒否攻撃

表領域割当ての検出, 18.5.9.6

DoS攻撃

システム・リソース制限の検出, 18.5.6.3

監査証跡の削除, 18.5.5.10 セキュリティ違反の監視, 17.1 内部関係者へのOracle Database Vaultの対応, 1.4 レポート

「AUDIT権限」レポート, 18.5.5.10

「動的SQLに依存するオブジェクト」レポート, 18.5.9.3

「権限受領者、所有者ごとの権限の配布」レポート, 18.5.4.2

アンラップされたPL/SQLパッケージ本体レポート, 18.5.9.4

SQLインジェクション攻撃, 18.5.9.3 追跡

ファクタ監査, 7.3

ルール・セット監査, 5.3

セキュリティ・ポリシー

変更の監視, 17.4

セキュリティ・ポリシー, Oracle Database Vaultの対応, 1.5 「セキュリティ・ポリシー除外」レポート, 18.5.5.3 「セキュリティ関連のデータベース・パラメータ」レポート, 18.5.6.1 セキュリティ違反

監視の試行, 17.1

セキュリティ脆弱性

Database Vaultの対応, 1.6

オペレーティング・システム, 18.5.5.11

レポート, 18.5.9

「セキュリティ関連のデータベース・パラメータ」レポート, 18.5.6.1

オペレーティング・システムのルート・ディレクトリ, 18.5.9.2 SELECT文

コマンド・ルールを使用した制御, 6.1

SELECT_CATALOG_ROLEロール, 18.5.5.9 機密オブジェクト・レポート, 18.5.3 職務分離の概念

概要, D.1.1

コマンド・ルール, 6.2

データベース・アカウント, 11.3

データベース・アカウント, 推奨, 11.3

データベース・ロール, 2.3

Database Vaultアカウント・マネージャ・ロール, 11.3

タスクの文書化, D.1.4

マトリクス例, D.1.3

Oracle Database Vaultの対応, 2.3

Oracle Database Vaultによる実施, 1.1

レルム, 1.6

権限の制限, 2.2

ロール, 11.2.1

Oracle Database Vault環境のタスク, D.1.2

セッション時間, Oracle Database Vault Administrator用の設定, C.3 セッション

監査イベント, カスタム, A.1.1

DBMS_MACUTLフィールド, 14.2.1

DVF.F$SESSION_USERによるセッション・ユーザーの検出, 15.2.16

セッションに基づくデータの制限, 7.9.1

ファンクションを使用した情報の取得, 12.5

SQLインジェクション攻撃, 「動的SQLに依存するオブジェクト」レポートによる検出, 18.5.9.3 SQL文

保護するデフォルトのコマンド・ルール, 6.2

SQLテキスト, DVSYS.DV_SQL_TEXTによる検出, 15.3.8 SQL92_SECURITY初期化パラメータ, 2.1 サブファクタ

「ファクタ」下の「子ファクタ」を参照

SYSスキーマ

コマンド・ルール, 6.4

SYSユーザー・アカウント

Database Vaultアカウント管理レルムへのアクセス, 4.2

レルム認可への追加, 4.14

DBMS_RLSパッケージのEXECUTEの付与および取消し, Preface

SYS.AUD$表

Oracle Database Vaultの場所, 2.6.1

レルムで保護するオブジェクトの所有者, 4.5

レルムによる保護, 2.6.1

SYSDBAアクセス

管理のガイドライン, D.4.3

SYSDBA権限

制限, 重要性, D.2.3

SYS.FGA_LOG$表

レルムによる保護, 2.6.1

SYSMANユーザー・アカウント

レルム, 4.2

SYSOPERアクセス

管理のガイドライン, D.4.4

システム機能

「無効」ルール・セットによる無効化, 5.2

「有効」ルール・セットによる有効化, 5.2

システム権限

DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクションによるチェック, 14.3

レポート

「権限ごとのシステム権限」レポート, 18.5.2.5

「権限ごとのシステム権限」レポート, 18.5.2.5 「システム・リソース制限」レポート, 18.5.6.3 システム・ルート・アクセス, 管理のガイドライン, D.4.1 SYSTEMスキーマ

アプリケーション表, D.2.2

SYSTEMユーザー・アカウント

Database Vaultでの使用のガイドライン, D.2.1

SYSTEM.AUD$表

Oracle Database Vaultの場所, 2.6.1

T

表領域割当て, 18.5.9.6

「表領域割当て制限」レポート, 18.5.9.6

サード・パーティ製品, Oracle Database Vaultによる影響, B.1

時間データ

DBMS_MACUTLのファンクション, 14.3

タイムアウトの値, Oracle Database Vault Administrator用の設定, C.3 トレース・ファイル

概要, E.1.1

トレース・ファイル, Oracle Database Vault

概要, E.1.1

トレース可能なアクティビティ, E.1.2

ADRCIユーティリティ, E.1.6.3

トレース・ファイルのディレクトリの場所, E.1.6.1

すべてのセッションに対する無効化, E.1.8.2

現在のセッションに対する無効化, E.1.8.1

すべてのセッションに対する有効化, E.1.5.2

現在のセッションに対する有効化, E.1.5.1

例, E.1.7

トレース・ファイル・ディレクトリの検索, E.1.6.1

トレース・イベントのレベル, E.1.3

パフォーマンスへの影響, E.1.4

問合せ

ADRCIユーティリティ, E.1.6.3

Linuxのgrepコマンド, E.1.6.2

透過的データ暗号化, Oracle Database Vaultとの使用, 9.2 トリガー

オブジェクト所有者とは異なるアカウント, 18.5.9.7

レポート, 「所有者でないオブジェクトのトリガー」レポート, 18.5.9.7

トラブルシューティング

アクセス・セキュリティ・セッション, 18.4.2.5

監査レポート, 使用, 18.4.2

Database Vault Administratorでデフォルトのレルム、コマンド・ルール、ルール・セットまたはファクタが表示されない, C.1

ファクタ, E.2

一般的な診断のヒント, E.2

ロックアウトされたアカウント, B.1

パスワード, 忘れた場合, B.1

レルム, E.2

ルール・セット, E.2

ルール, E.2

セキュア・アプリケーション・ロール, 18.4.2.6

信頼レベル

概要, 7.5.2

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYによるアイデンティティの判断, 15.1.4

DVSYS.GET_TRUST_LEVELによる判断, 15.1.3

ファクタ・アイデンティティ, 7.5.2

ファクタ, 7.5.2

リクエストされたファクタおよびアイデンティティ, 15.1.4

アイデンティティ, 7.3

現行セッションのアイデンティティ, 15.1.3

信頼できるユーザー

制限する必要のあるアカウントおよびロール, D.4

Oracle Database Vaultのデフォルト, D.3

チュートリアル

アクセス, セキュア・アプリケーション・ロールによる付与, 8.6.1

非定型ツールのアクセス, 阻止, 7.8.1

二人制整合性(TPI)の構成, 5.9.1

Virtual Private DatabaseおよびOracle Label SecurityでのDatabase Vaultファクタ, 9.4.4.1

ルール・セットでの電子メール・アラート, 5.8.1

ファクタ, アイデンティティのマップ, 7.9.1

Oracle Database VaultとOracle Label Securityの統合, 9.4.4.1

セッション・データに基づくアクセスの制限, 7.9.1

コマンド・ルールによるユーザー・アクティビティの制限, 6.7.1

スキーマ, レルムによる保護, 3.3.1

「例」も参照

二人制ルール・セキュリティ

「二人制整合性(TPI)」を参照

二人制整合性(TPI)

概要, 5.9.1

ルール・セットの構成, 5.9.1

U

アンラップされたPL/SQLパッケージ本体レポート, 18.5.9.4

ユーザー名

レポート, 「ユーザーまたはパスワード表」レポート, 18.5.9.5

USER_HISTORY$表, 18.5.5.6 「ユーザーまたはパスワード表」レポート, 18.5.9.5 ユーザー

エンタープライズのアイデンティティ, DVF.F$PROXY_ENTERPRISE_IDENTITYによる検出, 15.2.15

エンタープライズ全体のアイデンティティ, DVF.F$ENTERPRISE_IDENTITYによる検出, 15.2.9

DVF.F$SESSION_USERによるセッション・ユーザーの検出, 15.2.16

ログイン・ユーザー名, DVSYS.DV_LOGIN_USERによる検出, 15.3.2

ファクタ・アイデンティティによるアクセスの制限, 7.9.1

ユーティリティ・ファンクション

「.DBMS_MACUTLパッケージ」を参照

UTL_FILEオブジェクト, 18.5.1.4 UTL_FILEパッケージ, 管理のガイドライン, D.6.1

V

ビュー

DVSYS.DBA_DV_DATAPUMP_AUTH, 16.4

Oracle Database Vault固有のビュー, 16.1, 16.22, 16.22

DVSYS.DBA_DVで始まる名前も参照

VPD

「Oracle Virtual Private Database (VPD)」を参照

W

ワイルドカード, %, 18.3

「WITH ADMIN権限の付与」レポート, 18.5.5.1

WITH ADMINステータス, 18.5.2.1, 18.5.2.2

WITH GRANT句, 18.5.5.7

WITH GRANT権限レポート, 18.5.5.7

X

XStream

Database Vaultロールの使用, 11.2.8

Oracle Database Vault環境, 10.6

オラクルの法律上の注意点について

コピーライトについて

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

アルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが試作版の場合:

このドキュメントは試作版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のアルファ版およびベータ版ドラフト・ドキュメントについて

このドキュメントが非公開の試作版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のベータ・トライアル契約のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle PartnerNetwork Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティについて

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイトhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=infoか、聴覚に障害のあるお客様はhttp://www.oracle.com/pls/topic/lookup?ctx=acc&id=trsを参照してください。