Oracle® Database Vault

管理者ガイド

12cリリース1 (12.1)

B71286-08(原本部品番号:E49109-12)

2017年6月

Oracle Database Vault管理者ガイド, 12c リリース1 (12.1)

B71286-08

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

原本著者: Patricia Huey

原本協力者: Tammy Badnar、Tom Best、Todd Bottger、Ji-won Byun、Ben Chang、Martin Cheng、Chi Ching Chui、Scott Gaetjen、Viksit Gaur、Lijie Heng、Dominique Jeunot、Peter Knaggs、Chon Lee、Paul Needham、Yi Ouyang、Hozefa Palitanawala、Robert Pang、Gayathri Sairamkrishnan、Vipin Samar、James Spiller、Srividya Tata、Kamal Tbeileh、Saravana Soundararajan、Sudheesh Varma、Peter Wahl、Rodney Ward

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

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

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

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 Vault 12cリリース1 (12.1.0.2)の変更点

- 新機能

- DV_ACCTMGRロールの追加権限

- ルールでのOracle Label SecurityファンクションOLS_LABEL_DOMINATESのサポート

- 権限分析のための権限の格納に使用されるプロファイルの改善

- Oracle Database Vault 12cリリース1 (12.1.0.1)の変更点

- 新機能

- Oracle Database Vaultの登録の変更

- Oracle Database Vaultの有効と無効の切替えの変更

- Oracle Database Vault管理の簡略化

- Database Vaultスキーマのデフォルトの保護

- システムおよびオブジェクト権限の権限分析の実行

- Oracle Database Vaultの新しいレルム

- Oracle Database Vaultの変更されたレルム

- 必須レルムの保護

- レルムの追加監査情報

- DBMS_MACADM PL/SQLに追加された認可プロシージャ

- Oracle Database VaultでのOracle Data PumpおよびOracle Schedulerの変更

- マルチテナント環境における統合

- ORADEBUGユーティリティの使用を制御する機能

- 統合監査証跡へのDatabase Vaultレコードの挿入

- Oracle Database Vault管理者のアクションの監査

- 監査データを取得する新しいデータ・ディクショナリ・ビュー

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

- 非推奨となった機能

- サポート対象外となった機能

1 Oracle Database Vaultの概要

- Oracle Database Vaultの概要

- Oracle Database Vaultについて

- 特権アカウントに対する統制

- データベース構成に対する統制

- エンタープライズ・アプリケーションの保護ポリシー

- ユーザーおよびアプリケーションの実行時権限分析

- Oracle Database Vaultの使用に必要な権限

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

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

- Oracle Enterprise Manager Cloud ControlのDatabase Vault Administratorページ

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

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

- 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によるユーザー認可の制限

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

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

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

- 非統合監査環境の変更されたAUDIT文の設定

3 Oracle Database Vaultの開始

- Oracle DatabaseへのOracle Database Vaultの登録

- Oracle DatabaseへのOracle Database Vaultの登録の概要

- 非マルチテナント環境におけるOracle Database Vaultの登録

- CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録

- 個別PDBを管理するためのDatabase Vault共通ユーザーの登録

- プラグインされたDatabese Vault PDB用の共通Database Vaultアカウント作成

- Oracle Database Vaultが構成および有効化されていることの確認

- Oracle Database Vaultへのログイン

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

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

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

- 手順2: レルムの作成

- 手順3: SEBASTIANユーザー・アカウントの作成

- 手順4: ユーザーSEBASTIANによるレルムのテスト

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

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

- 手順7: 統合監査が有効ではない場合のレポートの実行

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

4 権限分析を実行した権限の使用の確認

- 権限分析とは

- 権限分析について

- 権限分析でのプリコンパイル済データベース・オブジェクトの処理

- 権限分析を実行できるユーザー

- 権限分析のタイプ

- 権限分析の利点およびユースケース

- アプリケーションに不必要に付与された権限

- セキュアなアプリケーションの開発

- マルチテナント環境による権限分析への影響について

- 権限分析ポリシーの作成および管理

- 権限分析ポリシーの作成および管理について

- 権限分析の管理の一般手順

- 権限分析ポリシーの作成

- 権限分析ポリシーの作成について

- Enterprise Manager Cloud Controlの権限分析ポリシーの作成

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの作成

- 権限分析ポリシーの例

- 例: データベース全体の権限の権限分析

- 例: 2つのロールの権限の使用状況の権限分析

- 例: SQL*Plus使用中の権限の権限分析

- 例: SQL*Plusアクセス中のPSMITH権限の権限分析

- 権限分析ポリシーの有効化

- 権限分析ポリシーの有効化について

- Cloud Controlによる権限分析ポリシーの有効化

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの有効化

- 権限分析ポリシーの無効化

- 権限分析ポリシーの無効化について

- Cloud Controlによる権限分析ポリシーの無効化

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの無効化

- 権限分析レポートの生成

- 権限分析レポートの生成について

- Cloud Controlによる権限分析レポートの生成

- Cloud Controlによる権限分析レポートへのアクセス

- DBMS_PRIVILEGE_CAPTUREによる権限分析レポートの生成

- 権限分析ポリシーの削除

- 権限分析ポリシーの削除について

- Cloud Controlによる権限分析ポリシーの削除

- DBMS_PRIVILEGE_CAPTUREパッケージによる権限分析ポリシーの削除

- Cloud Controlによるロールの作成および権限の管理

- Cloud Controlでの権限分析レポートからのロールの作成

- Cloud Controlによるロールおよび権限の取消しおよび再付与

- Cloud Controlによる取消しまたは再付与スクリプトの生成

- 取消しおよび再付与スクリプトの生成について

- 取消しスクリプトの生成

- 再付与スクリプトの生成

- チュートリアル: ANY権限の使用の分析

- 手順1: ユーザー・アカウントの作成

- 手順2: 権限分析ポリシーの作成および有効化

- 手順3: READ ANY TABLEシステム権限の使用

- 手順4: 権限分析ポリシーの無効化

- 手順5: 権限分析レポートの生成および表示

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

- チュートリアル: DBAロールを持つユーザーによる権限の使用の分析

- 手順1: ユーザー・アカウントの作成

- 手順2: 権限分析ポリシーの作成および有効化

- 手順3: データベース・チューニング操作の実行

- 手順4: 権限分析ポリシーの無効化

- 手順5: 権限分析レポートの生成および表示

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

- 権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー

5 レルムの構成

- レルムの概要

- レルムについて

- 必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限

- レルムで保護できるオブジェクト・タイプ

- デフォルトのレルム

- Oracle Database Vaultレルム

- Database Vaultアカウント管理レルム

- Oracle Enterprise Managerレルム

- Oracleデフォルト・スキーマ保護レルム

- Oracleシステム権限およびロール管理レルム

- Oracleデフォルト・コンポーネント保護レルム

- レルムの作成

- レルム・セキュア・オブジェクトについて

- レルム認可について

- レルムの有効化ステータスの変更

- レルムの削除

- レルムの動作

- レルムでの認可の動作

- レルムの認可について

- レルム認可の例

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

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

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

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

- レルムの動作の例

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

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

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

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

6 ルール・セットの構成

- ルール・セットの概要

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

- ルール・セットの作成

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

- ルールの作成について

- デフォルト・ルール

- 新規ルールの作成

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

- ルール・セットからのルールの削除

- Oracle Database Vaultコンポーネントへのルール・セット参照の削除

- ルール・セットの削除

- ルール・セットの動作

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- コマンド・ルールについて

- マルチテナント環境におけるコマンド・ルール

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

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

- コマンド・ルールの作成または編集

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

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

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

- 手順1: 表の作成

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

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

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

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

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

- コマンド・ルールに関連するレポートおよびデータ・ディクショナリ・ビュー

8 ファクタの構成

- ファクタの概要

- デフォルトのファクタ

- ファクタの作成

- 「ファクタの作成」ページへのアクセス

- ファクタ作成のための「一般」ページの入力

- ファクタ作成の「構成」ページ

- ファクタの識別情報の設定

- ファクタの識別の動作

- ファクタの評価情報の設定

- ファクタのOracle Label Securityラベル付け情報の設定

- ファクタの取得メソッドの設定

- 取得メソッドの動作

- ファクタの検証メソッドの設定

- ファクタ作成の「オプション」ページ

- ファクタへのルール・セットの割当て

- ファクタのエラー・オプションの設定

- ファクタの監査オプションの設定

- ファクタの監査の動作

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

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

- 信頼レベルについて

- ラベル・アイデンティティについて

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

- ファクタ・アイデンティティの削除

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

- アイデンティティ・マッピングについて

- ファクタへのアイデンティティのマッピング

- ファクタの削除

- ファクタの動作

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

- ファクタの取得

- ファクタの設定

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

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

- 手順1: HRおよびOEユーザー・アカウントの有効化

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- セキュア・アプリケーション・ロールに関連するレポートおよびデータ・ディクショナリ・ビュー

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

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

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

- エンタープライズ・ユーザー認可の構成

- 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 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 Data Guardの統合

- 手順1: プライマリ・データベースの構成

- 手順2: スタンバイ・データベースの構成

- Oracle Database構成アシスタントを使用したOracle Internet Directoryの登録

11 Oracle Database Vault環境でのDBA操作

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

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

- Oracle Database Vaultポリシーに対するEnterprise Manager Cloud Controlアラート

- Enterprise Manager Cloud ControlにおけるOracle Database Vault固有レポート

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

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

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

- ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可

- Oracle Data Pumpの通常操作のユーザーへの認可について

- Oracle Data Pumpの通常操作に対するDatabase Vault権限のレベル

- Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可

- Oracle Data Pump権限のユーザーからの取消し

- ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可

- Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について

- Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル

- Database VaultにおけるData Pumpのトランスポータブル操作をユーザーに認可

- トランスポータブル表領域権限のユーザーからの取消し

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

- Oracle Database VaultでのOracle Schedulerの使用

- Oracle Database VaultでのOracle Schedulerの使用について

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

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

- Oracle Recovery ManagerとOracle Database Vault

- Oracle Database VaultでOracle Streamsを使用するための権限

- Oracle Database VaultでXStreamを使用するための権限

- Oracle Database VaultでOracle GoldenGateを使用するための権限

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

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

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

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

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

- スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン

- Oracle Database Vault環境でのORADEBUGユーティリティの使用

12 Oracle Database Vaultのスキーマ、ロールおよびアカウント

- Oracle Database Vaultスキーマ

- DVSYSスキーマ

- DVFスキーマ

- 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_DATAPUMP_NETWORK_LINK Data Pumpネットワーク・リンク・ロール

- DV_STREAMS_ADMIN Oracle Streams構成ロール

- DV_XSTREAM_ADMIN XStream管理ロール

- DV_GOLDENGATE_ADMIN GoldenGate管理ロール

- DV_GOLDENGATE_REDO_ACCESS 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アカウント

- バックアップOracle Database Vaultアカウント

13 Oracle Database VaultレルムのAPI

- 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プロシージャ

14 Oracle Database Vaultルール・セットのAPI

- 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プロシージャ

- UPDATE_RULEプロシージャ

- UPDATE_RULE_SETプロシージャ

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

- DVSYS.DV_SYSEVENTファンクション

- DVSYS.DV_LOGIN_USERファンクション

- DVSYS.DV_INSTANCE_NUMファンクション

- DVSYS.DV_DATABASE_NAMEファンクション

- DVSYS.DV_DICT_OBJ_TYPEファンクション

- DVSYS.DV_DICT_OBJ_OWNERファンクション

- DVSYS.DV_DICT_OBJ_NAMEファンクション

- DVSYS.DV_SQL_TEXTファンクション

15 Oracle Database Vaultコマンド・ルールのAPI

- CREATE_COMMAND_RULEプロシージャ

- DELETE_COMMAND_RULEプロシージャ

- UPDATE_COMMAND_RULEプロシージャ

16 Oracle Database VaultファクタのAPI

- 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プロシージャ

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

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

- DVSYS.SET_FACTORプロシージャ

- DVSYS.GET_FACTORファンクション

- DVSYS.GET_TRUST_LEVELファンクション

- DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYファンクション

- DVSYS.ROLE_IS_ENABLEDファンクション

- DVSYS.GET_FACTOR_LABELファンクション

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

- Oracle Database VaultのDVF 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ファンクション

17 Oracle Database Vaultセキュア・アプリケーション・ロールのAPI

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

- CREATE_ROLEプロシージャ

- DELETE_ROLEプロシージャ

- RENAME_ROLEプロシージャ

- UPDATE_ROLEプロシージャ

- DBMS_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション

- CAN_SET_ROLEファンクション

- SET_ROLEプロシージャ

18 Oracle Database Vault Oracle Label SecurityのAPI

- CREATE_MAC_POLICYプロシージャ

- CREATE_POLICY_LABELプロシージャ

- DELETE_MAC_POLICY_CASCADEプロシージャ

- DELETE_POLICY_FACTORプロシージャ

- DELETE_POLICY_LABELプロシージャ

- UPDATE_MAC_POLICYプロシージャ

19 Oracle Database VaultユーティリティのAPI

- 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_OBJECT_PRIVILEGEファンクション

- USER_HAS_ROLEファンクション

- USER_HAS_ROLE_VARCHARファンクション

- USER_HAS_SYSTEM_PRIVILEGEファンクション

20 Oracle Database Vaultの一般管理API

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

- ADD_NLS_DATAプロシージャ

- AUTHORIZE_DATAPUMP_USERプロシージャ

- AUTHORIZE_DDLプロシージャ

- AUTHORIZE_PROXY_USERプロシージャ

- AUTHORIZE_SCHEDULER_USERプロシージャ

- AUTHORIZE_TTS_USERプロシージャ

- UNAUTHORIZE_DATAPUMP_USERプロシージャ

- UNAUTHORIZE_DDLプロシージャ

- UNAUTHORIZE_PROXY_USERプロシージャ

- UNAUTHORIZE_SCHEDULER_USERプロシージャ

- UNAUTHORIZE_TTS_USERプロシージャ

- DISABLE_DVプロシージャ

- DISABLE_DV_DICTIONARY_ACCTSプロシージャ

- DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ

- DISABLE_ORADEBUGプロシージャ

- ENABLE_DVプロシージャ

- ENABLE_DV_PATCH_ADMIN_AUDITプロシージャ

- ENABLE_DV_DICTIONARY_ACCTSプロシージャ

- ENABLE_ORADEBUGプロシージャ

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

21 Oracle Database VaultのAPIリファレンス

- DBMS_MACADM PL/SQLパッケージの内容

- DBMS_MACSEC_ROLES PL/SQLパッケージの内容

- DBMS_MACUTL PL/SQLパッケージの内容

- CONFIGURE_DV PL/SQLプロシージャ

- DVF PL/SQLインタフェースの内容

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

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

- DVSYS.DBA_DV_CODEビュー

- DVSYS.DBA_DV_COMMAND_RULEビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

- DVSYS.DBA_DV_DDL_AUTHビュー

- DVSYS.DBA_DV_DICTIONARY_ACCTSビュー

- 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_JOB_AUTHビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

- DVSYS.DBA_DV_ORADEBUGビュー

- DVSYS.DBA_DV_PATCH_ADMIN_AUDITビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

- DVSYS.DBA_DV_PROXY_AUTHビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.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_STATUSビュー

- DVSYS.DBA_DV_TTS_AUTHビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

- DVSYS.DV$CONFIGURATION_AUDITビュー

- DVSYS.DV$ENFORCEMENT_AUDITビュー

- SYS.DV$CONFIGURATION_AUDITビュー

- SYS.DV$ENFORCEMENT_AUDITビュー

23 Oracle Database Vaultの監視

- セキュリティ違反未遂の監視

- セキュリティ違反未遂の監視について

- Oracle Database Vault Administratorによるセキュリティ違反の監視

- セキュリティ・ポリシー変更の監視

- セキュリティ・ポリシー変更の監視について

- Oracle Database Vaultによるカテゴリ別のセキュリティ・ポリシー変更の監視

24 Oracle Database Vaultレポート

- Oracle Database Vaultレポートについて

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

- Oracle Database Vaultレポートの実行

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

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

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

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

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

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

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

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

- Oracle Database Vaultの監査レポート

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

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

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

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

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

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

- Oracle 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 Vault監査証跡のアーカイブおよびパージ

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

- Oracle Database Vault監査証跡のアーカイブ

- Oracle Database Vault監査証跡のパージ

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

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

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

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

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

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

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

- 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 Vaultの職務分離マトリクス

- データベース・ユーザーのタスクの識別および文書化

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

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

- アプリケーション表のSYSTEMスキーマ

- SYSDBA管理権限の制限

- Oracle Database Vaultへのルートおよびオペレーティング・システムのアクセス

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

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

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

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

- SYSDBAアクセスの管理

- SYSOPERアクセスの管理

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

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

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

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

- DBMS_FILE_TRANFERパッケージへのアクセスの保護

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

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

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

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

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

- リサイクルビンの内容のチェック

- リサイクルビンの内容のパージ

- リサイクルビンの無効化

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

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

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

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

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

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

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トレース・ファイル・データの検索

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

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

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

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

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

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

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

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

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

- マルチテナント環境でのトレース・イベントの無効化

- 一般的な診断のヒント

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

- Oracle Database Vaultのアカウント・パスワードのリセット

- DV_OWNERユーザー・パスワードのリセット

- DV_ACCTMGRユーザー・パスワードのリセット

索引

はじめに

『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 Databaseセキュリティ・ガイド』

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

- 『Oracle Database管理者ガイド』

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

Oracle Technology Network (OTN)

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

http://www.oracle.com/technetwork/database/security/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/us/products/database/options/database-vault/overview/index.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 Vault 12cリリース1 (12.1.0.2)の変更点

- Oracle Database Vault 12cリリース1 (12.1.0.1)の変更点

Oracle Database Vault 12cリリース1 (12.1.0.2)の変更点

Oracle Database 12cリリース1 (12.1.0.2)での『Oracle Database Vault管理者ガイド』の変更点を次に示します。

- 新機能

新機能

内容は次のとおりです。

- DV_ACCTMGRロールの追加権限

- ルールでのOracle Label SecurityファンクションOLS_LABEL_DOMINATESのサポート

- 権限分析のための権限の格納に使用されるプロファイルの改善

DV_ACCTMGRロールの追加権限

このリリースでは、DV_ACCTMGRロールを付与されているユーザーがDV_MONITOR,DV_SECANALYSTおよびDV_AUDIT_CLEANUPロールを付与されているユーザーを管理できます。

この機能により、期限切れになることがよくあり、DV_MONITORなどのロールを持つDBSNMPユーザーなどのユーザー・アカウントのパスワードを簡単に変更できるようになります。

これらのロールの詳細は次の各項を参照してください。

- 「DV_MONITOR Database Vault監視ロール」

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

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

ルールでのOracle Label SecurityファンクションOLS_LABEL_DOMINATESのサポート

ルールの作成時、このリリースの新機能でもあるパブリック・スタンドアロン・ファンクションOLS_LABEL_DOMINATESを含めることができるようになりました。

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

- OLS_LABEL_DOMINATESファンクションを使用するルール式の作成方法の例は、「CREATE_RULEプロシージャ」を参照してください。

- OLS_LABEL_DOMINATESファンクションの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

権限分析のための権限の格納に使用されるプロファイルの改善

このリリースから、PL/SQLパッケージなどのプリコンパイル済データベース・オブジェクトについて取得された権限はORA$DEPENDENCYプロファイルに格納されます。このプロファイルは削除できません。

権限分析でどのようにプリコンパイル済データベース・オブジェクトが処理されるかの詳細は、「権限分析でのプリコンパイル済データベース・オブジェクトの処理」を参照してください。

Oracle Database Vault 12cリリース1 (12.1.0.1)の変更点

Oracle Database 12cリリース1 (12.1.0.1)での『Oracle Database Vault管理者ガイド』の変更点を次に示します。

- 新機能

- 非推奨となった機能

- サポート対象外となった機能

新機能

このリリースの新機能は次のとおりです。

- Oracle Database Vaultの登録の変更

- Oracle Database Vaultの有効と無効の切替えの変更

- Oracle Database Vault管理の簡略化

- Database Vaultスキーマのデフォルトの保護

- システムおよびオブジェクト権限の権限分析の実行

- Oracle Database Vaultの新しいレルム

- Oracle Database Vaultの変更されたレルム

- 必須レルムの保護

- レルムの追加監査情報

- DBMS_MACADM PL/SQLに追加された認可プロシージャ

- Oracle Database VaultでのOracle Data PumpおよびOracle Schedulerの変更

- マルチテナント環境における統合

- ORADEBUGユーティリティの使用を制御する機能

- 統合監査証跡へのDatabase Vaultレコードの挿入

- Oracle Database Vault管理者のアクションの監査

- 監査データを取得する新しいデータ・ディクショナリ・ビュー

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

Oracle Database Vaultの登録の変更

以前のリリースのOracle Database Vaultでは、Oracle Database Configuration Assistant(DBCA)を使用することでDatabase Vaultをデータベースに登録(有効化)していました。CONFIGURE_DVおよびDVSYS.DBMS_MACADM.ENABLE_DVプロシージャを使用して、Database Vaultをコマンドラインから登録できるようになりました。

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

- 「Oracle DatabaseへのOracle Database Vaultの登録」

- 「DVSYS.CONFIGURE_DV一般システム・メンテナンスのプロシージャ」

- 「ENABLE_DVプロシージャ」

Oracle Database Vaultの有効と無効の切替えの変更

このリリースでは、Oracle Database Vaultの有効と無効の切替えに使用可能な、DBMS_MACADMの新しい2つのプロシージャ(DBMS_MACADM.ENABLE_DVおよびDBMS_MACADM.DISABLE_DV)が導入されています。

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

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

- 「DISABLE_DVプロシージャ」

- 「ENABLE_DVプロシージャ」

Oracle Database Vault管理の簡略化

このリリース以降では、Oracle Enterprise ManagerからDatabase Vault Administrator(DVA)にアクセスできます。DVAは、独立したアプリケーションではなくなりました。この設計のメリットとして、Oracle Databaseを操作する際に一箇所から集中してOracle Database Vaultの設定の作成、表示および変更がしやすくなる点があげられます。

また、構成関連のDBMS_MACADM PL/SQLパッケージのプロシージャとファンクションがすべてEnterprise Managerインタフェースに組み込まれ、機能が強化されています。たとえば、インタフェースを使用して、1つのルール・セットからルールを削除できるようになりました。

詳細は、「Oracle Database Vaultへのログイン」を参照してください。

Database Vaultスキーマのデフォルトの保護

Database Vaultメタデータ(ポリシーやファクタなど)および管理パッケージはDVSYSやDVFスキーマに存在するため、これらのスキーマはOracle Database Vaultの整合性にとって重要になります。

このリリース以降では、これらのアカウントへの直接ログインがデフォルトでブロックされます。このデフォルトの保護を無効または再度有効にするには、DBMS_MACADMの2つの新しいプロシージャ(DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTSおよびDBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTS)を使用します。これらのプロシージャを実行するには、DV_OWNERロールが必要です。

システムおよびオブジェクト権限の権限分析の実行

Oracle Databaseインストールが複雑でユーザー・アカウントの数が非常に多い場合でも、過度のシステム権限およびオブジェクト権限の付与またはロールおよび使用されていない権限を簡単に識別できます。権限分析は、指定した条件に従って権限の使用状況を確認します。たとえば、権限分析は、指定されたアプリケーション・モジュールの実行に使用される権限および指定されたログオン・ユーザーによって使用される権限を記録できます。権限分析の結果は、データ・ディクショナリ・ビューに格納されます。

詳細は、「権限使用を確認するための権限分析実行」を参照してください。

Oracle Database Vaultの新しいレルム

- Oracleデフォルト・スキーマ保護レルム。このレルムは、Oracle Databaseのオプション(Oracle OLAP、Oracle SpatialおよびOracle Textなど)に関連するロールとスキーマを保護します。

- Oracleシステム権限およびロール管理レルム。このレルムは、データベースに対するデータのエクスポートとインポートに使用される機密ロールを保護します。また、システム権限の付与が可能なユーザーのユーザー認可も含まれます。

- Oracleデフォルト・コンポーネント保護レルム。このレルムは、SYSTEMスキーマとOUTLNスキーマを保護します。

Oracle Database Vaultの変更されたレルム

このリリースでは、保護機能を強化するためにいくつかのレルムが変更されています。

- Oracle Database Vaultレルム。このレルムは、DVSYS、DVFおよびLBACSYSの各スキーマの構成とロール情報を保護します。このリリース以降では、SYS.AQ%DATAPUMP%表とビューがこのレルムから削除されています。Oracle Streams Advanced QueuingおよびOracle Data Pumpの認可が別々に処理されるようになったため、これらのオブジェクトでレルムの保護が不要になりました。
詳細は、次の各項を参照してください。

- 「Oracle Database VaultでOracle Streamsを使用するための権限 」

- 「Oracle Database VaultでのOracle Data Pumpの使用」

- Database Vaultアカウント管理レルム。このレルムは、データベース・アカウントとデータベース・プロファイルの作成および管理を担当する管理者を対象としています。このリリース以降では、アカウント・マネージャ(ロールDV_ACCTMGR)は、ユーザーにCREATE SESSION権限を付与できます。

必須レルムの保護

以前のリリースのOracle Database Vaultでは、オブジェクト所有者、またはレルム内のオブジェクトに対するオブジェクト権限を持っていたユーザーは、レルムの参加者やレルムの所有者でない場合でも、引き続きこのようなオブジェクトにアクセスできていました。このリリースでは、必須レルムを使用して、このようなユーザーのオブジェクトへのアクセス権をオプションで制限できます。必須レルムでは、レルムの参加者およびレルムの所有者のみが、レルムで保護されたオブジェクトにアクセスできます。

必須レルムを使用すると、Database Vaultポリシーの作成時の柔軟性が増し、より安全に保護を実現できます。必須レルムには、ロールの認可に基づいてアクセスを達成する目的でロールが変更されることを防ぐという長所もあり、パッチのアップグレード時に便利です。必須レルムで保護されるロールは変更できません。そのため、一度必須レルムで保護されると、ロールに権限を付与したり、ロールから権限を取り消したりすることはできません。

詳細は、「レルム内オブジェクトへのアクセスを制限する必須レルム」を参照してください。

レルムの追加監査情報

以前のリリースでは、監査証跡は、レルム強制ポリシーに対して評価された最後のレルムのみを記録していました。このリリース以降では、新しいDVSYS.DV$CONFIGURATION_AUDITおよびDVSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューのACTION_OBJECT_IDフィールドとACTION_OBJECT_NAMEフィールドは、監査オプションが「失敗時に監査」あるいは「成功時または失敗時に監査」に設定されているすべてのレルムIDとレルム名を取得します。

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

- 「DVSYS.DV$CONFIGURATION_AUDITビュー」

- 「DVSYS.DV$ENFORCEMENT_AUDITビュー」

DBMS_MACADM PL/SQLに追加された認可プロシージャ

このリリースでは、DBMS_MACADM PL/SQLパッケージに次のプロシージャが追加されており、さらに細かいユーザー権限の制御が可能です。

これらの機能は次のとおりです。

- DBMS_MACADM.AUTHORIZE_DDLは、指定したスキーマでデータ定義言語(DDL)文を実行する権限をユーザーに付与します。この権限を取り消すには、DBMS_MACADM.UNAUTHORIZE_DDLプロシージャを使用します。

- DBMS_MACADM.AUTHORIZE_PROXY_USERは、他のユーザー・アカウントをプロキシする権限をユーザーに付与します。この権限を取り消すには、DBMS_MACADM.UNAUTHORIZE_PROXY_USERプロシージャを使用します。

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

- 「AUTHORIZE_DDL」

- 「UNAUTHORIZE_DDLプロシージャ」

- 「AUTHORIZE_PROXY_USER」

- 「UNAUTHORIZE_PROXY_USERプロシージャ」

Oracle Database VaultでのOracle Data PumpおよびOracle Schedulerの変更

このリリースでは、Oracle Data PumpおよびOracle Schedulerの次のデフォルトのルール・セットが削除されています。

- Oracle Data Pump操作を許可

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

次のデータ・ディクショナリ・ビューが追加され、Database VaultでのOracle Data PumpおよびOracle Schedulerの認可に関する情報が記録されます。

- DVSYS.DBA_DV_DATAPUMP_AUTH

- DVSYS.DBA_DV_JOB_AUTH

PL/SQLパッケージに次のDBMS_MACADMプロシージャが追加されました。Oracle Database Vault環境でOracle Data Pumpのトランスポータブル表領域操作を実行する権限をユーザーに付与する、またはユーザーから取り消すことができます。

- 「AUTHORIZE_TTS_USERプロシージャ」

- 「UNAUTHORIZE_TTS_USERプロシージャ」

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

- 「Oracle Database VaultでのOracle Data Pumpの使用」

- 「DVSYS.DBA_DV_DATAPUMP_AUTHビュー」

- 「Oracle Database VaultでのOracle Schedulerの使用」

- 「DVSYS.DBA_DV_JOB_AUTHビュー」

マルチテナント環境における統合

Oracle Database 12cリリース1 (12.1)では、プラガブル・データベース(PDB)と呼ばれる複数のデータベースを、マルチテナント・コンテナ・データベース(CDB)と呼ばれる1つの大きなOracle Databaseに統合できるようになりました。これにより、1つ以上のOracle Databaseに組み込まれる多くのアプリケーションをさらに適切に管理できます。Oracle Database Vaultで保護されるデータベースはCDBに適応できます。

内容は次のとおりです。

- 「マルチテナント環境におけるOracle Database Vaultの動作について」

- マルチテナント環境の管理の詳細は、『Oracle Database管理者ガイド』

ORADEBUGユーティリティの使用を制御する機能

Oracle Database Vault環境でORADEBUGユーティリティの使用の有効と無効を切り替えることができます。

この機能拡張により、重要なORADEBUGの機能(内部構造の操作やダンプ、他のユーザーに対するSQLトレースの有効と無効の切替え、Database Vaultが有効なデータベースでの集中プロセスの停止など)を誤って使用しないようにすることができます。

詳細は、「Oracle Database Vault環境でのORADEBUGユーティリティの使用」を参照してください。

統合監査証跡へのDatabase Vaultレコードの挿入

このリリースでは、統合監査証跡が導入され、各種Oracle Database監査証跡(Database VaultおよびOracle Label Security監査証跡の他に標準監査証跡、ファイングレイン監査証跡など)が1つの監査証跡に統合されます。新しいインストールでは、統合監査証跡が有効になっています。以前のリリースからアップグレードする場合、統合または非統合監査環境の中から選択できます。統合監査の使用を選択する場合、Oracle Database Vault監査レコードは、SYSスキーマのDatabase Vault AUDIT_TRAIL$表ではなく、Oracle Database AUDSYSスキーマの表に格納されます。

各種監査証跡を一箇所にすることで、データベースの異なる領域から生じたすべての監査を一元的に表示できます。統合監査レコードは、一貫した統合形式で表示されます。これにより、たとえば分析レポートの実行が容易になります。

Oracle Database Vaultの統合監査レコードの取得方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

Oracle Database Vault管理者のアクションの監査

このリリース以降では、Oracle Database Vaultは、Database Vault管理者が実行するすべてのアクションを監査できます。

Database Vaultコンポーネント(レルムやファクタなど)に加えられる構成の変更はすべて、監査証跡に書き込まれるようになりました。この監査は、ほとんどのDatabase Vault強制の作成、変更および削除の他に、Oracle Data PumpやOracle SchedulerなどのコンポーネントのDatabase Vault認可を取得します。ただし、Database Vaultが保護するロール(DV_OWNERおよびDV_ADMINなど)の付与や取消しをデフォルトで監査しません。このタイプの監査は、関連するOracle Database Vaultレルムの監査構成に依存します。

監査についての詳細は、「Oracle Database Vaultの監査」を参照してください。

監査データを取得する新しいデータ・ディクショナリ・ビュー

このリリースには、統合監査に固有の次の新しいデータ・ディクショナリ・ビューがあります。

- DVSYS.DV$CONFIGURATION_AUDITにより、Database Vault管理者が行うDatabase Vault構成の変更に関する情報が提供されます。詳細は、「DVSYS.DV$CONFIGURATION_AUDITビュー」を参照してください。

- DVSYS.DV$ENFORCEMENT_AUDITにより、Database Vault強制ポリシーに影響を与えるユーザー・アクティビティに関する情報が提供されます。詳細は、「DVSYS.DV$ENFORCEMENT_AUDITビュー」を参照してください。

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

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

このロールの使用の詳細は、次の各項を参照してください。

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

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

非推奨となった機能

次の機能は、今回のリリースで非推奨となり、今後のリリースでサポートされません。

- 非推奨となったレルム:

- Oracleデータ・ディクショナリ・レルム: 以前のリリースでは、Oracleデータ・ディクショナリ・レルムは、多くのオブジェクト(そのすべてが機密性が高いとみなされていた)を保護していました。ただし、義務の基準をより適切に分離する目的では、このような大量のオブジェクトの場合、ファイングレイン認可の実現が難しくなっていました。このリリース以降では、Oracleデータ・ディクショナリ・レルムが非推奨になっています。かわりに、Oracleデータ・ディクショナリ・レルムで以前に保護されていたオブジェクトは、この項で説明する新しいレルムに移行されています。

代替案の詳細は、「デフォルトのレルム」を参照してください。

- 非推奨になったデフォルトのルール・セット:

- 「Oracle Data Pump操作を許可」ルール・セット: Database Vault環境でデータ・ポンプ操作を実行するようにユーザーを認可した後、このリリースの新機能であるDVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せることで、ユーザーの認可を確認できます。

- 「スケジューラ・ジョブの許可」ルール・セット: Oracle Scheduler操作を実行するようにユーザーを認可した後、このリリースの新機能であるDVSYS.DBA_DV_JOB_AUTHビューに問い合せることで、このユーザーの認可を確認できます。

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

- DBMS_MACADM.SYNC_RULESプロシージャは、その機能がルール作成機能に組み込まれたため、非推奨となりました。

- Database Vault Administrator(DVA)は非推奨になりました。その機能は、Oracle Enterprise Manager Cloud Controlインタフェースの一部になっています。
詳細は、「Oracle Database Vaultへのログイン」を参照してください。

サポート対象外となった機能

Database Vault Configuration Assistant (DVCA)は、このリリースから非推奨になります。DVCAの機能は、同等のPL/SQLで置き換えられました。

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

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

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

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 Database Vaultの動作について

Oracle Database Vaultの概要

Oracle Database Vaultは、適切な権限を持たないユーザーによる機密データへのアクセスと、不正なデータベースの変更を防ぐための制御機能を備えています。

内容は次のとおりです。

- Oracle Database Vaultについて

- 特権アカウントに対する統制

- データベース構成に対する統制

- エンタープライズ・アプリケーションの保護ポリシー

- ユーザーおよびアプリケーションの実行時権限分析

Oracle Database Vaultについて

Oracle Database Vaultのセキュリティ管理機能は、アプリケーション・データを不正アクセスから守り、プライバシー要件や法規的な要件を満たします。

統制によって特権アカウントによるアプリケーション・データへのアクセスをブロックすることや、信頼できるパスの認可を使用してデータベース内での要注意操作を統制することができます。権限およびロールの分析により、最小権限のベスト・プラクティスを使用することで、既存のアプリケーションのセキュリティを強化できます。Oracle Database Vaultは、既存のデータベース環境のセキュリティを透過的に強化するので、コストと時間をかけてアプリケーションを変更する必要はありません。

特権アカウントに対する統制

特権データベース・アカウントは、データベース内の機密性の高いアプリケーション・データへのアクセスを獲得する手段として最もよく使われています。

広範囲にわたる無制限のアクセス権が付与されているので、データベースの保守がしやすくなりますが、同じアクセス権が攻撃ポイントとなって大量のデータへのアクセスを許してしまうおそれがあります。Oracle Database Vaultのレルムにアプリケーション・スキーマ、機密性の高い表、およびストアド・プロシージャを入れておくと、特権アカウントを悪用した侵入者や内部犯行者による機密アプリケーション・データへのアクセスを阻止するための統制を実施できるようになります。

図1-1 DBAによるデータへのアクセスのOracle Database Vaultレルムによるブロッキング

データベース構成に対する統制

監査で明らかになる事項として最も多いのが、無認可でデータベース権限が変更されていることと、DBAロールを付与されているユーザーが多すぎることです。

本番環境に対する無認可での変更を阻止することが重要であるのは、セキュリティのためだけではなく、コンプライアンスのためでもあります。そのような変更によってセキュリティが弱まるおそれがあり、侵入口を開くことになって、プライバシーおよびコンプライアンスの規制に対する違反となるからです。Oracle Database VaultのSQLコマンド・ルールを利用すると、データベース内部での操作(たとえば、CREATE TABLE、TRUNCATE TABLE、CREATE USERなどのコマンド)を統制できます。IPアドレス、認証方法、プログラム名などの多様なファクタがあらかじめ定義されているので、盗んだパスワードを悪用する攻撃を阻止するための信頼できるパスの認可の実装に役立ちます。このような統制は、意図しない構成変更を防ぐだけでなく、ハッカーや内部犯行者によるアプリケーションの改悪を阻止します。

Oracle Database Vaultの必須モードのレルムを利用すると、アプリケーション・オブジェクトへのアクセスを禁止でき、オブジェクト所有者など、オブジェクトに対する権限が直接付与されている場合もアクセスできなくなります。必須レルムでは、アクセスできるユーザーを分析する必要はありません。これは、認可ユーザーのリストからそれが明らかであるためです。必須レルムは実行時に有効化でき、サイバー脅威の発生時にこのレルムを使用すると、その脅威の分析が完了するまで一切のアクセスを禁止できます。

エンタープライズ・アプリケーションの保護ポリシー

アプリケーション固有のOracle Database Vault保護ポリシーおよびガイドラインを、主要なエンタープライズ・アプリケーションで利用可能です。

これらのエンタープライズ・アプリケーションには、Oracle Fusion Applications、Oracle E-Business Suit、Oracle PeopleSoft、Oracle Siebel、Oracle Financial Services (i-Flex)、Oracle Primavera、SAPおよびInfosysのFinacleが含まれています。

ユーザーおよびアプリケーションの実行時権限分析

Oracle Database Vaultでは、実行時に使用される、実際の権限およびロールを識別できます。

その後で、余分な未使用のロールや権限の監査または取消しをセキュリティ管理者が行うことによって、攻撃対象領域を縮小するとともに、最低限の権限のモデルを実施できます。権限分析は管理者に対して使用することもでき、管理者としての職務を果たすために付与されるロールおよび権限を制限するのに役立ちます。権限分析を実行するときは、Oracle Database Vaultが有効化されていなくてもかまいません。

Oracle Database Vaultの使用に必要な権限

Oracle Database Vaultは、様々なユーザーが職務の分離ガイドラインに基づいて特定のタスクを実行するためのデータベース・ロールを提供します。

よく使用されるロールは次のとおりです。

- DV_OWNERおよびDV_ADMINでは、Database Vaultポリシーを作成および管理できます。

- DV_ACCTMGRでは、ユーザー・アカウントを管理できます。

Oracle Database Vaultを登録すると、DV_OWNERロールがユーザーに付与されます。このユーザーは、構成プロセスの開始前に存在する必要があります。また、DV_ACCTMGRロールが、2人目となるオプションのユーザーに付与されます。このユーザーも構成前に存在する必要があります。Database Vaultロールは他のユーザーに付与できますが、それらのユーザーが信頼できることを確認してください。

登録プロセスの間に、DV_OWNERユーザーとDV_ACCTMGRユーザーのバックアップ・アカウントを作成する必要があります。ベスト・プラクティスとして、これらのバックアップ・アカウントを保持し続けることをお薦めします。

関連項目:

- Oracle Database Vaultロールをすべて示すリストについては、「Oracle Database Vaultロール」を参照してください

- DV_OWNERおよびDV_ACCTMGRのバックアップ・アカウントの保持の重要性については、「バックアップOracle Database Vaultアカウント」を参照してください

Oracle Database Vaultのコンポーネント

Oracle Database Vaultには、PL/SQLパッケージおよび他の特定のツールを含む一連のコンポーネントがあります。

内容は次のとおりです。

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

- Oracle Enterprise Manager Cloud ControlのDatabase Vault Administratorページ

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

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

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

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

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

これらのコンポーネントは次のとおりです。

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

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

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

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

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

これらのコンポーネントを補強するため、Oracle Database Vaultには一連のPL/SQLインタフェースおよびパッケージが用意されています。「Oracle Database Vault PL/SQLインタフェースおよびパッケージ」で概要を説明しています。

これらのコンポーネントの他に、ユーザーの権限使用を分析できます。「権限分析を実行した権限の使用の確認」では、権限分析の使用方法を説明しています。

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

Oracle Enterprise Manager Cloud ControlのDatabase Vault Administratorページ

Oracle Database Vaultはデフォルトで事前インストールされており、簡単に有効化できます。

Oracle Database Vaultの管理はOracle Enterprise Manager Cloud Controlに完全統合されているので、セキュリティ管理者は効率的な中央集中型インタフェースでOracle Database Vaultを管理できます。

Oracle Enterprise Manager Cloud Controlでは、Database Vaultのポリシーの構成とDatabase Vaultのアラートおよびレポートの表示にグラフィカル・ユーザー・インタフェースを使用する場合、「Oracle Database Vault Administrator」ページにアクセスできます。Oracle Database Vault Administratorには、ベースライン・セキュリティ構成の理解をサポートするセキュリティ関連のレポートが多数用意されています。これらのレポートは、このベースラインからの偏差の特定にも役立ちます。

「Oracle Database Vaultの開始」からOracle Database Vault環境でのDBA操作」では、レルム、コマンド・ルール、ファクタ、ルール・セット、セキュア・アプリケーション・ロールで定義されるアクセス制御ポリシーを構成するためのOracle Database Vault Administratorページの使用方法と、他のOracle製品へのOracle Database Vaultの統合方法について説明します。「Oracle Database Vaultの監視」では、これらのページを使用してDatabase Vaultアクティビティを監視する方法について、「Oracle Database Vaultレポート」では、Oracle Database Vaultのレポート作成について説明します。

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

Oracle Database Vaultのデータベース・オブジェクトおよびパブリック・ファンクションは、それぞれDVSYSとDVFスキーマに格納されます。

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

「Oracle Database Vaultのスキーマ、ロールおよびアカウント」では、これらのスキーマについて詳しく説明します。

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

Oracle Database Vaultは、セキュリティ管理者やアプリケーション開発者がアクセス制御ポリシーを構成できるように、PL/SQLインタフェースとパッケージを備えています。

PL/SQLプロシージャおよびファンクションを使用すると、指定されたデータベース・セッションのコンテキスト内にあるアクセス制御ポリシーの範囲内において、通常のデータベース・アカウントでの操作が可能になります。

詳細は、「Oracle Database VaultレルムのAPI」から「Oracle Database Vault APIリファレンス」までを参照してください。

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

Oracle Database Vaultが監視する様々なアクティビティ上でレポートを生成できます。

また、ポリシー変更、セキュリティ違反未遂行為、およびデータベースの構成や構造の変更も監視できます。

生成可能なレポートの詳細は、「Oracle Database Vaultレポート」を参照してください。「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には、データベース、レルムによって保護されているアプリケーションおよびデータベース内のコマンドへのアクセスを制御するためにルールと組み合せて使用できる組込みのファクタが用意されています。

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

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

Oracle Database Vaultは、データベースの柔軟なセキュリティ・ポリシーの設計を支援します。

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

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

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

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

Oracle Database Vaultの職務分離は、規模を問わず企業の要件に合わせてカスタマイズできます。たとえば、専門のITスタッフや、アウトソーシング先のバックエンド事業者を抱えている大規模なユーザーは、職務分離をさらに微調整して、アウトソーシング先のデータベース管理者が実行できる処理を制御することができます。一方、一部のユーザーが複数の職責を兼ねる小規模な組織であれば、職務分離を整理し、それらのユーザーが職責ごとに個別の専用アカウントを作成することができます。実行されたすべてのアクションを追跡できるので、侵入者が権限のあるデータベース・アカウントを侵害して不正利用し、機密データを盗み出すことも防止できます。また、監査者によるコンプライアンスの検証も容易になります。

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

統合とクラウド環境によってコストは削減されますが、機密アプリケーション・データが、本来アクセスする必要のない人にも公開されるおそれがあります。

ある国からのデータがまったく別の国でホスティングされることもありますが、そのデータへのアクセスはデータが属する国の規制に基づいて制限する必要があります。Oracle Database Vaultによる統制の下で、データベース管理者によるアプリケーション・データへのアクセスを禁止することによって、このような環境のセキュリティを強化できます。加えて、統制はアプリケーションのバイパスのブロックにも役立ち、アプリケーション層からアプリケーション・データへは信頼できるパスだけを強制的に使用させることができます。

Oracle Database Vaultでは、セキュリティ管理のために次の4つの個別の職務分離制御が提供されます。

- DBAロールを使用した日常的なデータベース管理者作業

- DV_OWNERロールとDV_ADMINロールを使用したセキュリティ管理者作業

- DV_ACCTMGRロールを使用したアカウント管理者作業

- 信頼できる名前付きユーザーによるロールおよび権限の付与

Oracle Database Vault職務分離制御はカスタマイズでき、リソースが限られている組織は、複数のOracle Database Vault責務を同じ管理者に割り当てることができますが、あるアカウントが盗用された場合にデータベースへの損害が最小限に抑えられるよう、職務分離ロールごとに別個のアカウントを使用します。

今日においても、非常に多くのOracleデータベースがエンタープライズ、さらには世界中に分散しています。ただし、今後数年間のコスト削減戦略としてデータベース統合が効果を発揮するには、専用データベース・アーキテクチャによって提供される物理的なセキュリティも、統合環境で利用できなければなりません。Oracle Database Vaultは、データベース統合に関する主要なセキュリティの問題に対応します。

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

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

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

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

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

マルチテナント環境におけるOracle Database Vaultの動作について

Oracle Database VaultをOracle Multitenantとともに使用すると、統合のセキュリティがさらに強化されます。

プラガブル・データベース(PDB)内やPDBとコンテナ・データベースでの共通特権ユーザーとの間での特権ユーザー・アクセスを禁止できます。各プラガブル・データベース(PDB)は、レルム、ルール・セット、コマンド・ルール、デフォルト・ポリシー(デフォルト・レルムなど)など独自のDatabase Vaultメタデータを持ちます。また、任意の子のPDBでDVSYSスキーマやDVFスキーマ内のオブジェクトを自動的に利用できます。これらのスキーマはどちらも共通のユーザー・スキーマです。

Oracle Database Vaultのポリシーは個々のPDBに格納されるので、PDBごとに個別のポリシーを作成できます。Database Vaultを使用してオブジェクトを保護する場合、Database Vaultは、共通のオブジェクトの共通の権限を、ローカル・システム権限と同じ強制ルール下に置きます。

Database Vaultを有効にしたPDBを構成すると、DVSYSスキーマが共通ユーザー・スキーマとなり、ルートに格納されます。つまり、DVSYSスキーマ内のすべてのオブジェクト(表、データ・ディクショナリ・ビュー、ユーザー・アカウント、PL/SQLパッケージ、デフォルト・ポリシーなど)が、このスキーマに利用可能な共通の権限の影響下にあるということになります。すなわち、レルム、ファクタなどをルートに作成してルートのスキーマを保護できます。Database Vaultは、関連付けられたPDBで構成する前に、まずルートで構成するようにしてください。

図1-3は、Database Vaultの保護が共通ユーザーおよびローカル・ユーザーにどのように適用されるかを示しています。このシナリオでは、共通ユーザーおよびローカル・ユーザーのいずれも、PDB1とPDB2のレルムにアクセスできません。共通ユーザーおよびPDB3のローカル・ユーザーのいずれも、Database Vaultが有効化されていないPDB3のCRMアプリケーションにはアクセスできます。

図1-3 マルチテナント環境におけるOracle Database Vault

関連項目:

- マルチテナント環境におけるコマンド・ルール

- スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン

- CDBの詳細は、『Oracle Database管理者ガイド』を参照してください

2 Oracle Database Vaultの有効化後のヒント

Oracle Database Vaultを有効にすると、デフォルトのユーザー権限などのいくつかのOracle Databaseセキュリティ機能が、より強力なセキュリティ制限を提供するように変更されます。

内容は次のとおりです。

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

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

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

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

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

- 非統合監査環境の変更されたAUDIT文の設定

関連項目:

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

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

Oracle Database Vaultの構成は、デーベース構成のセキュリティを強化するために、いくつかのデータベース初期化パラメータ設定を変更します。

これらの変更が組織のプロセスやデータベースのメンテナンス手順に影響した場合、問題を解決するには、Oracleサポートにご連絡ください。

表2-1で、Oracle Database Vaultにより変更される初期化パラメータ設定を説明します。初期化パラメータは、init.ora初期化パラメータ・ファイルに格納されます。UNIXおよびLinuxでは、このファイルは$ORACLE_HOME/dbsにあります。Windowsでは、このファイルは$ORACLE_HOME/databaseにあります。このファイルの詳細は、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オブジェクト権限も付与されるようにする必要があります。

ユーザーに(SELECTではなく)READオブジェクト権限のみが付与される場合、UPDATEまたはDELETE操作を実行できないことに留意してください。

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

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

Oracle Database構成には、追加的な管理データベース・アカウント名がさらに2つ必要です。

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

関連項目:

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

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

Oracle Database Vaultの構成は、法規、プライバシー、その他のコンプライアンス要件を満たすことができるように、職務分離の概念を実現します。

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

関連項目:

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

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

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

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

- DV_OWNERおよびDV_ACCTMGRアカウントのバックアップ・アカウントの作成に関するアドバイスは、「バックアップOracle Database Vaultアカウント」を参照してください

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

Oracle Database Vault構成は、Oracle Databaseで提供されている複数のユーザーおよびロールの権限を取り消します。

表2-2に、Oracle Database Vaultによって、Oracle Databaseで提供されている複数のユーザーおよびロールから取り消される権限の一覧を示します。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でのOracle Schedulerの使用」を参照してください。

注意:

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

関連項目:

- 表12-1

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

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

Oracle Database Vaultの構成は、すべてのユーザーおよびロールに付与されている権限の一部を無効化します。この対象には、SYSユーザーとSYSTEMユーザーも含まれます。

DV_ACCTMGRロールには、職務分離に対する次の権限があります。

- ALTER PROFILE

- ALTER USER

- CREATE PROFILE

- CREATE USER

- DROP PROFILE

- DROP USER

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

非統合監査環境の変更されたAUDIT文の設定

Oracle Database Vaultを構成する際に統合監査を使用しない場合、Database Vaultは複数のAUDIT文を構成します。

詳細は、「Oracle Database Vault用に作成されるOracle Database監査設定」を参照してください。

3 Oracle Database Vaultの開始

Oracle Database Vaultを使用して開始する前に、これをOracle Databaseに登録する必要があります。

内容は次のとおりです。

- Oracle DatabaseへのOracle Database Vaultの登録

- Oracle Database Vaultへのログイン

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

Oracle DatabaseへのOracle Database Vaultの登録

Oracle Database Vaultは、非マルチテナント環境またはマルチテナント環境のどちらでも登録できます。

内容は次のとおりです。

- Oracle DatabaseへのOracle Database Vaultの登録の概要

- 非マルチテナント環境におけるOracle Database Vaultの登録

- CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録

- 個別PDBを管理するためのDatabase Vault共通ユーザーの登録

- プラグインされたDatabase Vault PDB用の共通Database Vaultアカウント作成

- Oracle Database Vaultが構成および有効化されていることの確認

Oracle DatabaseへのOracle Database Vaultの登録の概要

Oracle Oracleのインストール後に、Oracle Database VaultをインストールしたOracle Databaseに登録(すなわち構成および有効化)する必要があります。

Oracle Databaseには、インストール・プロセスでデフォルトのデータベースを含めるように選択した場合、Database Vaultが付属しますが、このDatabase Vaultを使用するには登録する必要があります。カスタム・データベースを作成する場合、DBCAを使用してDatabase Vaultをインストールし、そのデータベースに対して有効にすることができます。登録プロセスの一部として、Database Vault管理者アカウント作成します。登録プロセスでは、Oracle Label Securityがまだ有効ではない場合、有効になります。Oracle Label SecurityはOracle Database Vaultに必要ですが、別にOracle Label Securityの使用を開始してOracle Label Securityポリシーを作成する場合を除き、別個のライセンスは必要ありません。このプロシージャは、現在のプラガブル・データベース(PDB)、および単一インスタンスとOracle RACの両方のインストールに適用されます。Database Vaultがすでに有効になっているかどうかの確認については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください。

この項では、Oracle Database Vaultを非マルチテナント環境において登録する方法、およびマルチテナント環境において登録する複数の方法を説明します。

非マルチテナント環境におけるOracle Database Vaultの登録

非マルチテナント環境では、SQL*PlusからOracle Database Vaultを登録します。

1. ユーザーアカウントの作成権限を持つユーザーとしてログインし、他のユーザーにCREATE SESSION権限を付与します。

次に例を示します。

sqlplus sec_admin
Enter password: password

2. Database Vault所有者(DV_OWNERロール)およびDatabase Vaultアカウント・マネージャ(DV_ACCTMGRロール)のアカウント用に使用されるアカウントを作成します。

ロールごとに2つのアカウントを作成することをお薦めします。一方のアカウントはプライマリ・アカウントであり、日常的に使用されます。他方のアカウントは、プライマリ・アカウントのパスワードを忘れてしまいリセットする必要がある場合に備えたバックアップ・アカウントとして使用されます。

次に例を示します。

GRANT CREATE SESSION TO dbv_owner IDENTIFIED BY password;
GRANT CREATE SESSION TO dbv_owner_backup IDENTIFIED BY password;
GRANT CREATE SESSION TO dbv_acctmgr IDENTIFIED BY password;
GRANT CREATE SESSION TO dbv_acctmgr_backup IDENTIFIED BY password

passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

詳細は、「Oracle Database Vaultアカウントのバックアップ」を参照してください。

passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

DV_OWNERアカウントとDV_ACCTMGRアカウントが職務分離のガイドラインにどのように従うかの詳細は、Oracle Database Vault環境での作業分離を参照してください。

3. SYSDBA管理権限を使用して接続します。

CONNECT / AS SYSDBA
Enter password: password

4. プライマリDatabase Vaultユーザー・アカウントを構成します。

BEGIN
DVSYS.CONFIGURE_DV (
dvowner_uname         => 'dbv_owner',
dvacctmgr_uname       => 'dbv_acctmgr');
END;
/

これらのユーザー・アカウントに、DV_OWNER、DV_ACCTMGRなどの、Database Vaultロールの名前を入力しないでください。これらの名前は予約語です。Database Vaultロールの詳細は、「Oracle Database Vaultロール」を参照してください。

5. utlrp.sqlスクリプトを実行して、無効化されたオブジェクトを再コンパイルします。

@?/rdbms/admin/utlrp.sql

スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

6. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして接続します。

次に例を示します。

CONNECT dbv_owner
Enter password: password

7. Oracle Database Vaultを有効化します。

EXEC DBMS_MACADM.ENABLE_DV;

8. SYSDBA管理権限を使用して接続します。

CONNECT / AS SYSDBA

9. データベースを再起動します。

SHUTDOWN IMMEDIATE
STARTUP

10. プライマリDV_OWNERユーザーとして接続し、前に作成したバックアップDV_OWNERユーザーにDV_OWNERロールを付与します。

次に例を示します。

CONNECT dbv_owner
Enter password: password

GRANT DV_OWNER TO dbv_owner_backup;

11. プライマリDV_ACCTMGRユーザーとして接続し、バックアップDV_ACCTMGRユーザーにDV_ACCTMGRロールを付与します。

次に例を示します。

CONNECT dbv_acctmgr
Enter password: password

GRANT DV_ACCTMGR TO dbv_acctmgr_backup;

12. 2つのバックアップ・アカウントを、将来必要になる場合に備えて、安全な場所に格納します。

関連項目:

- この手順が正しく実行されたことを確認する方法については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください

- Oracle Database Vault Administratorへのログインについては、「Oracle Database Vaultへのログイン」を参照してください

- バックアップ・アカウント作成の重要性の詳細は、「バックアップOracle Database Vaultアカウント」を参照してください

CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録

SQL*Plusでは、CDBルートを管理する共通ユーザーでOracle Database Vaultを登録できます。

1. マルチテナント環境において、ユーザー作成権限を持ち、CREATE SESSIONおよびSET CONTAINER権限を付与する権限を持つユーザーとして、データベース・インスタンスのルートにログインします。

次に例を示します。

sqlplus c##sec_admin
Enter password: password

2. Database Vault所有者(DV_OWNERロール)およびDatabase Vaultアカウント・マネージャ(DV_ACCTMGRロール)のアカウント用に使用されるアカウントを作成します。

ロールごとに2つのアカウントを作成することをお薦めします。一方のアカウントはプライマリ・アカウントであり、日常的に使用されます。他方のアカウントは、プライマリ・アカウントのパスワードを忘れてしまいリセットする必要がある場合に備えたバックアップ・アカウントとして使用されます。

これらのアカウント名の先頭にc##またはC##を付加します。次に例を示します。

GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root IDENTIFIED BY password CONTAINER = ALL;
GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root_backup IDENTIFIED BY password CONTAINER = ALL;
GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root IDENTIFIED BY password CONTAINER = ALL;
GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root_backup IDENTIFIED BY password CONTAINER = ALL;

passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

バックアップ・アカウントの詳細は、バックアップOracle Database Vaultアカウントを参照してください。

DV_OWNERアカウントとDV_ACCTMGRアカウントが職務分離のガイドラインにどのように従うかの詳細は、Oracle Database Vault環境での作業分離を参照してください。

3. SYSDBA管理権限を持つユーザーSYSとしてルートに接続します。

CONNECT SYS AS SYSDBA
Enter password: password

4. プライマリDatabase Vaultユーザー・アカウントを構成します。

BEGIN
DVSYS.CONFIGURE_DV (
dvowner_uname         => 'c##dbv_owner_root',
dvacctmgr_uname       => 'c##dbv_acctmgr_root');
END;
/

5. utlrp.sqlスクリプトを実行して、ルートで無効化されたオブジェクトを再コンパイルします。

@?/rdbms/admin/utlrp.sql

スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

6. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして、ルートに接続します。

次に例を示します。

CONNECT c##dbv_owner_root
Enter password: password

7. Oracle Database Vaultを有効化します。

EXEC DBMS_MACADM.ENABLE_DV;

8. SYSDBA管理権限を使用して接続します。

CONNECT / AS SYSDBA

9. データベースを再起動します。

SHUTDOWN IMMEDIATE
STARTUP

10. プライマリDV_OWNERユーザーとして接続し、前に作成したバックアップDV_OWNERユーザーにDV_OWNERロールを付与します。

次に例を示します。

CONNECT c##dbv_owner_root
Enter password: password

GRANT DV_OWNER TO c##dbv_owner_root_backup;

11. プライマリDV_ACCTMGRユーザーとして接続し、バックアップDV_ACCTMGRユーザーにDV_ACCTMGRロールを付与します。

次に例を示します。

CONNECT c##dbv_acctmgr_root
Enter password: password

GRANT DV_ACCTMGR TO c##dbv_acctmgr_root_backup;

12. 2つのバックアップ・アカウントを、将来必要になる場合に備えて、安全な場所に格納します。

関連項目:

- この手順が正しく実行されたことを確認する方法については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください

- Oracle Database Vault Administratorへのログインについては、「Oracle Database Vaultへのログイン」を参照してください

- バックアップ・アカウントの重要性については、「バックアップOracle Database Vaultアカウント」を参照してください

個別PDBを管理するためのDatabase Vault共通ユーザーの登録

マルチテナント環境では、Oracle Database Vaultをまずルートに登録して、それからPDBに登録する必要があります。

先にPDBに登録しようとすると、ORA-47503「Database VaultはCDB$ROOTで有効化されていません。」エラーが表示されます。

1. マルチテナント環境において、ユーザー作成権限を持ち、CREATE SESSIONおよびSET CONTAINER権限を付与する権限を持つユーザーとして、データベース・インスタンスのルートにログインします。

次に例を示します。

sqlplus c##sec_admin
Enter password: password

2. まだ作成していない場合は、Database Vaultアカウントとして使用するユーザー・アカウントを作成します。

これらのアカウントの詳細は、「CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録」の手順2を参照してください。

3. 「CDBのルートを管理するための共通ユーザーによるOracle Database Vaultの登録」に説明されているように、Oracle Database VaulはCDBルートで登録してください。

4. 共通ユーザーにアクセス権限が必要なPDBに接続します。

次に例を示します。

CONNECT c##sec_admin@pdb_name
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

5. これらのユーザーに、CREATE SESSION権限およびSET CONTAINER権限を付与します。

次に例を示します。

GRANT CREATE SESSION, SET CONTAINER TO c##dbv_owner_root CONTAINER = CURRENT;
GRANT CREATE SESSION, SET CONTAINER TO c##dbv_acctmgr_root CONTAINER = CURRENT;

6. SYSDBA管理権限を持つユーザーSYSとして接続します。

CONNECT SYS@pdb_name AS SYSDBA
Enter password: password

7. PDBにいる間に、2つのプライマリDatabase Vaultユーザー・アカウントを構成します。

次に例を示します。

BEGIN
DVSYS.CONFIGURE_DV (
dvowner_uname         => 'c##dbv_owner_root',
dvacctmgr_uname       => 'c##dbv_acctmgr_root');
END;
/

8. utlrp.sqlスクリプトを実行して、このPDBで無効化されたオブジェクトを再コンパイルします。

@?/rdbms/admin/utlrp.sql

スクリプトから指示がある場合はそれに従い、再びスクリプトを実行します。指示がなくスクリプトが異常終了した場合は、再びスクリプトを実行します。

9. 先ほど構成したプライマリDatabase Vault所有者ユーザーとして、PDBに接続します。

次に例を示します。

CONNECT c##dbv_owner_root@pdb_name
Enter password: password

10. このPDBでOracle Database Vaultを有効にします。

EXEC DBMS_MACADM.ENABLE_DV;

11. SYSDBA管理権限でCDBに接続します。

CONNECT / AS SYSDBA

12. PDBを閉じてから、再度開きます。

次に例を示します。

ALTER PLUGGABLE DATABASE pdb_name CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE pdb_name OPEN;

関連項目:

- この手順が正しく実行されたことを確認する方法については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください

- Oracle Database Vault Administratorへのログインについては、「Oracle Database Vaultへのログイン」を参照してください

プラグインされたDatabase Vault PDB用の共通Database Vaultアカウント作成

マルチテナント環境では、SQL*Plusから、すでにDatabase Vaultが有効になっているデータベースに接続できます。

このシナリオでは、接続されるデータベースには、独自のローカルDatabase Vaultアカウントがあります。

1. ローカル・プライマリDatabase Vault所有者として、PDBにログインします。

次に例を示します。

sqlplus dbv_owner@pdb_name
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. 共通Database Vault DV_OWNERユーザーに、CREATE SESSION権限とSET CONTAINER権限、および適切なDatabase Vaultロールを付与します。

次のアカウントは、プライマリおよびバックアップ・アカウントになります。

GRANT CREATE SESSION, SET CONTAINER, DV_OWNER TO c##dbv_owner_root;
GRANT CREATE SESSION, SET CONTAINER, DV_OWNER TO c##dbv_owner_root_backup;

3. DV_ACCTMGRロールを付与されているユーザーとして接続します。

4. DV_ACCTMGR共通アカウントを作成します。

GRANT CREATE SESSION, SET CONTAINER, DV_ACCTMGR TO c##dbv_acctmgr_root;
GRANT CREATE SESSION, SET CONTAINER, DV_ACCTMGR TO c##dbv_acctmgr_root_backup;

関連項目:

- この手順が正しく実行されたことを確認する方法については、「Oracle Database Vaultが構成および有効化されていることの確認」を参照してください

- Oracle Database Vault Administratorへのログインについては、「Oracle Database Vaultへのログイン」を参照してください

Oracle Database Vaultが構成および有効化されていることの確認

V$OPTION動的ビューと、DVSYS.DBA_DV_STATUSおよびDBA_OLS_STATUSデータ・ディクショナリ・ビューは、Oracle Databaseが構成されて有効になっているかどうかを確認します。

- V$OPTION動的ビューの問い合せは以下の要領で行います。

- Oracle Database Vaultが構成および有効化されていることを確認するには、次の問合せを実行して、VALUE設定がTRUEと表示される必要があります。

SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

- Oracle Label Securityが有効化されているかどうかを確認するには、次のようにV$OPTION動的ビューに問い合せます。

SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Label Security';

- ステータスまたはOracle Database Vaultに関する、DVSYS.DBA_DV_STATUSデータ・ディクショナリ・ビューの問合せは、以下の要領で行います。

SELECT * FROM DVSYS.DBA_DV_STATUS;

次のような出力が表示されます。

NAME                 STATUS
-------------------- -----------
DV_CONFIGURE_STATUS  FALSE
DV_ENABLE_STATUS     FALSE

- Oracle Label Securityの有効化および構成のステータスを確認するには、DBA_OLS_STATUSデータ・ディクショナリ・ビューに問い合わせます。この場合、DVSYS.DBA_DV_STATUSの場合と同様の出力が得られます。

Oracle Database Vaultへのログイン

Oracle Enterprise Manager Cloud Control (Cloud Control)には、Oracle Database Vaultページが用意されています。

Oracle Database Vaultページを使用すれば、Database Vaultで保護されたデータベースの管理と監視を1つのコンソールから集中的に行うことができます。このコンソールでは、アラートの自動化、Database Vaultレポートの表示、およびDatabase Vaultで保護されたその他のデータベースへのDatabase Vaultポリシーの伝播が可能です。

1. Database Vaultで使用するCloud Controlターゲット・データベースが構成されていることを確認します。

ターゲット・データベースの構成の詳細は、Oracle Enterprise Managerオンライン・ヘルプおよび『Oracle Enterprise Managerアドバンスト構成』を参照してください。

2. 必要に応じて、Oracle Database Vaultを登録します。

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

3. Cloud Controlを起動します。

次に例を示します。

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

4. セキュリティ管理者としてCloud Controlにログインします。

5. Cloud Controlのホーム・ページで、「ターゲット」メニューから「データベース」を選択します。

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

データベースのホームページが表示されます。

7. 「セキュリティ」メニューから、「Database Vault」を選択します。

「データベース・ログイン」ページが表示されます。

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

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

- Database Vaultポリシーの作成および伝播: DV_OWNERまたはDV_ADMINロール、SELECT ANY DICTIONARY権限

- Database Vaultアラートおよびレポートの表示: DV_OWNER、DV_ADMINまたはDV_SECANALYSTロール、SELECT ANY DICTIONARY権限

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

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

- ロール: リストから「通常」を選択します。

- 別名保存: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。資格証明は、Enterprise Managerに安全な方法で格納されます。これらの資格証明へのアクセスは、現在ログインしているユーザーによって異なります。

Database Vaultホームページが表示されます。

関連項目:

Oracle Database VaultのOracle Enterprise Managerとの使用

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

このチュートリアルでは、HRスキーマの周辺でレルムを作成する方法を示します。

内容は次のとおりです。

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

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

- 手順2: レルムの作成

- 手順3: SEBASTIANユーザー・アカウントの作成

- 手順4: ユーザーSEBASTIANによるレルムのテスト

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

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

- 手順7: 統合監査が有効ではない場合のレポートの実行

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

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

このチュートリアルでは、Oracle Database Vault PL/SQLパッケージを使用することで、HRサンプル・データベース・スキーマに関わるレルムを作成します。

HRスキーマのEMPLOYEES表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HRスキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。最後に、レポートを実行し、レルムをテストする際に試行するような疑わしいアクティビティの監査証跡をOracle Database Vaultがどのように作成するかを確認します。

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

このチュートリアル用にHRスキーマを有効にする必要があります。

1. HRサンプル・スキーマがインストールされていることを確認します。

サンプル・スキーマのインストールについては、『Oracle Databaseサンプル・スキーマ』を参照してください。

2. DBAロールを付与されたユーザーとしてデータベース・インスタンスにログインしてから、HRスキーマにアクセスします。

次に例を示します。

sqlplus system
Enter password: password

3. マルチテナント環境で、適切なPDBに接続します。

次に例を示します。

CONNECT SYSTEM@my_pdb
Enter password: password

利用可能なPDBを確認するには、CDBで、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

4. HR.EMPLOYEES表に次のように問い合せます。

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM < 10;

次のような出力が表示されます。

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Steven               King                           24000
Neena                Kochhar                        17000
Lex                  De Haan                        17000
Alexander            Hunold                          9000
Bruce                Ernst                           6000
David                Austin                          4800
Valli                Pataballa                       4800
Diana                Lorentz                         4200
Nancy                Greenberg                      12008

9 rows selected.

5. HRスキーマがロックされて無効になっている場合は、DV_ACCTMGRユーザーとしてデータベース・インスタンスにログインし、アカウントをロック解除して有効にします。例:

sqlplus bea_dvacctmgr -- For a multitenant environment, sqlplus bea_dvacctmgr@hrpdb
Enter password: password

ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password

passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

この例からわかるように、SYSTEMにはHRスキーマのEMPLOYEES表の給与情報へのアクセス権があります。SYSTEMには、SELECT ANY TABLEシステム権限を含むDBAロールが自動的に付与されるためです。

6. SQL*Plusを終了しないでください。

手順2: レルムの作成

レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。

レルムを作成したら、レルム内のスキーマやスキーマ・オブジェクトに適用するセキュリティ制限を作成します。

まず、HRスキーマにレルムを作成します。

1. DV_OWNERまたはDV_ADMINロールおよびSELECT ANY DICTIONARY権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「レルム」をクリックします。(デフォルトで選択されています。)

3. Oracle Database Vault Administratorの「レルム」ページで、「作成」をクリックします。

4. 「レルムの作成」ページの「一般」で、「名前」の後にHR Appsと入力します。

5. 「説明」フィールドに、Realm to protect the HR schemaと入力します。

6. 「必須レルム」チェック・ボックスの選択を解除したままにします。

7. 「ステータス」に「有効」が選択されていて、そのレルムが使用可能になっていることを確認します。

8. 「監査オプション」で、「失敗時に監査」が選択されていて、後から監査証跡を作成できることを確認します。

9. 「次へ」をクリックして、「レルム・セキュア・オブジェクト」ページを表示します。

10. 「追加」ボタンをクリックして、「セキュア・オブジェクトの追加」ダイアログ・ボックスで次の情報を入力します。

- 所有者: HRと入力してHRスキーマを選択します。

- オブジェクト・タイプ: TABLEと入力します。

- オブジェクト名: EMPLOYEESと入力します。

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

HR.EMPLOYEES表は、「レルムの作成 : レルム・セキュア・オブジェクト」ページに追加されます。

12. 「完了」、「終了」の順にクリックします。

この段階で、レルムが作成されていますが、それに対する認可は割り当てられていません。このチュートリアルで後ほど対応します。

手順3: SEBASTIANユーザー・アカウントの作成

この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。

そのため、この手順でデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIANユーザー・アカウントを作成します。

1. DV_ACCTMGRロールを持つDatabase Vaultアカウント・マネージャとしてSQL*Plusに接続し、ローカル・ユーザーSEBASTIANを作成します。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

GRANT CREATE SESSION TO SEBASTIAN IDENTIFIED BY password;

passwordを安全なパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

2. SYSDBA権限を持つSYSとして接続し、SEBASTIANに次の追加権限を付与します。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
Enter password: password

GRANT READ ANY TABLE TO SEBASTIAN;

(「手順6: レルムのテスト」でレルムをテストする際に必要なため、SQL*Plusを終了しないでください。)

手順4: ユーザーSEBASTIANによるレルムのテスト

この段階では、ユーザーSEBASTIANに、READ ANY TABLEシステム権限があるとしてもレルムをテストさせます。

1. ユーザーSEBASTIANとして接続します。

CONNECT sebastian
Enter password: password

2. HR.EMPLOYEES表を問い合せます。

SELECT COUNT(*) FROM HR.EMPLOYEES;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

ユーザーSEBASTIANにはREAD ANY TABLEシステム権限がありますが、HR.EMPLOYEES表を問合せできません。これは、HR AppsレルムがREAD ANY TABLEシステム権限よりも優先されるためです。

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

次に、HR.EMPLOYEES表にアクセスできるよう、ユーザーSEBASTIANにHR Appsレルムへの認可を与える必要があります。

1. Database Vault Administratorの「レルム」ページで、レルムのリストから「HR Apps」を選択し、「編集」をクリックします。

2. 「レルム認可」ページになるまで、「次へ」ボタンをクリックします。

3. 「追加」をクリックし、「認可の追加」ダイアログ・ボックスに次の情報を入力します。

- レルム認可の権限受領者: SEBASTIANと入力します。

- レルム認可タイプ: リストから「参加者」を選択します。

- レルム認可ルールセット: このフィールドは空白のままにします。

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

「参加者」認可により、HR Appsレルム内のユーザーSEBASTIANは、HR Appsレルムで保護されるオブジェクトのアクセス、操作および作成を管理できるようになります。この場合、EMPLOYEES表の表示を許可されているのは、HRユーザーおよびSEBASTIANのみです。

5. 「完了」、「終了」の順にクリックします。

手順6: レルムのテスト

レルムをテストするには、HR以外のユーザーとしてEMPLOYEES表にアクセスを試みる必要があります。

通常、SYSTEMアカウントにはHRスキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES表を保護しているため、アクセス権はありません。

1. SQL*Plusで、SYSTEMとして接続します。

CONNECT SYSTEM -- Or, CONNECT SYSTEM@hrpdb
Enter password: password

2. もう一度、EMPLOYEES表内の給与情報へのアクセスを試みます。

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;

次のような出力結果が表示されます。

Error at line 1:
ORA-01031: insufficient privileges

SYSTEMにはEMPLOYEES表の給与情報へのアクセス権はなくなります。(実際に、ユーザーSYSでもこの表にはアクセスできません。)しかし、ユーザーSEBASTIANには、この情報へのアクセス権があります。

3. ユーザーSEBASTIANとして接続します。

CONNECT sebastian -- Or, CONNECT sebastian@hrpdb
Enter password: password

4. 次の問合せを実行します。

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;

次のような出力が表示されます。

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Steven               King                           24000
Neena                Kochhar                        17000
Lex                  De Haan                        17000
Alexander            Hunold                          9000
Bruce                Ernst                           6000
David                Austin                          4800
Valli                Pataballa                       4800
Diana                Lorentz                         4200
Nancy                Greenberg                      12008

9 rows selected.

手順7: 統合監査が有効ではない場合のレポートの実行

HR Appsレルム内の障害に関する監査を有効化したので、レポートを作成してセキュリティ侵害を見つけることができます。

たとえば、「ステップ6: レルムのテスト」で行なおうとした違反に関するレポートを作成できます。

1. ユーザーSYSTEMとしてSQL*Plusに接続し、統合監査が有効ではないことを確認します。

CONNECT SYSTEM -- Or, CONNECT SYSTEM@hrpdb
Enter password: password

SQL> SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Unified Auditing';

VALUEがTRUEを戻す場合、この項を完了できません。「手順8: このチュートリアルのコンポーネントの削除」に進みます。

統合監査が有効な場合、イベントを取得する統合監査ポリシーを作成する必要があります。Oracle Database Vaultの統合監査ポリシーの作成方法については、『Oracle Databaseセキュリティ・ガイド』を参照してください。

2. 「Database Vault Administrator」ページで、「ホーム」をクリックしてホーム・ページを表示します。

3. Database Vaultの「ホーム」ページの「レポート」で、「Database Vaultレポート」を選択します。

4. 「Database Vaultレポート」ページで、「Database Vault強制監査レポート」を選択します。

5. Database Vault監査レポートリストで、「レルム監査レポート」を選択します。

6. 「検索」領域で、「コマンド」メニューから「等しい」を選択し、テキスト・フィールドにSELECTと入力します。次に「検索」をクリックします。

「検索」リージョンの後の表にレポートが表示されます。

7. 「OK」をクリックしてレポートを終了します。

Oracle Database Vaultにより、違反の種類(この場合は前の項目で入力したSELECT文)、発生した時間と場所、違反を試みたユーザーのログイン・アカウント、および違反の内容などを示すレポートが生成されます。

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. ユーザーSEBASTIANを削除します。
SQL*Plusで、次のようにOracle Database Vaultアカウント・マネージャ(たとえばbea_dvacctmgr)としてログインし、SEBASTIANを削除します。

sqlplus bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

DROP USER SEBASTIAN;

2. HR Appsレルムを削除します。

a. Cloud Controlで、DV_OWNERロールがあるユーザーとしてログインしていることを確認します。

b. Database Vaultの「ホーム」ページで、「管理」をクリックします。

c. 「レルム」ページで、レルムのリストからHR Appsを選択します。

d. 「削除」をクリックして、「確認」ウィンドウで「はい」をクリックします。

3. 必要な場合は、SQL*Plusで、HRアカウントをロックし、無効にします。

ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;

4 権限分析を実行した権限の使用の確認

権限分析では、ユーザーが使用中および未使用の権限とロールが動的に分析されます。

内容は次のとおりです。

- 権限分析について

- 権限分析ポリシーの作成および管理

- Cloud Controlによるロールの作成および権限の管理

- チュートリアル: ANY権限の使用の分析

- チュートリアル: DBAロールを持つユーザーによる権限の使用の分析

- 権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー

権限分析とは

Oracle Database Vault with Oracle Database Release 12cには、権限分析と呼ばれる機能が組み込まれており、アプリケーションおよびデータベース操作のセキュリティを向上させることができます。

内容は次のとおりです。

- 権限分析について

- 権限分析でのプリコンパイル済データベース・オブジェクトの処理

- 権限分析を実行できるユーザー

- 権限分析のタイプ

- 権限分析の利点およびユースケース

- マルチテナント環境による権限分析への影響について

権限分析について

権限分析では、ユーザー・アカウントまたはデータベースが長期にわたって使用する権限およびロールの動的(静的ではない)分析が実行されます。

動的分析であるため、実際に使用された、実際の権限およびロールが取得されます。

権限分析は、実行時にデータベース・ユーザーおよびアプリケーションによって使用される権限を取得します。これにより、使用されていない権限付与およびその他の変更を取り消して、ユーザーに必要なアクセスをより効果的に反映することができます。権限分析は、最小限の権限履行を実装するために必要となる作業を簡略化します。

Oracle Databaseカーネル内で実行され、使用されている権限と使用されていない権限を特定することによってアプリケーションの攻撃面を縮小し、操作のセキュリティを強化できるようにします。権限分析は、Oracle Database Release 12cをインストールした後、追加の構成手順を実行しなくても使用できます。

権限分析サポートは、Oracle Enterprise Manager Cloud Control 12cリリース3プラグイン・アップデート1 (12.1.0.3)から利用できます。

権限分析でのプリコンパイル済データベース・オブジェクトの処理

権限分析は、プリコンパイル済データベース・オブジェクトに使われた権限を取得するために使用できます。

これらのオブジェクトの例としては、PL/SQLパッケージ、プロシージャ、ファンクション、ビュー、トリガ、Javaクラスおよびデータなどがあります。

このような権限は、ストアド・プロシージャがコールされると実行時に使用されないことがあるため、データベース全体の取得について結果を生成するときに、実行時に取得された権限とともに収集されます。権限は、プリコンパイル済データベース・オブジェクトまたは実行時取得で使用されていない場合、使用されていない権限として扱われ、実行時取得名の下に保存されます。権限がプリコンパイル済データベース・オブジェクトに使用されている場合は、取得名ORA$DEPENDENCYの下に保存されます。権限が実行時に取得された場合は、実行時取得名の下に保存されます。プリコンパイル済データベース・オブジェクトと実行時使用の両方について使用されている権限を把握する場合は、ORA$DEPENDENCYと実行時の両方の取得を問い合せる必要があります。使用されていない権限の場合、実行時取得名で問い合せるだけです。

権限分析を使用できるプリコンパイル済オブジェクトの詳細なリストを確認するには、ALL_DEPENDENCIESデータ・ディクショナリ・ビューのTYPE列を問い合せます。

権限分析を実行できるユーザー

権限分析を使用するには、CAPTURE_ADMINロールが付与されている必要があります。

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用して、権限取得を管理します。権限分析から提供されるデータ・ディクショナリ・ビューを使用して、権限の使用を分析します。

権限分析のタイプ

様々なタイプの権限分析ポリシーを作成して、特定の目的を実現できます。

- ロールベースの権限使用の取得。ロールのリストを提供する必要があります。リストのロールがデータベース・セッションで有効な場合、そのセッションの使用されている権限が取得されます。

- コンテキストベースの権限使用の取得。SYS_CONTEXT関数でのみ、ブール式を指定する必要があります。条件がTRUEと評価されると、使用されている権限が取得されます。

- ロールおよびコンテキストベースの権限使用の取得。有効なロールのリストと条件のSYS_CONTEXTブール式の両方を指定する必要があります。このようなロールのいずれかがセッションで有効であり、指定されたコンテキスト条件が満たされると、権限分析によって権限の使用の取得が開始されます。

- データベース全体の権限の取得。権限分析ポリシーにタイプを指定しない場合、ユーザーSYSの権限を除いて、データベースの使用されている権限が取得されます。(条件なしで有効であるため、無条件の分析とも呼ばれます。)

次の制約に注意してください:

- 一度に有効にできる権限分析ポリシーは1つのみです。唯一の例外は、ロールやコンテキスト属性ドリブン分析ポリシーなどのデータベース全体以外の権限分析ポリシーと同時にデータベース全体の権限分析ポリシーを有効化できることです。

- SYSユーザーの権限は分析できません。

- 権限分析には権限への付与パスが表示されますが、どの付与パスを維持するかは推奨されません。

- ロール、ユーザーまたはオブジェクトが削除されると、権限分析データ・ディクショナリ・ビューでこれらについての権限取得を反映する値も削除されます。

権限分析の利点およびユースケース

権限の分析は、使われていない付与権限を見つけるのに有効です。

内容は次のとおりです。

- アプリケーションに不必要に付与された権限

- セキュアなアプリケーションの開発

アプリケーションに不必要に付与された権限

データベースにアクセスするアカウントの権限は、アプリケーションに絶対に必要な権限だけに制限する必要があります。

ただし、特にサード・パーティがアプリケーションを開発する場合、必要以上の権限が便宜上アプリケーション接続プール・アカウントに付与される可能性があります。さらに、一部の開発者は、システム権限およびアプリケーションのオブジェクト権限をPUBLICロールに付与します。

たとえば、アプリケーション・データから選択してアプリケーション・プロシージャを実行するには、システム権限SELECT ANY TABLEおよびEXECUTE ANY PROCEDUREをアプリケーション・アカウントappsysに付与します。これで、appsysは、意図しない場合でもアプリケーション以外のデータにアクセスできます。この状況で、ユーザーappsysで権限の使用状況を分析し、結果に基づき必要に応じて権限を取り消したり付与できます。

セキュアなアプリケーションの開発

アプリケーションの開発段階では、いくつもの強力なシステム権限とロールをアプリケーション開発者に付与する管理者もいます。

管理者がこのような形で権限を付与するのは、開発段階ではアプリケーション開発者にどのような権限が必要か分からないことがあるからです。

アプリケーションが開発されて稼働すると、アプリケーション開発者に必要な権限とそうでない権限が明確になります。この時点で、セキュリティ管理者は不必要な権限の取消しを開始できます。ただし、アプリケーションが現在問題なく稼働しているため、アプリケーション開発者がこの考えに抵抗する場合があります。管理者は、権限分析を使用して、アプリケーションで使用されている各権限を調べることで、権限を取り消した場合に、アプリケーションの稼働を継続できるかを確認できます。

たとえば、app_ownerは、データベースに接続するアプリケーションのアプリケーション・データベース・ユーザーです。ユーザーapp_ownerは、OE、SHおよびPMスキーマの表を問い合せる必要があります。これらのスキーマの各表のSELECTオブジェクト権限を付与するかわりに、セキュリティ管理者は、SELECT ANY TABLE権限をapp_ownerに付与します。しばらくしてから、新しいスキーマHRが作成され、機密データがHR.EMPLOYEES表に挿入されます。ユーザーapp_ownerにはSELECT ANY TABLE権限があるため、この表を問い合せて機密データにアクセスできますが、これはセキュリティ上問題があります。システム権限(特にANY権限)を付与するかわりに、特定の表に対するオブジェクト権限を付与する方がはるかによい方法です。

マルチテナント環境による権限分析への影響について

マルチテナント環境での権限分析ポリシーの作成および使用が可能です。

マルチテナント環境を使用している場合は、ルートか個々のPDBのどちらかで権限分析ポリシーを作成できます。権限分析ポリシーは、そのポリシーが作成されたコンテナのルートで使用される権限、またはPDB内で使用される権限のどちらかにのみ適用されます。マルチテナント環境全体にグローバルに適用することはできません。

関連項目:

マルチテナント・コンテナ・データベース(CDB)の詳細は、『Oracle Database管理者ガイド』

権限分析ポリシーの作成および管理

SQL*PlusまたはEnterprise Manager Cloud Controlのいずれかで権限分析ポリシーの作成および管理を行うことができます。

内容は次のとおりです。

- 権限分析ポリシーの作成および管理について

- 権限分析の管理の一般手順

- 権限分析ポリシーの作成

- 権限分析ポリシーの例

- 権限分析ポリシーの有効化

- 権限分析ポリシーの無効化

- 権限分析レポートの生成

- 権限分析ポリシーの削除

権限分析ポリシーの作成および管理について

Oracle Enterprise Manager Cloud ControlまたはDBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用して、権限を分析できます。

そのためには、CAPTURE_ADMINロールが付与されている必要があります。DBMS_PRIVILEGE_CAPTUREパッケージでは、権限分析ポリシーを作成、有効化、無効化および削除できます。DBA_*ビューで表示できる権限の使用状況を示すレポートも生成します。

関連項目:

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

権限分析の管理の一般手順

権限分析の一般的な一連の手順に従う必要があります。

1. 権限分析ポリシーを定義します。

2. 権限分析ポリシーを有効化します。

このステップでポリシーが定義した権限使用の記録が始まります。

3. データの収集に十分な期間が経過したら、権限分析ポリシーの権限使用記録を無効にします。

この手順でポリシーの権限使用の取得が終了します。

4. 権限分析の結果を生成します。

この手順では、「権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー」で説明するデータ・ディクショナリ・ビューに結果が書き込まれます。

5. オプションで、権限分析ポリシーを無効化してから削除します。

権限分析ポリシーを削除すると、ポリシーによって取得されたデータが削除されます。

権限分析ポリシーの作成

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシーを作成できます。

内容は次のとおりです。

- 権限分析ポリシーの作成について

- Enterprise Manager Cloud Controlの権限分析ポリシーの作成

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの作成

権限分析ポリシーの作成について

ポリシーが作成されると、Oracleデータ・ディクショナリおよびSYSスキーマに配置されます。

ただし、それを削除できるのは、ポリシーを作成したユーザーとユーザーSYSです。権限使用の分析を開始できるように、ポリシー作成後に手動で有効にする必要があります。Oracle Enterprise Manager Cloud Controlを使用する場合は、Enterprise Managerリリース12.1.0.3以上を使用する必要があります。

Enterprise Manager Cloud Controlの権限分析ポリシーの作成

Cloud Controlで権限分析ポリシーを作成します。

1. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

2. 「セキュリティ」メニューから、「権限分析」を選択します。

3. 「権限分析」ページで、「ポリシー」から「作成」を選択します。

「権限分析: ポリシーの作成」ページが表示されます。

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

- ポリシー: 権限分析ポリシーの一意の名前を入力します。DBA_PRIV_CAPTURESビューのNAME列を問い合せて、既存のポリシーの名前を確認できます。名前には空白を使用でき、最大128文字で指定します。

- 説明: オプションとして、ポリシーの説明を最大1024文字で入力します。

- スコープ: 次のタイプから選択します。

- データベース: ユーザーSYSの権限を除いて、データベース全体で使用されている権限がすべて取得されます。

- ロール: 指定する1つ以上のロールの権限が取得されます。リストのロールがデータベース・セッションで有効な場合、そのセッションの使用されている権限が取得されます。このオプションを選択すると、「ポリシーの作成」ページに「使用可能なロール」リストが表示されます。

- コンテキスト: 指定した条件がTRUEと評価された場合に権限が取得されます。このオプションを選択すると、「ポリシーの取得」ページに「条件」フィールドが表示されます。条件を構築するには、このフィールドの右にある編集アイコンを選択して「ポリシー式ビルダー」ダイアログ・ボックスを表示します。

- ロールとコンテキスト: コンテキスト条件がTRUEと評価された場合に指定されたロールのいずれかの権限が取得されます。このオプションを選択すると、使用可能なロールのリストと「条件」フィールドの両方が表示されます。

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

新しいポリシーが「権限分析」ページの「ポリシー」領域に表示されます。

6. 権限使用の取得を開始できるようにポリシーを有効にするには、「権限分析ポリシー」メイン・ページに戻り、「ポリシー」でポリシーを選択して「取得の開始」をクリックします。

DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの作成

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREプロシージャは、権限分析ポリシーを作成します。

権限分析ポリシーを作成した後、DBA_PRIV_CAPTURESデータ・ディクショナリ・ビューのリストで確認できます。

- DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREプロシージャに次の構文を使用します。

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name              VARCHAR2,
description       VARCHAR2 DEFAULT NULL,
type              NUMBER DEFAULT DBMS_PRIVILEGE_CAPTURE.G_DATABASE,
roles             ROLE_NAME_LIST DEFAULT ROLE_NAME_LIST(),
condition         VARCHAR2 DEFAULT NULL);

次のように指定します。

- name: 作成する権限分析ポリシーの名前を指定します。この名前は必ず一意にし、128文字以下にしてください。名前には空白を使用できますが、参照するときは必ず一重引用符でその名前を囲む必要があります。既存のポリシーの名前を確認するには、DBA_PRIV_CAPTURESビューのNAME列を問い合せます。

- description: 大/小文字混在で最大1024文字で権限分析ポリシーの目的を説明します。オプションです。

- type: 取得条件のタイプを指定します。typeパラメータを省略する場合、デフォルトはDBMS_PRIVILEGE_CAPTURE.G_DATABASEとなります。オプションです。
次のいずれかのタイプを入力します。

- DBMS_PRIVILEGE_CAPTURE.G_DATABASE: ユーザーSYSの権限を除いて、データベース全体で使用されている権限をすべて取得します。

- DBMS_PRIVILEGE_CAPTURE.G_ROLE: ロールが有効になっているセッションの権限を取得します。typeパラメータのDBMS_PRIVILEGE_CAPTURE.G_ROLEを入力する場合、rolesパラメータも指定する必要があります。ロールが複数の場合、各ロール名をカンマで分けます。

- DBMS_PRIVILEGE_CAPTURE.G_CONTEXT: conditionパラメータで指定された条件がTRUEと評価されているセッションの権限を取得します。typeパラメータのDBMS_PRIVILEGE_CAPTURE.G_CONTEXTを入力する場合、conditionパラメータも指定する必要があります。

- DBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXT: ロールが有効になっており、コンテキスト条件がTRUEと評価されているセッションの権限を取得します。typeパラメータのDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXTを入力する場合、rolesとconditionの両方のパラメータも指定する必要があります。

- roles: 使用された権限が分析されるロールを指定します。つまり、指定されたロールのいずれかの権限が使用される場合、権限が分析されます。type引数にDBMS_PRIVILEGE_CAPTURE.G_ROLEまたはDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXTを指定する場合、この引数を指定する必要があります。入力する各ロールは、データベースに存在する必要があります。(DBA_ROLESデータ・ディクショナリ・ビューを問い合せて、既存のロールを確認できます。)複数のロールでは、可変長配列型role_name_listを使用してロール名を入力します。最大10のロールを指定できます。
たとえば、2つのロールを指定するには、次のようにします。

roles => role_name_list('role1', 'role2'),

- condition: 最大4000文字でブール式を指定します。type引数にDBMS_PRIVILEGE_CAPTURE.G_CONTEXTまたはDBMS_PRIVILEGE_CAPTURE.G_ROLE_AND_CONTEXTを指定する場合、この引数を指定する必要があります。関係演算子(==、>、>=、<、<=、<>、BETWEENおよびIN)を使用したSYS_CONTEXT式のみがこのブール式で許可されます。
condition式の構文は次のとおりです。

predicate::= SYS_CONTEXT(namespace, attribute) relop constant_value |
SYS_CONTEXT(namespace, attribute)
BETWEEN
constant_value
AND constant_value | SYS_CONTEXT(namespace, attribute)
IN {constant_value (,constant_value)* }

relop::= = | < | <= | > | >= | <>

context_expression::= predicate | (context_expression)
AND (context_expression) | (context_expression)
OR (context_expression )

たとえば、conditionを使用してIPアドレス192.0.2.1を指定するには、次のようにします。

condition => 'SYS_CONTEXT(''USERENV'', ''IP_ADDRESS'')=''192.0.2.1''';

* 必要な数の定数値を追加できます(たとえば、IN {constant_value1}やIN {constant_value1, constant_value2, constant_value3}など)。

「権限分析ポリシーの有効化」の説明に従って、権限分析ポリシーを作成した後に有効化する必要があります。

権限分析ポリシーの例

様々な権限分析ポリシーを作成できます。

内容は次のとおりです。

- 例: データベース全体の権限の権限分析

- 例: 2つのロールの権限の使用状況の権限分析

- 例: SQL*Plus使用中の権限の権限分析

- 例: SQL*Plusアクセス中のPSMITH権限の権限分析

例: データベース全体の権限の権限分析

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREは、データベース全体の権限を分析するために使用できます。

例4-1は、データベースのすべての権限の使用を記録するために、DBMS_PRIVILEGE_CAPTUREパッケージを使用して権限分析ポリシーを作成し、有効化する方法を示しています。

例4-1 データベース全体の権限の権限分析

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name          => 'db_wide_capture_pol',
description   => 'Captures database-wide privileges',
type          => DBMS_PRIVILEGE_CAPTURE.G_DATABASE);
END;
/
EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('db_wide_capture_pol');

例: 2つのロールの権限の使用状況の権限分析

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREプロシージャは、複数ロールの権限の使用状況の分析に使用できます。

例4-2は、2つのロールの権限の使用状況の分析方法を示しています。

例4-2 2つのロールの権限の使用状況の権限分析

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name          => 'dba_roles_capture_pol',
description   => 'Captures DBA and LBAC_DBA role use',
type          => DBMS_PRIVILEGE_CAPTURE.G_ROLE,
roles         => role_name_list('dba', 'lbac_dba'));
END;
/
EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('dba_roles_capture_pol');

例: SQL*Plus使用中の権限の権限分析

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREプロシージャは、分析用に権限を取得するために使用できます。

例4-3は、SQL*Plusの実行に使用される権限の分析方法を示しています。

例4-3 SQL*Plus使用中の権限の権限分析

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name             => 'sqlplus_capture_pol',
description      => 'Captures privilege use during SQL*Plus use',
type             => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
condition        => 'SYS_CONTEXT(''USERENV'', ''MODULE'')=''sqlplus''');
END;
/
EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('sqlplus_capture_pol');

例: SQL*Plusアクセス中のPSMITH権限の権限分析

DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREは、ユーザーがSQL*Plusを実行している時のユーザー・アクセス分析に使用できます。

例4-4は、SQL*Plusの実行時にセッション・ユーザーPSMITHが使用する権限の分析方法を示しています。

例4-4 SQL*Plusアクセス中のPSMITH権限の権限分析

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name         => 'psmith_sqlplus_analysis_pol',
description  => 'Analyzes PSMITH role priv use for SQL*Plus module',
type         => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
condition    => 'SYS_CONTEXT(''USERENV'', ''MODULE'')=''sqlplus''
AND SYS_CONTEXT(''USERENV'', ''SESSION_USER'')=''PSMITH''');
END;
/
EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('psmith_sqlplus_analysis_pol');

権限分析ポリシーの有効化

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシーを有効化できます。

内容は次のとおりです。

- 権限分析ポリシーの有効化について

- Cloud Controlによる権限分析ポリシーの有効化

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの有効化

権限分析ポリシーの有効化について

権限分析ポリシーを作成したら、そのポリシーを有効化する必要があります。

有効にすると、条件を満たす場合に権限分析ポリシーが権限の使用状況の記録を開始します。任意の時点で、データベースの1つの権限分析ポリシーのみ有効化できます。唯一の例外は、タイプDBMS_PRIVILEGE_CAPTURE.G_DATABASEの権限分析ポリシーを異なるタイプの権限分析と同時に有効化できることです。

データベースの再起動は、権限分析のステータスを変更しません。たとえば、データベースの停止前に権限分析ポリシーを有効化すると、このポリシーは、データベースの停止後および再起動後に継続して有効です。

Cloud Controlによる権限分析ポリシーの有効化

Cloud Controlを使用して権限分析ポリシーを有効化します。

1. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、Oracle Database 2日でデータベース管理者を参照してください。

2. 「セキュリティ」メニューから、「権限分析」を選択します。

3. ポリシーから、有効化したいポリシーを選択します。

4. 「取得の開始」ボタンを選択します。

5. 「権限分析: 取得の開始」ダイアログ・ボックスで、権限分析ポリシーを開始する時間を指定します。

ポリシーを今すぐに実行する場合は、「即時」を選択します。ポリシーを後で実行するには、「後で」を選択してから、ポリシーを開始する時、分、秒およびタイムゾーンを指定します。

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

DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの有効化

DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTUREプロシージャは、権限ポリシーを有効にして、その取得実行名を作成します。

実行名では、取得が行われる期間を定義します。

1. 既存の権限分析ポリシーおよびそれらが現在有効かどうかを確認するために、DBA_PRIV_CAPTURESデータ・ディクショナリ・ビューのNAMEおよびENABLED列に問い合せます。

2. DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTUREプロシージャを実行して、ポリシーを有効にし、必要に応じて取得実行の名前を作成します。

たとえば、権限分析ポリシーlogon_users_analysisを有効にするには、次のようにします。

BEGIN
DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE (
name     => 'logon_users_analysis_pol',
run_name => 'logon_users_04092016');
END;
/

権限分析ポリシーの無効化

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシーを無効化できます。

内容は次のとおりです。

- 権限分析ポリシーの無効化について

- Cloud Controlによる権限分析ポリシーの無効化

- DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの無効化

権限分析ポリシーの無効化について

権限分析レポートを生成する前に、権限分析ポリシーを無効化する必要があります。

ポリシーを無効化すると、権限は記録されなくなります。権限分析ポリシーの無効化は、権限分析ポリシーの無効化の前後にログオンしたユーザーに対して直接有効になります。

Cloud Controlによる権限分析ポリシーの無効化

Cloud Controlを使用して権限分析ポリシーを無効化できます。

1. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、Oracle Database 2日でデータベース管理者を参照してください。

2. 「セキュリティ」メニューから、「権限分析」を選択します。

3. 「ポリシー」から、無効化したいポリシーを選択します。

4. 「取得の停止」ボタンを選択します。

5. 「権限分析」:「取得の停止」ダイアログ・ボックスで、権限分析ポリシーを停止する時間を指定します。

ポリシーを今すぐに停止する場合は、「即時」を選択します。ポリシーを後で停止するには、「後で」を選択してから、ポリシーを停止する時、分、秒およびタイムゾーンを指定します。

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

DBMS_PRIVILEGE_CAPTUREによる権限分析ポリシーの無効化

DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTUREプロシージャは、権限分析ポリシーを無効にします。

1. 既存の権限分析ポリシーおよびそれらが現在無効かどうかを確認するために、DBA_PRIV_CAPTURESデータ・ディクショナリ・ビューのNAMEおよびENABLED列に問い合せます。

2. DBMS_PRIVILEGE_CAPTURE.DISBLE_CAPTUREプロシージャを実行して、ポリシーを有効にします。

たとえば、権限分析ポリシーlogon_users_analysisを無効にするには、次のようにします。

EXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('logon_users_analysis_pol');

権限分析レポートの生成

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシー・レポートを生成できます。

内容は次のとおりです。

- 権限分析レポートの生成について

- Cloud Controlによる権限分析レポートの生成

- Cloud Controlによる権限分析レポートへのアクセス

- DBMS_PRIVILEGE_CAPTUREによる権限分析レポートの生成

権限分析レポートの生成について

権限分析ポリシーが無効になると、レポートを生成できます。

Enterprise Manager Cloud Controlでは、「権限分析」ページの「アクション」メニューからレポートを参照でき、ここから、必要に応じてロールおよび権限の取消しと再付与を行います。レポート結果をSQL*Plusに表示するには、「権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー」のデータ・ディクショナリ・ビューを問い合せます。権限分析プロセス中に権限を使用してレポートを生成する前に取り消す場合、権限付与パスなしで権限が使用された権限として引き続きレポートされます。

Cloud Controlによる権限分析レポートの生成

Cloud Controlを使用すると、権限分析レポートを生成できます。

1. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、Oracle Database 2日でデータベース管理者を参照してください。

2. 「セキュリティ」メニューから、「権限分析」を選択します。

3. 「ポリシー」から、レポートを生成するポリシーを選択します。

4. 「レポートの生成」を選択します。

5. 「権限分析: レポートの生成」ダイアログ・ボックスで、レポートを生成する時間を指定します。

レポートを今すぐに生成する場合は、「即時」を選択します。レポートを後で生成するには、「後で」を選択してから、レポートを生成する時、分、秒およびタイムゾーンを指定します。

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

「権限分析」ページに確認メッセージ表示されて、レポートが送信されたことを通知します。このページは、ジョブが完了するまでリフレッシュできます。レポートを表示するには、ポリシー名を選択してから「レポートの表示」をクリックします。

Cloud Controlによる権限分析レポートへのアクセス

権限分析レポートは、使われた権限と使われなかった権限に関する情報を提供します。

1. 権限分析レポートの生成。

詳細は、「Cloud Controlによる権限分析レポートの生成」を参照してください。

2. 「権限分析」ページで、レポートを生成したポリシーを選択します。

3. 「アクション」メニューから、「レポート」を選択します。

「権限分析レポート」ページが表示されます。次の図に、「検索」フィールドを展開した状態の「使用頻度サマリー」タブを示します。使用されていないシステム権限の数も表示されています。

4. 「使用頻度サマリー」タブ、「未使用」タブ、および「使用済」タブから選択して、ポリシーによって発見された権限使用に関する詳細情報を表示します。

ここから、必要に応じてユーザーに対して取消しや再付与を行うロールを選択できます。そうするには、ロールを選択して「取消」または「再付与」をクリックします。

DBMS_PRIVILEGE_CAPTUREによる権限分析レポートの生成

DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULTプロシージャは、権限の取得結果を示すレポートを作成します。

1. 既存の権限分析ポリシーおよびそれらが現在無効かどうかを確認するために、DBA_PRIV_CAPTURESデータ・ディクショナリ・ビューのNAMEおよびENABLED列に問い合せます。

権限分析ポリシーは、それに関する権限分析レポートを生成する前に無効化する必要があります。

2. DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULTプロシージャを実行します。

たとえば、権限分析ポリシーlogon_users_analysisのレポートを生成するには、次のようにします。

EXEC DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT ('logon_users_analysis');

3. 権限付与パスを持つDBA_USED_*データ・ディクショナリ・ビューで、使用された権限を問い合せます。

権限分析ポリシーの削除

DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージを使用すると、Enterprise Manager Cloud ControlまたはSQL*Plusのいずれかで、権限分析ポリシー・レポートを削除できます。

内容は次のとおりです。

- 権限分析ポリシーの削除について

- Cloud Controlによる権限分析ポリシーの削除

- DBMS_PRIVILEGE_CAPTUREパッケージによる権限分析ポリシーの削除

権限分析ポリシーの削除について

権限分析ポリシーを削除するには、そのポリシーを無効にする必要があります。

権限分析ポリシーの削除は、この権限分析に関連付けられているすべての使用されたおよび使用されていない権限レコードも削除します。

Cloud Controlによる権限分析ポリシーの削除

Cloud Controlを使用して権限分析ポリシーを削除します。

1. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

2. 「セキュリティ」メニューから、「権限分析」を選択します。

3. 「ポリシー」から、削除するポリシーを選択します。

4. 「削除」を選択します。

5. 「確認」ダイアログ・ボックスで、「はい」をクリックします。

DBMS_PRIVILEGE_CAPTUREパッケージによる権限分析ポリシーの削除

DBMS_PRIVILEGE_CAPTURE.DROP_CAPTUREプロシージャは、権限分析ポリシーを削除します。

1. ポリシーおよびポリシーが有効か無効かを確認するために、DBA_PRIV_CAPTURESデータ・ディクショナリ・ビューのNAMEおよびENABLE列に問い合せます。

2. ポリシーが有効な場合、無効にします。

次に例を示します。

EXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('logon_users_analysis_pol');

3. DBMS_PRIVILEGE_CAPTURE.DROP_CAPTUREプロシージャを実行して、ポリシーを削除します。

次に例を示します。

EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE ('logon_users_analysis_pol');

Cloud Controlによるロールの作成および権限の管理

権限分析レポートの中にある権限を使って新しいロールを作成し、そのロールをユーザーに付与することができます。

内容は次のとおりです。

- Cloud Controlでの権限分析レポートからのロールの作成

- Cloud Controlによるロールおよび権限の取消しおよび再付与

- Cloud Controlによる取消しまたは再付与スクリプトの生成

Cloud Controlでの権限分析レポートからのロールの作成

レポート・サマリーを使用して、アプリケーションで必要な最低限の権限を検索し、これらの権限をロールにカプセル化できます。

1. 「権限分析」ページにアクセスします。

詳細は、「Cloud Controlによる権限分析レポートへのアクセス」を参照してください。

2. 「権限分析」ページで、ポリシー名を選択してから、「アクション」メニューの「ロールの作成」をクリックします。

3. 「ロールの作成」ページで、次の詳細情報を入力してから、「OK」をクリックします。

- 新しいロールの作成元となるポリシーを選択します。

- 作成する新しいロールの一意の名前を入力します。

- ロールで何をカプセル化するかに応じて、「使用済」または「未使用」チェック・ボックスを選択します。ロールには、使用中または未使用のシステムおよびオブジェクトの権限およびロールを使用できます。

- 「直接付与されたシステム権限」、「直接付与されたオブジェクト権限」および「直接付与されたロール」の対応するラジオ・ボタンを選択します。
たとえば、「使用済」チェック・ボックスを選択し、次を選択します。

- すべてのシステム権限: 取得されたシステム権限のうち使用中のものすべてが、作成する新しいロールに含まれます。

- ロールなし: ポリシーで取得されたロールはどれも、新しいロールでは使用されません。

- オブジェクト権限のカスタマイズ: 取得された使用中のオブジェクト権限が一覧表示されるので、ロールに割り当てる権限をこのリストから選択する必要があります。

Cloud Controlによるロールおよび権限の取消しおよび再付与

Enterprise Manager Cloud Controlを使用して、ロールおよび権限をユーザーに対して取り消したり、再付与したりできます。

1. Oracle Database Vaultが有効な場合、Oracleシステム権限およびロール管理レルムの所有者として認可されていることを確認します。

SQL*Plusでは、DV_OWNERロールを付与されているユーザーがDVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューを問い合せて認可を確認できます。ユーザーに認可を付与するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

2. 「権限分析: レポート」ページにアクセスします。

「権限分析」ページで、レポートに関連付けられているポリシーを選択し、「アクション」メニューから「レポート」を選択します。

3. 「権限分析: レポート」ページで、権限の取消しまたは再付与を行う対象の権限受領者を展開します。

次の図に、取消し可能なEXP_FULL_DATABASEロールを示します。

4. 特定のロールや、「システム権限」または「オブジェクト権限」フォルダにリストされている権限などのカテゴリを、このユーザー名の下から選択します。

現在、ロールまたは権限がユーザーに付与されている場合は、「取消」ボタンが有効になります。付与されていない場合は、「再付与」ボタンが有効になります。

5. ロールまたは権限を取り消すには「取消」を選択し、再付与するには「再付与」を選択します。

6. 「確認」ウィンドウで、「はい」を選択します。

Cloud Controlによる取消しまたは再付与スクリプトの生成

権限分析レポートの結果に基づいて、ユーザーに対して権限を取り消したり、再付与するスクリプトを生成できます。

内容は次のとおりです。

- 取消しおよび再付与スクリプトの生成について

- 取消しスクリプトの生成

- 再付与スクリプトの生成

取消しおよび再付与スクリプトの生成について

システムやオブジェクトに対する未使用の権限およびロールの一括取消しを実行するためのスクリプトを、権限分析の生成後にダウンロードできます。

後で、これらの権限をユーザーに再付与することが必要になった場合は、再付与スクリプトを生成できます。再付与スクリプトを生成するには、対応する取消しスクリプトが必要です。

開発環境またはテスト環境で取消スクリプトを実行します。Oracleによって提供されているアカウントおよびロールから権限およびロールを取り消すことはできないということを知っておいてください。

取消しスクリプトの生成

Enterprise Manager Cloud Controlを使用すると、ユーザーから権限を取り消すスクリプトを生成できます。

1. Oracle Database Vaultが有効な場合、Oracleシステム権限およびロール管理レルムの所有者として認可されていることを確認します。

SQL*Plusでは、DV_OWNERロールを付与されているユーザーがDVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューを問い合せて認可を確認できます。ユーザーに認可を付与するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

2. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

3. 「セキュリティ」メニューから、「権限分析」を選択します。

4. 目的のレポートが生成済であることを確認します。

詳細は、「Cloud Controlによる権限分析レポートの生成」を参照してください。

5. 「権限分析」ページの「アクション」メニューで「取消スクリプト」を選択します。

6. 「取消スクリプト」ページで、「生成」をクリックします。

取消しスクリプトの詳細を生成するためのウィザードが表示されます。

7. 「スクリプトの詳細」ページで、取消しスクリプトを準備する必要のあるポリシー名をメニューから選択します。

8. スクリプトの一意の名前および説明を入力します。

たとえば、未使用の権限をすべて取り消す場合は、すべての権限およびロールを表す「すべて」オプションを選択して、「次へ」をクリックします。

選択内容に基づいて、取消し対象の使用可能な権限、未使用のすべての権限、オブジェクト権限、およびロールがそれぞれのページに表示されます。

9. 「次へ」をクリックします。

「確認」ページで、取消しスクリプトに含めるすべての権限のリストを表示できます。

10. 「保存」をクリックします

確認ウィンドウが表示されます。

11. 「取消スクリプト」ページで、新規作成されたSQLスクリプトを見つけてから、「取消スクリプト」をクリックしてこのスクリプトをダウンロードします。

再付与スクリプトの生成

Enterprise Manager Cloud Controlを使用すると、ユーザーから取り消した権限を再付与するスクリプトを生成できます。

1. Oracle Database Vaultが有効な場合、Oracleシステム権限およびロール管理レルムの所有者として認可されていることを確認します。

SQL*Plusでは、DV_OWNERロールを付与されているユーザーがDVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューを問い合せて認可を確認できます。ユーザーに認可を付与するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

2. Enterprise Managerで、CAPTURE_ADMINロールおよびSELECT ANY DICTIONARY権限が付与されているユーザーとしてターゲット・データベースのホームページにアクセスします。

詳細は、Oracle Database 2日でデータベース管理者を参照してください。

3. 「セキュリティ」メニューから、「権限分析」を選択します。

4. 目的のレポートが生成済であることを確認します。

詳細は、「Cloud Controlによる権限分析レポートの生成」を参照してください。

5. 「権限分析」ページの「アクション」メニューで「取消スクリプト」を選択します。

6. 「取消スクリプト」ページで、生成済の取消しスクリプトに対応する再付与スクリプトを見つけてから、「再付与スクリプト」をクリックしてこのスクリプトをダウンロードします。

チュートリアル: ANY権限の使用の分析

このチュートリアルでは、権限分析を使用してREAD ANY TABLEシステム権限の使用を分析する方法を示します。

内容は次のとおりです。

- 手順1: ユーザー・アカウントの作成

- 手順2: 権限分析ポリシーの作成および有効化

- 手順3: READ ANY TABLEシステム権限の使用

- 手順4: 権限分析ポリシーの無効化

- 手順5: 権限分析レポートの生成および表示

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

手順1: ユーザー・アカウントの作成

2つのユーザーを作成する必要があります。1つはポリシーを作成するユーザーで、もう1つはその権限の使用が分析対象となるユーザーです。

1. DV_ACCTMGRロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

Oracle Database Vaultが有効ではない場合、CREATE USERシステム権限を持つユーザーとして、データベース・インスタンスにログインします。

2. 次のユーザーを作成します。

CREATE USER pa_admin IDENTIFIED BY password;
CREATE USER app_user IDENTIFIED BY password;

3. ロールおよびシステム権限を他のユーザーに付与する権限を持ち、Oracleシステム権限およびロール管理レルムの所有者認可を付与されているユーザーとして接続します。(ユーザーSYSはデフォルトでこれらの権限を持っています。)

次に例を示します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

SQL*Plusでは、DV_OWNERロールを付与されているユーザーがDVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューを問い合せて認可を確認できます。ユーザーに認可を付与するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

4. 次のロールおよび権限をユーザーに付与します。

GRANT CREATE SESSION, CAPTURE_ADMIN TO pa_admin;
GRANT CREATE SESSION, READ ANY TABLE TO app_user;

ユーザーpa_adminは、ユーザーapp_userが実行するREAD ANY TABLE問合せを分析する権限分析ポリシーを作成します。

手順2: 権限分析ポリシーの作成および有効化

ユーザーpa_adminは権限分析ポリシーを作成して有効にする必要があります。

1. ユーザーpa_adminとして接続します。

CONNECT pa_admin -- Or, CONNECT pa_admin@hrpdb
Enter password: password

2. 次の権限分析ポリシーを作成します。

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name           => 'ANY_priv_analysis_pol',
description    => 'Analyzes system privilege use',
type           => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
condition      => 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'')=''APP_USER''');
END;
/

この例では、次のようになります。

- typeは、次に説明するconditionパラメータで定義される取得条件のタイプを指定します。このポリシーでは、タイプはコンテキスト・ベースの条件です。

- conditionは、ポリシーを有効にするためにTRUEに評価する必要があるBoolean式を使用して条件を指定します。この場合、セッション・ユーザーがapp_userかどうかを条件でチェックします。

3. ポリシーを有効にします。

EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('ANY_priv_analysis_pol');

この時点で、ポリシーはユーザーapp_userのアクションの記録を開始できます。

手順3: READ ANY TABLEシステム権限の使用

ユーザーapp_userとして、READ ANY TABLEシステム権限を使用します。

1. ユーザーapp_userとして接続します。

CONNECT app_user -- Or, CONNECT app_user@hrpdb
Enter password: password

2. HR.EMPLOYEES表を問い合せます。

SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE SALARY > 12000 ORDER BY SALARY DESC;

FIRST_NAME           LAST_NAME                     SALARY
-------------------- ------------------------- ----------
Steven               King                           24000
Neena                Kochhar                        17000
Lex                  De Haan                        17000
John                 Russell                        14000
Karen                Partners                       13500
Michael              Hartstein                      13000
Shelley              Higgins                        12008
Nancy                Greenberg                      12008

手順4: 権限分析ポリシーの無効化

ユーザーapp_userのアクションを取得するレポートを生成するには、ポリシーを無効にする必要があります。

1. ユーザーpa_adminとして接続します。

CONNECT pa_admin -- Or, CONNECT pa_admin@hrpdb
Enter password: password

2. ANY_priv_analysis_pol権限ポリシーを無効にします。

EXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('ANY_priv_analysis_pol');

手順5: 権限分析レポートの生成および表示

権限分析ポリシーを無効にすると、ユーザーpa_adminは権限分析レポートの生成および表示を行うことができます。

1. ユーザーpa_adminとして、権限分析の結果を生成します。

EXEC DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT ('ANY_priv_analysis_pol');

生成された結果は、「権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー」で説明する権限分析データ・ディクショナリ・ビューに格納されます。

2. 次のコマンドを入力して、データ・ディクショナリ・ビューの出力の書式を設定します。

col username format a10
col sys_priv format a16
col object_owner format a13
col object_name format a23

3. app_userで使用されるシステム権限と、権限分析中に使用されるオブジェクトを確認します。

SELECT USERNAME, SYS_PRIV, OBJECT_OWNER, OBJECT_NAME FROM DBA_USED_PRIVS WHERE USERNAME = 'APP_USER';

次のような出力結果が表示されます。最初の行は、app_userがHR.EMPLOYEES表に対するREAD ANY TABLE権限を使用したことを示します。

USERNAME   SYS_PRIV             OBJECT_OWNER  OBJECT_NAME
---------- ---------------- ------------- -----------------------
APP_USER                    SYSTEM        PRODUCT_PRIVS
APP_USER                    SYS           DUAL
APP_USER                    SYS           DUAL
APP_USER   CREATE SESSION
APP_USER                    SYS           DBMS_APPLICATION_INFO
APP_USER   READ ANY TABLE   HR            EMPLOYEES

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. ユーザーpa_adminとして、ANY_priv_analysis_pol権限分析ポリシーを削除します。

EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE ('ANY_priv_analysis_pol');

pa_adminユーザーのスキーマに作成されたオブジェクトはSYSスキーマにあるため、次の手順で、このユーザー(このオブジェクトを含む)を削除する場合でも、ANY_priv_analysis_pol権限分析ポリシーを手動で削除する必要があります。

2. ユーザー・アカウントを作成したユーザーとして接続します。Oracle Database Vaultが有効な場合は、Oracle Database Vaultアカウント・マネージャとして接続します。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

3. ユーザーpa_adminおよびapp_userを削除します。

DROP USER pa_admin;
DROP USER app_user;

チュートリアル: DBAロールを持つユーザーによる権限の使用の分析

このチュートリアルでは、DBAロールを持ち、データベースのチューニング操作を行うユーザーの権限使用を分析する方法を示します。

内容は次のとおりです。

- 手順1: ユーザー・アカウントの作成

- 手順2: 権限分析ポリシーの作成および有効化

- 手順3: データベース・チューニング操作の実行

- 手順4: 権限分析ポリシーの無効化

- 手順5: 権限分析レポートの生成および表示

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

手順1: ユーザー・アカウントの作成

2つのユーザーを作成する必要があります。1つは権限分析ポリシーを作成するユーザーで、もう1つはその権限の使用が分析対象となるユーザーです。

1. DV_ACCTMGRロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)にログインする必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

Oracle Database Vaultが有効ではない場合、CREATE USERシステム権限を持つユーザーとして、データベース・インスタンスにログインします。

2. 次のユーザーを作成します。

CREATE USER pa_admin IDENTIFIED BY password;
CREATE USER tjones IDENTIFIED BY password;

3. ロールおよびシステム権限を他のユーザーに付与する権限を持ち、Oracleシステム権限およびロール管理レルムの所有者認可を付与されているユーザーとして接続します。(ユーザーSYSはデフォルトでこれらの権限を持っています。)

次に例を示します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

SQL*Plusでは、DV_OWNERロールを付与されているユーザーがDVSYS.DBA_DV_REALM_AUTHデータ・ディクショナリ・ビューを問い合せて認可を確認できます。ユーザーに認可を付与するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

4. 次のロールおよび権限をユーザーに付与します。

GRANT CREATE SESSION, CAPTURE_ADMIN TO pa_admin;
GRANT CREATE SESSION, DBA TO tjones;

ユーザーpa_adminは、ユーザーtjonesが実行するデータベースのチューニング操作を分析する権限分析ポリシーを作成します。

手順2: 権限分析ポリシーの作成および有効化

ユーザーpa_adminは権限分析ポリシーを作成して有効にする必要があります。

1. ユーザーpa_adminとして接続します。

CONNECT pa_admin -- Or, CONNECT pa_admin@hrpdb
Enter password: password

Oracle Database Vaultが有効な場合は、DV_ACCTMGRロールを持つDatabase Vaultアカウント・マネージャとしてログインします。Oracleシステム権限およびロール管理レルムの所有者であることを確認します。

2. 次の権限分析ポリシーを作成します。

BEGIN
DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(
name             => 'dba_tuning_priv_analysis_pol',
description      => 'Analyzes DBA tuning privilege use',
type             => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,
condition        => 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'')=''TJONES''');
END;
/

この例では、次のようになります。

- typeは、次に説明するconditionパラメータで定義される取得条件のタイプを指定します。このポリシーでは、タイプはコンテキスト・ベースの条件です。

- conditionは、ポリシーを有効にするためにTRUEに評価する必要があるBoolean式を使用して条件を指定します。この場合、セッション・ユーザーがtjonesかどうかを条件でチェックします。

3. ポリシーを有効にします。

EXEC DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE ('dba_tuning_priv_analysis_pol');

この時点で、ポリシーはユーザーtjonesのアクションの記録を開始できます。

手順3: データベース・チューニング操作の実行

ユーザーtjonesは、DBAロールを使用して、データベースのチューニング操作を実行します。

1. ユーザーtjonesとして接続します。

CONNECT tjones -- Or, CONNECT tjones@hrpdb
Enter password: password

2. 次のスクリプトを実行して、PLAN_TABLE表を作成します。

@$ORACLE_HOME/rdbms/admin/utlxplan.sql

このスクリプトの場所は、オペレーティング・システムによって異なる場合があります。このスクリプトでは、PLAN_TABLE表をtjonesスキーマに作成します。

3. 次のEXPLAIN PLAN SQL文をHR.EMPLOYEES表で実行します。

EXPLAIN PLAN
SET STATEMENT_ID = 'Raise in Tokyo'
INTO PLAN_TABLE
FOR UPDATE HR.EMPLOYEES
SET SALARY = SALARY * 1.10
WHERE DEPARTMENT_ID =
(SELECT DEPARTMENT_ID FROM HR.DEPARTMENTS WHERE LOCATION_ID = 110);

次に、ユーザーtjonesでHR.EMPLOYEES表を分析します。

4. 次のいずれかのスクリプトを実行して、CHAINED_ROWS表を作成します。

@$ORACLE_HOME/rdbms/admin/utlchain.sql

または

@$ORACLE_HOME/rdbms/admin/utlchn1.sql

5. ANALYZE TABLE文をHR.EMPLOYEES表で実行します。

ANALYZE TABLE HR.EMPLOYEES LIST CHAINED ROWS INTO CHAINED_ROWS;

手順4: 権限分析ポリシーの無効化

ユーザーtjonesのアクションを取得するレポートを生成するには、ポリシーを無効にする必要があります。

1. ユーザーpa_adminとして接続します。

CONNECT pa_admin -- Or, CONNECT pa_admin@hrpdb
Enter password: password

2. dba_tuning_priv_analysis_pol権限ポリシーを無効にします。

EXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('dba_tuning_priv_analysis_pol');

手順5: 権限分析レポートの生成および表示

権限分析ポリシーを無効にすると、ユーザーpa_adminは権限分析レポートの生成および表示を行うことができます。

1. ユーザーpa_adminとして、権限分析の結果を生成します。

EXEC DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT ('dba_tuning_priv_analysis_pol');

生成された結果は、「権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー」で説明する権限分析データ・ディクショナリ・ビューに格納されます。

2. 次のコマンドを入力して、データ・ディクショナリ・ビューの出力の書式を設定します。

col username format a8
col sys_priv format a18
col used_role format a20
col path format a150
col obj_priv format a10
col object_owner format a10
col object_name format a10
col object_type format a10

3. 権限分析中にtjonesで使用されるシステム権限とロールを確認します。

SELECT USERNAME, SYS_PRIV, USED_ROLE, PATH
FROM DBA_USED_SYSPRIVS_PATH
WHERE USERNAME = 'TJONES'
ORDER BY 1, 2, 3;

次のような出力が表示されます。

USERNAME SYS_PRIV           USED_ROLE
-------- ------------------ --------------------
PATH
-------------------------------------------------------------------------------
TJONES   ANALYZE ANY        IMP_FULL_DATABASE
GRANT_PATH('TJONES', 'DBA')

TJONES   ANALYZE ANY        IMP_FULL_DATABASE
GRANT_PATH('TJONES', 'DBA', 'IMP_FULL_DATABASE')

TJONES   ANALYZE ANY        IMP_FULL_DATABASE
GRANT_PATH('TJONES', 'DBA', 'DATAPUMP_IMP_FULL_DATABASE', 'IMP_FULL_DATABASE')
...

4. 権限分析中にtjonesで使用されるオブジェクト権限とロールを確認します。

col username format a9
col used_role format a10
col object_name format a22
col object_type format a12

SELECT USERNAME, OBJ_PRIV, USED_ROLE,
OBJECT_OWNER, OBJECT_NAME, OBJECT_TYPE
FROM DBA_USED_OBJPRIVS
WHERE USERNAME = 'TJONES'
ORDER BY 1, 2, 3, 4, 5, 6;

次のような出力が表示されます。

USERNAME  OBJ_PRIV   USED_ROLE  OBJECT_OWN OBJECT_NAME            OBJECT_TYPE
--------- ---------- ---------- ---------- ---------------------- ------------
TJONES    EXECUTE    PUBLIC     SYS        DBMS_APPLICATION_INFO  PACKAGE
TJONES    SELECT     PUBLIC     SYS        DUAL                   TABLE
TJONES    SELECT     PUBLIC     SYS        DUAL                   TABLE
TJONES    SELECT     PUBLIC     SYSTEM     PRODUCT_PRIVS          VIEW
...

5. ユーザーtjonesの未使用の権限を確認します。

col username format a9
col sys_priv format a35

SELECT USERNAME, SYS_PRIV
FROM DBA_UNUSED_SYSPRIVS
WHERE USERNAME = 'TJONES'
ORDER BY 1, 2;

USERNAME SYS_PRIV
-------- ------------------------------
TJONES   ADMINISTER ANY SQL TUNING SET
TJONES   ADMINISTER DATABASE TRIGGER
TJONES   ADMINISTER RESOURCE MANAGER
TJONES   ADMINISTER SQL TUNING SET
TJONES   ALTER ANY ASSEMBLY
TJONES   ON COMMIT REFRESH
...

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. ユーザーpa_adminとして、dba_tuning_priv_analysis_pol権限分析ポリシーを削除します。

EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE ('dba_tuning_priv_analysis_pol');

pa_adminユーザーのスキーマに作成されたオブジェクトはSYSスキーマにあるため、次の手順で、このユーザー(このオブジェクトを含む)を削除する場合でも、dba_tuning_priv_analysis_pol権限分析ポリシーを手動で削除する必要があります。

2. ユーザー・アカウントを作成したユーザーとして接続します。Oracle Database Vaultが有効な場合は、Oracle Database Vaultアカウント・マネージャとして接続します。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

3. ユーザーpa_adminおよびtjonesを削除します。

DROP USER pa_admin;
DROP USER tjones CASCADE;

権限分析ポリシーおよびレポート・データ・ディクショナリ・ビュー

Oracle Databaseには、分析した権限に関する情報を示すデータ・ディクショナリ・ビューが用意されています。

表4-1に、これらのデータ・ディクショナリ・ビューを示します。

表4-1 権限分析情報を表示するデータ・ディクショナリ・ビュー

ビュー

説明

DBA_PRIV_CAPTURES

既存の権限分析ポリシーの情報をリストします

DBA_USED_PRIVS

レポートされた権限分析ポリシーに使用された権限をリストします

DBA_UNUSED_PRIVS

レポートされた権限分析ポリシーに使用されていない権限をリストします

DBA_USED_OBJPRIVS

レポートされた権限分析ポリシーに使用されたオブジェクト権限をリストします。オブジェクト付与パスを含みません。

DBA_UNUSED_OBJPRIVS

レポートされた権限分析ポリシーに使用されていないオブジェクト権限をリストします。オブジェクト権限付与パスを含みません。

DBA_USED_OBJPRIVS_PATH

レポートされた権限分析ポリシーに使用されたオブジェクト権限をリストします。オブジェクト権限付与パスを含みます。

DBA_UNUSED_OBJPRIVS_PATH

レポートされた権限分析ポリシーに使用されていないオブジェクト権限をリストします。オブジェクト権限付与パスを含みます。

DBA_USED_SYSPRIVS

レポートされた権限分析ポリシーに使用されたシステム権限をリストします。システム権限付与パスを含みません。

DBA_UNUSED_SYSPRIVS

レポートされた権限分析ポリシーに使用されていないシステム権限をリストします。システム権限付与パスを含みません。

DBA_USED_SYSPRIVS_PATH

レポートされた権限分析ポリシーに使用されたシステム権限をリストします。システム権限付与パスを含みます。

DBA_UNUSED_SYSPRIVS_PATH

レポートされた権限分析ポリシーに使用されていないシステム権限をリストします。システム権限付与パスを含みます

DBA_USED_PUBPRIVS

レポートされた権限分析ポリシーに使用されたPUBLICロールの権限をすべてリストします。

DBA_USED_USERPRIVS

レポートされた権限分析ポリシーに使用されたユーザー権限をリストします。ユーザー権限付与パスを含みません。

DBA_UNUSED_USERPRIVS

レポートされた権限分析ポリシーに使用されていないユーザー権限をリストします。ユーザー権限付与パスを含みません。

DBA_USED_USERPRIVS_PATH

レポートされた権限分析ポリシーに使用されたユーザー権限をリストします。ユーザー権限付与パスを含みます。

DBA_UNUSED_USERPRIVS_PATH

レポートされた権限分析ポリシーに使用されていない権限をリストします。ユーザー権限付与パスを含みます。

関連項目:

これらのデータ・ディクショナリ・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください

5 レルムの構成

データベース・オブジェクトを保護するために、これらのオブジェクトの周辺にレルムを作成し、ユーザーがこのデータに対して行うアクセスを制御するための権限付与を設定します。

内容は次のとおりです。

- レルムの概要

- デフォルトのレルム

- レルムの作成

- レルム・セキュア・オブジェクトについて

- レルム認可について

- レルムの有効化ステータスの変更

- レルムの削除

- レルムの動作

- レルムでの認可の動作

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

- レルムの動作の例

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

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

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

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

関連項目:

Oracle Database VaultレルムのAPI

レルムの概要

レルムを使用すると、特定のオブジェクト・タイプなど、データベース・オブジェクトを保護できます。

内容は次のとおりです。

- レルムについて

- 必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限

- レルムで保護できるオブジェクト・タイプ

レルムについて

レルムは、特定のアプリケーションのために保護する必要のあるデータベース・スキーマ、データベース・オブジェクト、およびデータベース・ロールをグループ化したものです。

レルムは、データベース・オブジェクトの保護ゾーンとみなすことができます。スキーマは、表、ビューおよびパッケージなどのデータベース・オブジェクトの論理的な集合で、ロールは権限の集合です。スキーマおよびロールを機能グループに分類することにより、システム権限を使用するユーザーがこれらのグループに対して行える操作を制御し、データベース管理者またはシステム権限を持つその他の強力なユーザーによる不正なデータ・アクセスを防ぐことができます。Oracle Database Vaultは、既存のOracleデータベースの任意アクセス制御モデルを置き換えません。レルムおよびコマンド・ルールの両方で、このモデルの上位の層として機能します。

Oracle Database Vaultには、通常と必須という2つのタイプのレルムがあります。通常のレルムは、データベース・オブジェクト(スキーマなど)全体を保護します。このタイプのレルムは、直接オブジェクト権限が付与されたユーザーを除き、すべてのユーザーを制限します。直接オブジェクト権限を持つユーザーは、通常のレルムでDML操作を行うことができますが、DDL操作を行うことはできません。必須レルムは、レルム内のオブジェクトへのユーザー・アクセスを制限します。必須レルムは、オブジェクト権限およびシステム権限に基づく両方のアクセスをブロックします。つまり、オブジェクト所有者であっても、自身のオブジェクトが必須レルムで保護されている場合、適切なレルム認可を受けないとそのオブジェクトにアクセスできません。

レルムを作成すると、レルムで保護する一連のスキーマ・オブジェクトまたはロール(セキュア・オブジェクト)を登録し、セキュア・オブジェクトにアクセスする一連のユーザーやロールを認可できます。

たとえば、経理部で使用される既存のすべてのデータベース・スキーマを保護するレルムを作成できます。レルムに対して認可されていないユーザーは、保護された経理データにシステム権限を使用してアクセスすることを許可されません。

Oracle Database Vaultに作成するレルム上でレポートを実行できます。詳細は、「レルムに関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この項では、Oracle Enterprise Manager Cloud Controlで、Oracle Database Vault Administratorページを使用してレルムを構成する方法について説明します。Oracle Database Vaultが提供するPL/SQLインタフェースおよびパッケージを使用してレルムを構成するには、「Oracle Database VaultレルムのAPI」を参照してください。

必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限

デフォルトでは、オブジェクト権限を所有または保持するユーザーには、明示的なレルム認可を受けずにレルム保護オブジェクトへのアクセスが許可されます。

レルムを必須レルムになるように構成することで、これらのユーザーがアクセスできないようにオプションでレルムを構成できます。必須レルムは、システム権限に基づくアクセスとオブジェクト権限に基づくアクセスの両方をブロックします。つまり、オブジェクト所有者は、レルムへのアクセスが認可されない場合、アクセスできません。ユーザーは、ユーザーまたはロールがレルムにアクセスする認可を受けている場合のみ、必須レルムのセキュア・オブジェクトにアクセスできます。

必須レルムには、その他に次の特徴があります。

- 同じオブジェクトに必須レルムが複数ある場合、保護されたオブジェクトにアクセスするには、すべての必須レルムに対してユーザーまたはロールを認可する必要があります。

- ロールが必須レルムで保護される場合、レルム所有者を除き、保護されたロールに対する権限の付与や取消しを行うことはできません。

- 以前のリリースで作成した通常のレルムを更新して必須レルムにすることができます。こうすると、所有者のアクセスをブロックし、オブジェクト権限ユーザーがレルム保護オブジェクトにアクセスしないようにできます。

必須レルムには、次の利点があります。

- 必須レルムは、オブジェクト所有者およびオブジェクト権限ユーザーをブロックできます。以前のリリースでは、複雑なコマンド・ルールを定義しないとこれらのユーザーをブロックできませんでした。

- 必須レルムを使用すると、アクセス制御を構成する柔軟性が高くなります。たとえば、ユーザーが特定の条件(日中の特定の時間範囲内など)でオブジェクトにアクセスできるようにするとします。レルムはオブジェクト権限をブロックしないため、オブジェクト権限をそのユーザーに付与できません。システム権限のみをユーザーに付与し、ルールを使用してこのユーザーをレルムに対して認可するか、コマンド上でコマンド・ルールを直接作成できます。これらのソリューションは、計算上コストの面でかなり高額になったり、システム権限などの権限をユーザーに過度に付与する必要があるため望ましい方法ではありません。必須レルムの場合、特定の条件に関するルールとともにオブジェクト権限をユーザーに付与し、このユーザーをレルム所有者または参加者として認可するだけで済みます。そのため、必須レルムを使用する場合、ユーザーに過度の権限が付与されず、Oracle Database Vaultポリシーの柔軟性が増します。

- 必須レルムにより、パッチのアップグレード時に保護レイヤーが追加されます。パッチのアップグレード時に、データベース管理者は、オブジェクトにパッチを実行するためにレルム保護オブジェクトへの直接アクセス権が必要になります。社会保障番号などの機密データが含まれる表がある場合、パッチのアップグレード時に必須レルムを使用して、管理者がこれらの表にアクセスしないようにすることができます。パッチ適用が完了し、データベース管理者がオブジェクトにアクセスする必要がなくなったら、必須レルムの保護を無効化し、通常のアプリケーション・レルム保護を再び有効化して、アプリケーション保護を通常の状態に戻すことができます。

- 必須レルムを使用してランタイムで表を保護できます。ランタイムで、アプリケーション・データを多くの表に格納できます。データの整合性や正確性が維持されるように、ランタイム・スキーマなどの単一ユーザーがこれらの表にアクセスする方法が適しています。アプリケーション・データが多くの異なるスキーマに分散する場合、スキーマ所有者とオブジェクト権限を持つユーザーは、データベースに直接ログインするとデータを変更できます。ユーザーがランタイム・スキーマのプロシージャを実行せずにこれらの表を更新できないように、必須レルムを使用して表を保護し、認可されたユーザーのプロシージャのみがアクセスするようにできます。通常のレルムはオブジェクト所有者とオブジェクト権限ユーザーをブロックしないため、必須レルムを使用してこれらをブロックできます。このように、認可されたユーザーのみがランタイムでこれらの表にアクセスできます。

- 構成済のロールに対する変更を禁止することで、セキュリティ設定を固定できます。

関連項目:

- CREATE_REALMプロシージャ

- UPDATE_REALMプロシージャ

レルムで保護できるオブジェクト・タイプ

特定のオブジェクト・タイプのスキーマ内のすべてのオブジェクトの周りにレルムを作成できます。

これらのオブジェクト・タイプは、次のとおりです。

オブジェクト・タイプC-J

オブジェクト・タイプL-P

オブジェクト・タイプR-V

CLUSTER

LIBRARY

ROLE

DIMENSION

MATERIALIZED VIEW

SEQUENCE

FUNCTION

MATERIALIZED VIEW LOG

SYNONYM

INDEX

OPERATOR

TABLE

INDEX PARTITION

PACKAGE

TRIGGER

INDEXTYPE

PROCEDURE

TYPE

JOB

PROGRAM

VIEW

デフォルトのレルム

Oracle Database Vaultにはデフォルトのレルムが用意されています。これは通常のレルムであり、必須レルムではありません。

内容は次のとおりです。

- Oracle Database Vaultレルム

- Database Vaultアカウント管理レルム

- Oracle Enterprise Managerレルム

- Oracleデフォルト・スキーマ保護レルム

- Oracleシステム権限およびロール管理レルム

- Oracleデフォルト・コンポーネント保護レルム

Oracle Database Vaultレルム

Oracle Database Vaultレルムは、Oracle Database VaultのDVSYS、DVFおよびLBACSYSの各スキーマの構成およびロール情報を保護します。

この3つすべてのスキーマの所有者がこのレルムの所有者になります。これらのスキーマの詳細は、「Oracle Database Vaultのスキーマ」および「登録中に作成されるOracle Database Vaultアカウント」を参照してください。

このレルムは次のオブジェクトを保護します。

- 保護されるスキーマ全体: DVSYS、DVF、LABACSYS

- 保護されるロール:

スキーマDV_A-DV_S

スキーマDV_P-L

スキーマDV_G

DV_ADMIN

DV_PUBLIC

DV_GOLDENGATE_ADMIN

DV_AUDIT_CLEANUP

DV_PATCH_ADMIN

DV_XSTREAM_ADMIN

DV_DATAPUMP_NETWORK_LINK

DV_MONITOR

DV_GOLDENGATE_REDO_ACCESS

DV_OWNER

DV_STREAMS_ADMIN

-

DV_SECANALYST

LBAC_DBA

-

- 保護されるPL/SQLパッケージ: SYS.DBMS_RLS

Database Vaultアカウント管理レルム

Database Vaultアカウント管理レルムは、データベース・アカウントとデータベース・プロファイルを管理および作成する管理者のレルムを定義します。

このレルムは、DV_ACCTMGRロールとCONNECTロールを保護します。このレルムの所有者は、ユーザーに対してCREATE SESSION権限の付与と取消しを行うことができます。

DV_ACCTMGRロールの詳細は、「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」を参照してください。

Oracle Enterprise Managerレルム

Oracle Database Vaultには、Oracle Enterprise Managerアカウント専用のレルムが用意されています。

Oracle Enterprise Managerレルムは、監視と管理に使用されるOracle Enterprise Managerアカウント(DBSNMPユーザーおよび OEM_MONITORロール)を保護します。

Oracleデフォルト・スキーマ保護レルム

Oracleデフォルト・スキーマ保護レルムは、Oracle TextなどのOracle機能で使用されるロールやスキーマを保護します。

このグループ分けには、Oracle Spatialスキーマ(MDSYS、MDDATA)がOracle Text(CTXSYS)で拡張して使用されるメリットと、Oracle OLAPがコアOracle Databaseカーネル機能ではなくアプリケーションになるメリットがあります。

Oracleデフォルト・スキーマ保護レルムで保護されるロールとスキーマ

Oracleデフォルト・スキーマ保護レルムでは、いくつかのロールとスキーマが保護されます。

- デフォルトで保護されるロール: CTXAPP、OLAP_DBA、EJBCLIENT、OLAP_USER

- デフォルトで保護されるスキーマ: CTXSYS、EXFSYS、MDDATA、MDSYS

- 保護をお薦めするロール: APEX_ADMINISTRATOR_ROLE、SPATIAL_CSW_ADMIN、WFS_USR_ROLE、CSW_USR_ROLE、SPATIAL_WFS_ADMIN、WM_ADMIN_ROLE

- 保護をお薦めするスキーマ: APEX_030200、OWBSYS、WMSYS

Oracleデフォルト・スキーマ保護レルムの所有者

SYS、CTXSYSおよびEXFSYSユーザーは、Oracleデフォルト・スキーマ保護レルムのデフォルトの所有者です。これらのユーザーは、このレルムで保護されるロールを他のユーザーに付与して、そのスキーマに対する権限も他のユーザーに付与できます。

Oracleシステム権限およびロール管理レルム

Oracleシステム権限およびロール管理レルムは、Oracle Databaseのデータのエクスポートとインポートに使用されるすべての機密ロールを保護します。

このレルムには、システム権限を付与する必要があるユーザーの認可も含まれます。

ユーザーSYSは、このレルムの唯一のデフォルトの所有者です。システム権限の管理を担当するどのユーザーも、このレルムの所有者として認可される必要があります。これらのユーザーは、このレルムで保護されるロールを他のユーザーに付与できます。

- デフォルトで保護されるロール:

ロールA-E

ロールG-J

ロールJ-S

AQ_ADMINISTRATOR_ROLE

GATHER_SYSTEM_STATISTICS

JAVAUSERPRIV

AQ_USER_ROLE

GLOBAL_AQ_USER_ROLE

LOGSTDBY_ADMINISTRATOR

DBA

HS_ADMIN_ROLE

OPTIMIZER_PROCESSING_RATE

DBA_OLS_STATUS

IMP_FULL_DATABASE

RECOVERY_CATALOG_OWNER

DELETE_CATALOG_ROLE

JAVA_ADMIN

RESOURCE

DV_REALM_OWNER

JAVADEBUGPRIV

SCHEDULER_ADMIN

DV_REALM_RESOURCE

JAVA_DEPLOY

SELECT_CATALOG_ROLE

EXECUTE_CATALOG_ROLE

JAVAIDPRIV

-

EXP_FULL_DATABASE

JAVASYSPRIV

-

- 保護をお薦めするロール: DBFS_ROLE、HS_ADMIN_EXECUTE_ROLE、HS_ADMIN_SELECT_ROLE

Oracleデフォルト・コンポーネント保護レルム

Oracleデフォルト・コンポーネント保護レルムは、SYSTEMスキーマとOUTLNスキーマを保護します。

このレルムの認可されたユーザーは、ユーザーSYSとSYSTEMです。

レルムの作成

レルムの保護を有効にするには、レルムを作成して、レルム・セキュア・オブジェクト、ロール、および認可を含めるようにレルムを構成します。

「レルム設計のガイドライン」に、レルムの作成に関する注意事項が説明されています。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「レルム」をクリックします。

3. 「レルム」ページで、「作成」をクリックして「レルムの作成」ページを表示します。

4. 「レルムの作成」ページで、次の設定を入力します。

- 名前: レルムの名前を入力します。大/小文字の両方を使用して90文字以内で指定できます。この属性は必須です。
保護されているアプリケーションの名前をレルム名として使用することをお薦めします(人事アプリケーションにはhr_appなど)。

- 説明: レルムの簡単な説明を入力します。説明は大/小文字混在で最大で1024文字まで入力できます。この属性はオプションです。
説明には、指定されたアプリケーション保護のビジネス目標や、レルムによる保護の重要性を示すその他のすべてのセキュリティ・ポリシーを含めることができます。また、レルムに対して認可されているユーザーとその目的、および緊急時の認可についても説明できます。

- 必須レルム: レルムを必須レルムとして作成するには、このチェック・ボックスを選択します。必須レルムの詳細は、「必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限」を参照してください。

- ステータス: 「有効」または「無効」のいずれかを選択し、レルムを有効または無効にします。この属性は必須です。

- 監査オプション: 次のいずれかを選択します。

- 監査無効: 監査レコードは作成されません。

- 成功時に監査: 認可されたアクティビティの監査レコードが作成されます。

- 失敗時に監査: 認可されていないユーザーがレルムによって保護されているオブジェクトの変更を試行するというようなレルム違反が発生した場合に、監査レコードが作成されます。

- 成功時または失敗時に監査: アクティビティが認可されている場合でも認可されていない場合でも、レルム内で発生したすべてのアクティビティに関する監査レコードが作成されます。

非統合監査環境では、Oracle Database Vaultは、監査証跡をDVSYS.AUDIT_TRAIL$表に書き込みます。詳細は、「Oracle Database Vaultの監査」を参照してください。統合監査が有効な場合、この設定では監査レコードは取得されません。かわりに、『Oracle Databaseセキュリティ・ガイド』の説明に従い、この情報を取得する監査ポリシーを作成する必要があります。

5. 「次へ」をクリックして、「レルム・セキュア・オブジェクト」ページを表示します。

このページの設定の概念的な詳細は、「レルム・セキュア・オブジェクトについて」を参照してください。

6. 「追加」ボタンをクリックして、「セキュア・オブジェクトの追加」ダイアログ・ボックスで次の情報を入力します。

- オブジェクト所有者: リストから、データベース・スキーマ所有者の名前を選択します。レルムで保護するオブジェクトがロールの場合、%文字を入力できます。この属性は必須です。

- オブジェクト・タイプ: リストから、TABLE、INDEXまたはROLEなどのデータベース・オブジェクトのタイプを選択します。この属性は必須です。
任意のタイプのオブジェクトを必要なだけレルムに追加できます。

デフォルトで、「オブジェクト・タイプ」ボックスには%ワイルドカード文字が入力されており、指定されたオブジェクト所有者にすべてのオブジェクト・タイプを含めることができます。ただし、データベースに特定のスキーマ所有者がいないロールは含まれず、明示的に指定する必要があります。

- オブジェクト名: レルムで保護する必要があるデータベースのオブジェクトの名前を入力するか、%を入力して、指定したオブジェクト所有者のすべてのオブジェクト(ロール以外)を指定します。この属性は必須です。
デフォルトで、「オブジェクト名」フィールドには%ワイルドカード文字が入力されており、オブジェクト・タイプおよびオブジェクト所有者に指定されているスキーマ全体を含めることができます。%ワイルドカード文字は、現在存在するオブジェクトだけでなく、まだ存在していないオブジェクトにも適用されることに注意してください。

7. 「次へ」をクリックして、「レルム認可」ページを表示します。

このページの設定の概念的な詳細は、「レルム認可について」を参照してください。

8. 「追加」ボタンをクリックして、「認可の追加」ダイアログ・ボックスで次の情報を入力します。

- レルム認可の権限受領者: リストから、レルム認可を付与するデータベース・アカウントまたはロールを選択します。この属性は必須です。
このリストには、システム権限のあるアカウントのみでなく、システム内のすべてのアカウントおよびロールが表示されます。

- レルム認可タイプ: 次のいずれかの設定を選択します。この属性は必須です。

- 参加者: これらの権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限を使用できます。1つのレルムには複数の参加者を設定できます。

- 所有者: このアカウントまたはロールには、レルムの参加者と同じ権限に加えて、レルム・セキュア・データベース・ロールを付与または取り消す認可があります。レルム所有者は、他のユーザーに対して、レルム保護オブジェクトの権限の付与または取消しを行うことができます。1つのレルムに複数の所有者を設定できます。

- レルム認可ルール・セット: サイトに作成された使用可能なルール・セットから選択します。選択できるのは1つのルール・セットのみですが、ルール・セットには複数のルールがあります。
ルールを定義することによるレルム認可の制御の詳細は、\を参照してください。

ルール・セットに関連付けられている監査およびカスタム・イベント処理は、レルム認可処理の一部として発生します。

9. 「次へ」をクリックして確認ページを表示します。

10. 「確認」ページで、作成した設定を確認します。

次に例を示します。

11. 「終了」をクリックして、レルムの作成を完了します。

関連項目:

- レルム・セキュア・オブジェクトについて

- レルム認可について

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

レルム・セキュア・オブジェクトについて

レルム・セキュア・オブジェクトは、レルムが保護する地域(一連のスキーマおよびデータベースのオブジェクトとロール)を定義します。

次のような保護方法があります。

- 複数のデータベース・アカウントまたはスキーマのオブジェクトを同じレルムに追加できます。

- 1つのオブジェクトは複数のレルムに属することができます。
オブジェクトが複数のレルムに属する場合、Oracle Database Vaultは、適切な認可があるかどうかレルムを確認します。SELECT、DDLおよびDML文の場合、ユーザーがいずれかのレルムの参加者であり、コマンド・ルールで許可されれば、そのユーザーが入力するコマンドは許可されます。複数のレルムにおけるデータベース・ロールによるGRANTおよびREVOKE操作の場合、GRANTまたはREVOKE操作を実行するユーザーはレルムの所有者である必要があります。スキーマ所有者は、複数の通常レルムに保護されたオブジェクトに対してDML操作を行うことができます。

いずれかのレルムが必須レルムの場合、オブジェクトにアクセスするユーザーは、レルム所有者か必須レルムの参加者である必要があります。認可チェック・プロセスでは、必須レルムではないレルムは無視されます。オブジェクトを保護する必須レルムが複数ある場合、オブジェクトにアクセスするユーザーは、すべての必須レルムで認可される必要があります。

レルム認可について

レルム認可では、レルムで保護されているオブジェクトの管理またはアクセスを実行する一連のデータベース・アカウントおよびロールを決定します。

次の状況でシステム権限を使用できるように、レルム認可をアカウントまたはロールに付加できます。

- レルム・セキュア・オブジェクトの作成またはレルム・セキュア・オブジェクトへのアクセスが必要な場合

- レルム・セキュア・ロールを付与または取り消す必要がある場合

レルム所有者またはレルム参加者としてレルム認可を付与されたユーザーは、システム権限を使用してレルム内のセキュア・オブジェクトにアクセスできます。

次の点に注意してください。

- レルム所有者は、自分のレルムに他のユーザーを所有者または参加者として追加できません。DV_OWNERまたはDV_ADMINロールのあるユーザーのみ、所有者または参加者としてユーザーをレルムに追加できます。

- DV_OWNERロールを付与されているユーザーは、自分自身をレルム認可に追加できます。

- レルム所有者(ただし、レルム参加者ではない)は、レルム・セキュア・ロールの付与または取消し、あるいはレルム・セキュア・オブジェクトに対するオブジェクト権限の付与または取消しを誰に対しても行うことができます。

- ユーザーはレルム所有者またはレルム参加者のいずれかとして付与されますが、両方を付与されることはありません。また一方で、既存のレルム認可の認可タイプを更新できます。

「レルムの編集: HR Realm」ページを使用して、レルム認可を管理します。レルム認可を作成、編集および削除できます。レルム認可の構成情報を追跡する場合は、「レルム認可構成に関する問題のレポート」を参照してください。

レルムの有効化ステータスの変更

Enterprise Manager Cloud Controlからレルムを無効化または有効化できます。

1. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

2. 「レルム」ページで無効または有効にするレルムを選択し、「編集」を選択します。

3. 「レルムの編集」ページの「一般」セクションにある「ステータス」で、「無効」または「有効」を選択します。

4. 「完了」、「終了」の順にクリックします。

レルムの削除

Enterprise Manager Cloud Controlを使用して、レルムを削除できます。

1. レルムに関連するOracle Database Vaultデータ・ディクショナリ・ビューに問い合せて、削除するレルムへの様々な参照を特定します。

これらのビューの詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

2. Oracle Database Vaultの「管理」ページで、「レルム」を選択します。

3. 「レルム」ページで削除するレルムを選択し、「削除」を選択します。

4. 「確認」ウィンドウで、「はい」をクリックします。

Oracle Database Vaultは、レルムの構成(レルム認可を含む)を削除します。レルム認可に使用されるルール・セットは削除しません。

レルムの動作

適切な権限を持つデータベース・アカウントが、レルム内のオブジェクトに影響するSQL文を発行すると、特別なアクティビティのセットが発生します。

これらの権限には、DDL、DML、EXECUTE、GRANT、REVOKE、またはSELECT権限が含まれます。

1. SQL文はレルムによって保護されているオブジェクトに影響しますか。
実行する場合は、手順2に進みます。実行しない場合、レルムはSQL文に影響しません。手順7に進みます。コマンドによって影響されるオブジェクトがレルムで保護されていない場合、レルムも実行されるSQL文には影響しません。

2. 必須レルムですか、通常のレルムですか。

影響する場合は、手順4に進みます。通常レルムの場合は、手順3に進みます。

3. データベース・アカウントで、システム権限を使用してSQL文を実行しますか。

影響する場合は、手順4に進みます。当てはまらない場合は、手順6に進みます。セッションが、対象となるオブジェクトに対して、SELECT、EXECUTEおよびDML文のオブジェクト権限しか持っていない場合、レルム保護は実施されません。レルムは、レルムで保護されているオブジェクトまたはロールに対するシステム権限の使用を保護します。通常レルムによって保護されているオブジェクトに関するオブジェクト権限を持つユーザーでも、DDL操作を行うことはできません。

O7_DICTIONARY_ACCESSIBILITY初期化パラメータがTRUEに設定されている場合は、SYS以外のユーザーがSYSスキーマ・オブジェクトにアクセスできることに留意してください。セキュリティ強化のために、O7_DICTIONARY_ACCESSIBILITYがFALSEに設定されていることを確認してください。

4. データベース・アカウントは、レルム所有者またはレルム参加者ですか。

当てはまる場合は、手順5に進みます。いずれでもない場合は、レルム違反が発生し、文は失敗します。コマンドがレルムで保護されているロールのGRANTかREVOKEである場合、またはレルムで保護されているオブジェクトに対するオブジェクト権限GRANTかREVOKEである場合、セッションはロールを介して直接的または間接的にレルム所有者として認可されている必要があります。

5. データベース・アカウントに対するレルム認可は、状況に応じてルール・セットに基づきますか。

当てはまる場合は、手順6に進みます。当てはまらない場合は、手順7に進みます。

6. ルール・セットはTRUEに評価されますか。

影響する場合は、手順7に進みます。そうでない場合は、レルム違反が発生し、SQL文は失敗します。

7. コマンド・ルールでコマンドの実行が阻止されますか。

阻止される場合は、コマンド・ルール違反が発生しSQL文は失敗します。阻止されない場合は、レルム違反もコマンド・ルール違反も発生しないため、コマンドは成功します。

たとえば、HRアカウントにDROP ANY TABLE権限があり、HRレルムの所有者であるとしても、月ごとのメンテナンスの時間帯でないかぎり、コマンド・ルールでHRによるHRスキーマの任意の表の削除を阻止できます。コマンド・ルールは、オブジェクト権限だけでなくANYシステム権限の使用にも適用され、レルム・チェック後に評価されます。

また、セッションはレルム内で認可されるため、アカウントはレルムによって保護されているオブジェクトを完全に制御できるわけではありません。レルム認可は、アカウントに追加権限を暗黙的に付与しません。アカウントは、従前どおり、オブジェクトにアクセスするためのシステム権限またはオブジェクト権限を持っている必要があります。たとえば、アカウントまたはロールにSELECT ANY表権限があり、HRレルムの参加者であるとします。これは、そのアカウントまたはロールが付与されているアカウントによる、HR.EMPLOYEES表への問合せが可能であることを意味します。レルムの参加者であることは、そのアカウントまたはロールでHR.EMPLOYEES表をDROPできるということではありません。Oracle Database Vaultは、既存のOracleデータベースの任意アクセス制御モデルを置き換えません。レルムおよびコマンド・ルールの両方で、このモデルの上位の層として機能します。

次の点に注意してください。

- デフォルトでは、レルム内の表の保護では、ビューは保護されません。ビューが作成された時期が、表がレルムに追加される前か後かに関係なく、保護する必要のあるビューは、レルムに追加しておく必要があります。

- レルムで保護されたオブジェクトにアクセスする起動者権限でのプロシージャでは、プロシージャの起動者がレルムに対して認可されている必要があります。

- 表のアクセスがPUBLICに付与されている場合、レルム保護では表は保護されないので注意してください。たとえば、SELECT ON table_nameがPUBLICに付与されている場合、table_name(表が必須レルムで保護される場合を除く)がレルムで保護されていても、全ユーザーがこの表にアクセスできます。不要な権限はPUBLICから取り消すことをお薦めします。

レルムでの認可の動作

レルム認可は、適切な権限を持たないユーザーがアクティビティを実行するのを防止します。

内容は次のとおりです。

- レルムの認可について

- レルム認可の例

レルムの認可について

レルムは、システム権限によるアクセスからデータを保護します。

レルムは、データ所有者または参加者に追加の権限は付与しません。

レルム認可により、ユーザーのコマンドがコマンド内に指定されているオブジェクトへのアクセスや、そのコマンドの実行を許可または拒否される必要がある場合、論理的に確認する実行時メカニズムが提供されます。

システム権限は、CREATE ANY TABLEおよびDELETE ANY TABLEなどのデータベース権限より優先されます。通常これらの権限はスキーマ全体に適用されるため、オブジェクト権限の必要はありません。DBA_SYS_PRIVS、USER_SYS_PRIVSおよびROLE_SYS_PRIVSなどのデータ・ディクショナリ・ビューには、データベース・アカウントまたはロールのシステム権限が表示されています。データベース認可は、レルムに保護されていないオブジェクトを対象としています。ただし、レルムによって保護されているオブジェクトのシステム権限を正常に使用するには、ユーザーがレルム所有者または参加者として認可されている必要があります。レルム違反によりシステム権限の使用を阻止し、監査することができます。

必須レルムは、オブジェクト権限およびシステム権限に基づく両方のアクセスをブロックします。つまり、オブジェクト所有者は、レルムへのアクセスが認可されない場合、アクセスできません。ユーザーは、ユーザーまたはロールがレルムにアクセスする認可を受けている場合のみ、必須レルムのセキュア・オブジェクトにアクセスできます。

レルム認可の例

システム権限および他の強力な権限を持つユーザーからオブジェクトを保護するレルムを作成できます。

内容は次のとおりです。

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

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

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

例: 認可されていないユーザーによる表作成の試行

権限のないユーザーが表を作成しようとすると、ORA-47401エラーが発生します。

例5-1に、レルムによってHRスキーマが保護されているレルムに、CREATE ANY TABLEシステム権限を持つ認可されていないユーザーが表の作成を試行すると発生する動作を示します。

例5-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などのシステム権限の不正な使用は失敗します。

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

適切な権限を持たないユーザーがアクセスしようとすると、「ORA-01031: insufficient privileges」というエラーが発生します。

例5-2に、認可されていないデータベース・アカウントがDELETE ANY TABLEシステム権限を使用して既存のレコードの削除を試行すると発生する動作を示します。データベース・セッションにより次のエラーが返されます。

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

DELETE FROM HR.EMPLOYEES WHERE EMPNO = 8002;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

レルムはオブジェクトの直接権限には影響しません。たとえば、HR.EMPLOYEES表の削除権限を付与されているユーザーは、レルム認証なしで正常にレコードを削除できます。そのため、レルムには、データベース・アカウントによる通常のビジネス・アプリケーションの使用に最低限の影響力が必要です。

例: 認可されたユーザーによるDELETE操作の実行

認可ユーザーは、与えられた権限の範囲内でアクティビティを実行することができます。

例5-3に、認可されたユーザーがレルム内で許可された標準的なタスクをどのように実行するかを示します。

例5-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権限がある場合。データ保護レルムで、索引タイプを除いて保護するすべてのオブジェクト・タイプを指定します。これにより、保護された表の索引をすべての管理者が作成できます。

レルムの動作の例

レルムは、同じ権限を持つ2人のユーザーがオブジェクトに対して別々のアクセス・レベルを必要とする場合に、保護を提供することができます。

図5-1は、レルム内のデータがどのように保護されているかを示しています。

このシナリオでは、別々のレルムを担当する2人のユーザーに同じシステム権限があります。レルム所有者は、データベース・アカウントまたはデータベース・ロールのいずれかです。OE_ADMINおよびHR_ADMINの2つのロールのそれぞれは、セキュア・オブジェクトとしてレルムで保護され、かつレルム所有者として構成されます。

さらに、OE_ADMINなどのレルム所有者は、レルムで保護されているデータベース・ロールの付与または取消しを実行できます。レルム所有者は、他のレルムで保護されるロール(Oracleシステム権限およびロール管理レルムでSYSによって作成されるDBAロールなど)を管理できません。レルムで保護されているオブジェクトにアクセスするためにシステム権限の不正な使用を試行することで、監査可能なレルム違反が生成されます。各レルム所有者の権限はそのレルム内に制限されます。たとえば、OE_ADMINには人事レルムへのアクセス権はなく、HR_ADMINには受注レルムへのアクセス権はありません。

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

関連項目:

レルムの作成および使用方法に関するチュートリアルは、「クイック・スタート・チュートリアル: DBAアクセスからのスキーマの保護」を参照してください

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

レルムは、ファクタ、アイデンティティ、ルール・セットには影響を与えず、コマンド・ルールに影響を与えます。

コマンド・ルールを使用すると、Oracle Database VaultはSQL文の処理時にまずレルム認可を評価します。

「レルムの動作」では、レルム内のオブジェクトに影響を与えるSQL文を処理する際にOracle Database Vaultで実行される手順が説明されています。「コマンド・ルールの動作」では、コマンド・ルールがどのように処理されるかが説明されています。

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

Oracleでは、一連のレルム設計のガイドラインを提供しています。

- データベース・アプリケーションを構成するスキーマおよびロールに基づいてレルムを作成します。
最小限かつ特定のロールおよびアプリケーション・オブジェクトの維持に必要なシステム権限でデータベース・ロールを定義し、名前付きアカウントにロールを付与します。これにより、レルムの認可されたメンバーとしてロールを追加できます。レルムで保護されていてアプリケーションに必要なオブジェクトのオブジェクト・レベルの権限の場合、ロールを作成して、最低限かつ特定のオブジェクト・レベルの権限をロールに付与し、名前付きアカウントを付与します。多くの場合、ANYの付くシステム権限がすでに使用中でないかぎり、これらのタイプのロールをレルムで認可する必要はありません。権限はできるだけ少なくするという方針のモデルがデータベース・アプリケーションには理想的です。

- データベース・オブジェクトは複数のレルムに属することが可能で、アカウントまたはロールは複数のレルムで認可することが可能です。
データベース・スキーマのサブセットに制限付きのアクセス権(HRスキーマのEMPLOYEES表のみ、またはレルムで保護されたロールなど)を付与するには、最低限必要なオブジェクトと認可で新しいレルムを作成します。

- ロールを権限受領者としてレルムに追加する場合は、ロールを保護するレルムを作成します。これにより、SYSTEMユーザー・アカウントなどGRANT ANY ROLEシステム権限が付与されているユーザーが、自分自身にロールを付与することができなくなります。

- SYSユーザー・アカウントをレルム認可に追加する場合は、ロール(DBAロールなど)を介さずに、ユーザーSYSを明示的に追加する必要があります。

- レルム認可として追加する予定で、現在ロールに許可されている権限に注意してください。
SYSまたはSYSTEMなどのアカウントが初めてロールを作成し、Oracle Database Vault管理者がそのロールをレルム認可として追加した場合、ロールのレルム認可は意図せず付与される可能性があり、すぐには気付きません。これはロールを作成するアカウントが作成される際に、ロールが暗黙的に付与されるためです。

- 管理タスクに対しては、一時的なレルム保護の緩和が必要な場合もあります。レルムを無効にするのではなく、セキュリティ管理者(DV_ADMINまたはDV_OWNER)をログインさせて、レルムの認可されたアカウントに名前付きのアカウントを追加し、認可ルール・セットを有効に設定します。その後、有効なルール・セットで、ルール・セットの監査をすべてオンにします。管理タスクが完了するとレルム認可を削除できます。

- 新しいユーザーにANY権限を付与する場合は、必要に応じて他のユーザーにANY権限を付与できるよう、Oracleシステム権限およびロール管理レルムにデータベース管理ユーザーを追加することをお薦めします。たとえば、名前付きアカウントを使用してANY操作のGRANTを実行すると、これらの操作の監査が可能になり、説明責任を果すための監査証跡が作成されます。

- レルムによって保護されていた表、索引またはロールを削除し、同じ名前を使用して再作成した場合、レルムの保護はリストアされません。新しい表、索引またはロールに対してレルムの保護を再作成する必要があります。ただし、指定したスキーマ内の以後の表、索引およびロールすべてに対して自動的に保護を実施できます。たとえば、以後の表すべてに保護を実施するには、次のようにします。

BEGIN
DBMS_MACADM.ADD_OBJECT_TO_REALM('realm_name', 'schema_name', '%', 'TABLE');
END;
/

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

レルムは、DDLおよびDML操作などの様々な状況で、データベース・パフォーマンスに影響します。

- レルムで保護されているオブジェクトに対するDDLおよびDML操作によって、Oracle Databaseはそれほど影響を受けません。スキーマ全体を対象としてレルムを作成し、割り当てられたタスクに関連する特定の操作のみを実行できるよう特定のユーザーを認可することをお薦めします。ファイングレイン制御の場合は、個々の表を対象とするレルムを定義し、表に対する特定の操作を実行できるようユーザーを認可すると同時に、スキーマ全体を対象としたレルムでアプリケーション全体を保護することもできます。ただし、このタイプの構成はパフォーマンスを低下させる可能性がある一方、スキーマ内の一部のオブジェクトにレルム認可を付与できないことに注意してください。

- 監査はパフォーマンスに影響します。最高のパフォーマンスを実現するためには、すべての操作を監査するのではなくファイングレイン監査を使用することをお薦めします。

- システム・パフォーマンスを定期的に確認します。確認するには、Oracle Enterprise Manager(Oracle Databaseと一緒にデフォルトでインストールされるOracle Enterprise Manager Cloud Controlを含む)、自動ワークロード・リポジトリ(AWR)およびTKPROFなどのツールを実行します。

関連項目:

- データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください

- 個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください

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

Oracle Database Vaultには、レルムの分析に役立つ、レポートとデータ・ディクショナリ・ビューが用意されています。

表5-1に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

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

レポート

目的

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

レルムの保護およびレルム認可操作により生成されたレコードが監査されます。

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

不完全または無効なルール・セット、またはレルムに影響する権限受領者や所有者が存在しないなどの認可構成情報が表示されます。

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

ルールが定義されていないか、有効ではなく、それらを使用するレルムに影響を与える可能性があるルール・セットが表示されます。

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

レルムが影響するオブジェクト権限が表示されます。

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

レルムの権限受領者および所有者の情報が示されます。

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

コマンド・ルールが影響するオブジェクトが表示されます。

表5-2に、既存のレルムに関する情報を提供するデータ・ディクショナリ・ビューを示します。

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

データ・ディクショナリ・ビュー

説明

DVSYS.DBA_DV_REALMビュー

現行のデータベース・インスタンスで作成されたレルムが表示されます。

DVSYS.DBA_DV_REALM_AUTHビュー

特定のレルムのレルム・オブジェクトにアクセスするための、名前付きデータベース・ユーザー・アカウントまたはデータベース・ロール(GRANTEE)の認可が表示されます。

DVSYS.DBA_DV_REALM_OBJECTビュー

データベース・スキーマ、または特定のデータベース・オブジェクトが含まれている(つまり、レルムによって保護されている)スキーマのサブセットが表示されます。

6 ルール・セットの構成

ルール・セットは、1つまたは複数のルールをまとめてグループ化します。これらのルールは、ユーザーがオブジェクトに対してアクションを実行できるかどうかを決定します。

内容は次のとおりです。

- ルール・セットの概要

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

- ルール・セットの作成

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

- Oracle Database Vaultコンポーネントへのルール・セット参照の削除

- ルール・セットの削除

- ルール・セットの動作

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

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

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

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

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

関連項目:

Oracle Database Vaultルール・セットのAPI

ルール・セットの概要

ルール・セットとは、1つ以上のルールの集合です。

ルール・セットは、レルム認可、ファクタ割り当て、コマンド・ルール、またはセキュア・アプリケーション・ロールに関連付けることができます。

ルール・セットは、それに含まれる各ルールと評価タイプ(「すべてのTrue」または「いずれかTrue」)に基づいて、trueまたはfalseに評価されます。ルール・セット内のルールは、TrueまたはFalseと評価されるPL/SQL式です。ルールを作成し、そのルールを複数のルール・セットに追加できます。

ルール・セットを使用して次のアクティビティを実行できます。

- レルム認可がアクティブになる条件の定義(レルム認可をさらに制限することが目的)

- コマンド・ルールを許可する時期の定義

- セキュア・アプリケーション・ロールの有効化

- ファクタのアイデンティティを割り当てる時期の定義

ルール・セットを作成すると、レルムの認証、コマンド・ルール、ファクタまたはセキュア・アプリケーション・ロールの構成時に選択できるようになります。

Oracle Database Vaultに作成するルール・セット上でレポートを実行できます。詳細は、「ルール・セットとルールに関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

この章では、Oracle Database Vault Administratorを使用してルール・セットを構成する方法を説明します。Oracle Database Vaultで提供されるPL/SQLインタフェースおよびパッケージを使用することでルール・セットを構成するには、「Oracle Database Vaultルール・セットのAPI」を参照してください。

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

Oracle Database Vaultにはデフォルトのルール・セットが用意されており、必要に応じてカスタマイズすることができます。

すべてのルール・セットの一覧は、DVSYS.DBA_DV_RULE_SETデータ・ディクショナリ・ビューに問い合せることによって表示できます。ルール・セットに関連付けられたルールを探すには、DVSYS.DBA_DV_RULE_SET_RULEデータ・ディクショナリ・ビューに問い合わせます。

デフォルトのルール・セットは次のとおりです。

- システム・パラメータのファイングレイン・コントロールを許可:このルール・セットを使用すると、システム・セキュリティ、ダンプまたは宛先の場所、バックアップとリストアの設定、オプティマイザの設定、PL/SQLデバッグおよびセキュリティ・パラメータを管理する初期化パラメータに対し、非常に柔軟で細かな制御を行うことができます。これは、このルール・セットに関連付けられたルールに基づいて、次の初期化パラメータに影響します。

- 「システム・セキュリティ・パラメータが許可されているか」のルール: O7_DICTIONARY_ACCESSIBILITYを設定できません

- 「ダンプまたは宛先パラメータが許可されているか」のルール: 次のパラメータを設定できません。

パラメータB-D

パラメータD-U

BACKGROUND_DUMP_DEST

DB_RECOVERY_FILE_DEST

CORE_DUMP_DEST

DIAGNOSTIC_DEST

DUMP_DATAFILE

LOG_ARCHIVE_MIN_SUCCEED_DEST

USER_DUMP_DEST

LOG_ARCHIVE_TRACE

DB_CREATE_ONLINE_LOG_DEST

USER_DUMP_DEST

- 「バックアップ・リストア・パラメータが許可されているか」のルール: RECYCLEBINを設定できません(ただしリサイクルビンの無効化は妨げられません)。

- 「データベース・ファイル・パラメータが許可されているか」のルール: CONTROL_FILESを設定できません。

- 「オプティマイザ・パラメータが許可されているか」のルール: OPTIMIZER_SECURE_VIEW_MERGING = FALSEを設定できます(ただしTRUEは指定できません)。

- 「PL-SQLパラメータが許可されているか」のルール: PLSQL_DEBUG = FALSEを設定でき(ただしTRUEは指定できません)、UTL_FILE_DIRを設定できません。

- 「セキュリティ・パラメータが許可されているか」のルール: 次のパラメータを設定できません。

パラメータA-A

パラメータO-S

AUDIT_SYS_OPERATIONS = FALSE

OS_ROLES = TRUE

AUDIT_TRAIL = NONE or FALSE

REMOTE_OS_ROLES = TRUE

AUDIT_SYSLOG_LEVEL

SQL92_SECURITY = FALSE

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

- システム・パラメータを許可: システム初期化パラメータを設定する権限を制御します。Oracle Database 11gリリース2(11.2)以降では、このルール・セットは「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットに置き換えられていますが、下位互換性を確保するために引き続きサポートされます。「システム・パラメータを許可」ルール・セットはどのコマンドにも関連付けられていませんが、そのルールは引き続き使用可能で、任意のカスタム・ルール・セットで使用できます。「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットを使用することをお薦めします。

- VPD管理権限を付与可能: GRANTおよびREVOKE文を使用して、Oracle Virtual Private DatabaseのDBMS_RLSパッケージのGRANT EXECUTEまたはREVOKE EXECUTE権限を付与する権限を制御します。

- セッションを許可: データベースにセッションを作成する権限を制御します。このルール・セットを使用すると、CONNECTコマンド・ルールを使用してデータベース・ログインを制御するためのルールを追加できます。CONNECTコマンド・ルールは、その使用が必要なプログラムへのSYSDBAアクセスの制御または制限に有用です。このルール・セットは移入されていません。

- アカウント/プロファイルを保守可能: CREATE USER、DROP USER、CREATE PROFILE、ALTER PROFILEまたはDROP PROFILE文を使用して、ユーザー・アカウントおよびプロファイルを管理するロールを制御します。

- 自分のアカウントを保守可能: DV_ACCTMGRロールのあるアカウントを許可し、ALTER USER文を使用したユーザー・アカウントおよびプロファイルの管理を可能にします。また、ALTER USER文を使用した、個々のアカウントによる個人のパスワードの変更を許可します。DV_ACCTMGRロールの詳細は、「DV_ACCTMGR Database Vaultアカウント・マネージャ・ロール」を参照してください。

- 無効: レルム、コマンド・ルール、ファクタおよびセキュア・アプリケーション・ロールを迅速に無効にするための簡易ルール・セットです。

- 有効: システム機能を迅速に有効にするための簡易ルール・セットです。

ルール・セットの作成

ルール・セットを作成するには、まずルール・セット自体を作成し、次にそのルール・セットを編集して1つ以上のルールに関連付けます。

作成したルール・セットに新しいルールを関連付ける、既存のルールを追加する、またはそのルール・セットからルールの関連付けを削除することが可能です。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ルール・セット」をクリックします。

3. 「ルール・セット」ページで、「作成」をクリックして「ルール・セットの作成」ページを表示します。

4. 「一般」ページで、次の情報を入力します。

- 名前: ルール・セットの名前を入力します。大/小文字の両方を使用して90文字以内で指定できます。空白を使用できます。この属性は必須です。
名前は動詞で始まり、ルール・セットが関連付けられるレルムまたはコマンド・ルールの名前で終わることをお薦めします。次に例を示します。

Limit SQL*Plus access

- 説明: ルール・セットの機能の説明を入力します。大/小文字の両方を使用して1024文字以内で指定できます。この属性はオプションです。
ルール・セットのビジネス要件を説明できます。次に例を示します。

Rule to limit access to SQL*Plus

- 統計ルール・セット: ルール・セットがユーザー・セッション中にアクセスされるときの評価の頻度を制御できます。統計ルール・セットは、ユーザー・セッションで初めてアクセスされる際に一度評価されます。その後、評価された値はユーザー・セッションで再利用されます。その一方で、非統計ルール・セットは、アクセスされるたびに評価されます。

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にルール・セットを有効または無効にします。この属性は必須です。

- 評価オプション: ルール・セットに複数のルールを割り当てる場合は、次の設定のいずれかを選択します。

- すべてTrue: ルール・セット自体がTrueと評価されるために、ルール・セットのルールはすべてTrueと評価される必要があります。

- いずれかTrue: ルール・セット自体がTrueと評価されるために、少なくともルール・セットの1つのルールがTrueと評価される必要があります。

5. 「次へ」をクリックして、「ルール・セットに関連付けられたルール」ページを表示します。

6. 次のいずれかのオプションを選択します。

- 既存のルールの追加: 「使用可能なルール」リストをダブルクリックして、ルールを「選択したルール」リストに移動し、「OK」をクリックします。

- ルールの作成: 名前と、TrueまたはFalseに評価されるWHERE句式を入力します。「OK」をクリックします。詳細は、「ルール・セットに追加するルールの作成」を参照してください。

7. 「次へ」をクリックして、「エラー処理および監査オプション」ページを表示します。

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

- エラー処理: 「エラー・メッセージの表示」または「エラー・メッセージを表示しない」を選択します。
「エラー・メッセージを表示しない」を選択して監査を有効にする利点は、潜在的な侵入者のアクティビティを追跡できるということです。監査レポートにより侵入者のアクティビティを把握できますが、エラー・メッセージが表示されないため、侵入者は監査が行われていることに気付きません。

- 失敗コード: -20000から-20999または20000から20999の範囲の数値を入力します。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、失敗メッセージ(次で作成)付きのエラー・コードが表示されます。この設定を省略すると、Oracle Database Vaultにより一般的なエラー・コードが表示されます。

- 失敗メッセージ: 大/小文字混在で80文字以内のメッセージを入力し、「失敗コード」で指定した失敗コードに関連付けます。ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、エラー・メッセージが表示されます。エラー・メッセージを指定しない場合、Oracle Database Vaultにより通常のエラー・メッセージが表示されます。

- カスタム・イベント・ハンドラ・オプション: 次のオプションのいずれかを選択し、カスタム・イベント・ハンドラ・ロジック(次で作成)を実行する時期を決定します。

- ハンドラ無効: カスタム・イベント・メソッドを実行しません。

- 失敗時に実行: ルール・セットがFalseと評価されるか、関連付けられたルールのいずれかに無効なPL/SQL式が含まれる場合に、カスタム・イベント・メソッドが実行されます。

- 成功時に実行: ルール・セットがTrueと評価されるとカスタム・イベント・メソッドが実行されます。

カスタム・イベント・メソッドを作成して、標準のOracle Database Vaultルール・セットの監査機能以外の特別な処理を実行できます。たとえば、イベント・ハンドラを使用して、ワークフロー・プロセスの開始や外部システムへのイベント情報の送信を実行できます。

- カスタム・イベント・ハンドラ・ロジック: 大/小文字混在で255文字以内のPL/SQL式を入力します。式には、任意のパッケージ・プロシージャまたはスタンドアロン・プロシージャを含めることができます。独自の式を作成するか、「Oracle Database Vaultルール・セットのAPI」で説明されている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: ハンドラ処理にルール・セットの名前と戻り値が不要な場合に、この書式を使用します。

起動者権限プロシージャをイベント・ハンドラとして使用できないことに注意してください。使用した場合、ルール・セットの評価が予想外に失敗することがあります。定義者権限プロシージャのみをイベント・ハンドラとして使用してください。

次の構文を使用します。

myschema.my_ruleset_handler

- 監査オプション: 次のオプションから選択すると、非統合監査環境でルール・セットの監査レコードが生成されます。Oracle Database Vaultは、監査証跡をDVSYS.AUDIT_TRAIL$表に書き込みます。(統合監査が有効な場合、この設定では監査レコードは取得されません。かわりに、この情報を取得する統合監査ポリシーを作成する必要があります。)

- 監査無効: どのような場合にも監査レコードは作成されません。

- 成功時に監査: ルール・セットがTrueに評価されると、監査レコードが作成されます。

- 失敗時に監査: ルール・セットがFalseに評価されたとき、または関連付けられたルールのいずれかに無効なPL/SQL式が含まれているときに、監査レコードが作成されます。

- 成功時または失敗時に監査: ルール・セットが評価されるたびに監査レコードが作成されます。

9. 「次へ」をクリックして確認ページを表示します。

10. 設定を確認して、納得のいく場合は「終了」をクリックします。

関連項目:

- DVSYS.AUDIT_TRAIL$表の監査レコードの詳細は、「Oracle Database Vaultの監査」を参照してください

- Database Vaultの統合監査ポリシーの作成については、『Oracle Databaseセキュリティ・ガイド』を参照してください

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

ルールは制御する動作を定義します。ルール・セットは、ルールを集めて名前を付けたものです。

内容は次のとおりです。

- ルールの作成について

- デフォルト・ルール

- 新規ルールの作成

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

ルールの作成について

ルールは、ルール・セットの作成プロセス中またはそれに関係なく作成できます。

ルールを作成した後は、1つのルール・セットを1つ以上の追加ルールと関連付けることができます。

ルール・セットの作成プロセス中に新しいルールを作成する場合、そのルールは、現在のルール・セットに自動で追加されます。既存のルールをルール・セットに追加することもできます。また、ルール・セットにルールを追加せずに、今後作成するルール・セットのテンプレートとして使用することもできます。

ルールをルール・セットに必要なだけ追加できますが、適切な設計とパフォーマンスの向上のために、ルール・セットを簡単にしておく必要があります。その他のアドバイスについては、「ルール・セットの設計のガイドライン」を参照してください。

ルール・セットの評価は、評価オプション(「すべてTrue」または「いずれかTrue」)を使用するルールの評価に依存します。ルール・セットが無効である場合、Oracle Database Vaultは、ルールを評価せずにルール・セットをTrueに評価します。

関連項目:
ルールの評価方法、ルールのネスト方法、および特定のユーザー(特権ユーザーなど)を除外するルールの作成方法については、「ルール・セットの動作」を参照してください

デフォルト・ルール

デフォルト・ルールとは、あるアクションがTrueまたはFalseと評価された場合にチェックを行うなど、よく使われる動作が設定されたルールです。

ルールの一覧を検索するには、DVSYS.DBA_DV_RULEデータ・ディクショナリ・ビューに問い合せます。

表6-1に、Oracle Databaseのデフォルト・ルールを示します。

表6-1 Oracle Database Vaultのデフォルト・ルール

ルール

説明

バックアップ・リストア・パラメータが許可されているか

現在のSQL文がRECYCLEBINパラメータを有効にしようとするかどうかを確認します。

データベース・ファイル・パラメータが許可されているか

現在のSQL文が制御ファイル関連の構成を変更しようとするかどうかを確認します。

ダンプまたは宛先パラメータが許可されているか

現在のSQL文が、ダンプのサイズ制限や宛先に関連する初期化パラメータを変更しようとするかどうかを確認します。

オプティマイザ・パラメータが許可されているか

現在のSQL文がOPTIMIZER_SECURE_VIEW_MERGINGパラメータの設定を変更しようとするかどうかを確認します。

PL-SQLパラメータが許可されているか

現在のSQL文が、次の初期化パラメータを変更しようとするかどうかを確認します。

- UTL_FILE_DIR

- PLSQL_DEBUG

セキュリティ・パラメータが許可されているか

次の初期化パラメータを無効にしようとするかどうかを確認します。

- AUDIT_SYS_OPERATIONS

- AUDIT_TRAIL

- AUDIT_SYSLOG_LEVEL

- SQL92_SECURITY

統合監査が有効な場合、AUDIT_SYS_OPERATIONS、AUDIT_TRAILおよびAUDIT_SYSLOG_LEVELパラメータによる影響はありません。

このルールにより、次のパラメータは有効になりません。

- OS_ROLES

- REMOTE_OS_ROLES

システム・セキュリティ・パラメータが許可されているか

次のパラメータが変更しないようにします。

- O7_DICTIONARY_ACCESSIBILITY

- DYNAMIC_RLS_POLICIES

- _SYSTEM_TRIG_ENABLED

False

Evaluates to FALSE

Alter DVSYSが許可されているか

ログインしたユーザーが、他のユーザーに対するALTER USER文を正常に実行できるかどうかを確認します。

データベース管理者であるか

ユーザーにDBAロールが付与されているかどうかを確認します。

Drop Userが許可されているか

ログインしたユーザーがユーザーを削除できるかどうかを確認します。

月の最初の日であるか

指定した日が月の最初の日であるかどうかを確認します。

ラベル管理者であるか

ユーザーにLBAC_DBAロールが付与されているかどうかを確認します。

月の最後の日であるか

指定した日が月の最後の日であるかどうかを確認します。

_dynamic_rls_initパラメータが許可されているか

DYNAMIC_RLS_POLICIESパラメータが変更されないようにします。

SYSまたはSYSTEMユーザーであるか

ユーザーがSYSまたはSYSTEMであるかどうかを確認します。

セキュリティ管理者であるか

ユーザーにDV_ADMINロールが付与されているかどうかを確認します。

セキュリティ所有者であるか

ユーザーにDV_OWNERロールが付与されているかどうかを確認します。

ユーザー・マネージャであるか

ユーザーにDV_ACCTMGRロールが付与されているかどうかを確認します。

_system_trig_enabledパラメータが許可されているか

ユーザーが次のシステム・パラメータを変更しようとするかどうかを確認しますが、データベース・リカバリ操作では、このルールにより、これらのパラメータの変更が許可されます。

- AUDIT_SYS_OPERATIONS: ユーザーがこのルールをFALSEに設定できないようにします。

- AUDIT_TRAIL: ユーザーがこのルールをNONEまたはFALSEに設定できないようにします。

- AUDIT_SYSLOG_LEVEL: このパラメータに対するすべての操作をブロックします。

- CONTROL_FILES: すべての操作をブロックします。

- OPTIMIZER_SECURE_VIEW_MERGING: ユーザーがこのルールをTRUEに設定できないようにします。

- OS_ROLES: ユーザーがこのルールをTRUEに設定できないようにします。

- PLSQL_DEBUG: ユーザーがこのルールをONに設定できないようにします。

- RECYCLEBIN: ユーザーがこのルールをONに設定できないようにします。

- REMOTE_OS_ROLES: ユーザーがこのルールをTRUEに設定できないようにします。

- SQL92_SECURITY: ユーザーがこのルールをFALSEに設定できないようにします。

- UTL_FILE_DIR: このパラメータに対するすべての操作をブロックします。

統合監査が有効な場合、AUDIT_SYS_OPERATIONS、AUDIT_TRAILおよびAUDIT_SYSLOG_LEVELパラメータによる影響はありません。

o7_dictionary_accessibilityパラメータが許可されているか

現在のSQL文がO7_DICTIONARY_ACCESSIBILITYパラメータの設定を変更しようとするかどうかを確認します。

ログイン・ユーザーがオブジェクト・ユーザーである

ログインしたユーザーが、現在のSQL文で変更されようとしているユーザーと同じであるかどうかを確認します。

EXEMPT ACCESS POLICYロールがない

ユーザーにEXEMPT ACCESS POLICYロールが付与されているかどうか、またはユーザーSYSであるかどうかを確認します。

エクスポート・セッションではない

廃止

True

Evaluates to TRUE

新規ルールの作成

Enterprise Manager Cloud Controlに新しいルールを作成できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ルール」をクリックします。

3. 「作成」ボタンをクリックします。

4. 「ルールの作成」ページで、次の設定を入力します。

- 名前: ルールの名前を入力します。大/小文字混在で最大で90文字まで入力できます。
名前は動詞で始まり、ルールの目的で終わることをお薦めします。次に例を示します。

Prevent non-admin access to SQL*Plus

ルールには「説明」フィールドがないため、明示的な名前を指定してください。ただし、90文字は超えないようにしてください。

- ルール式: 次の要件に一致するPL/SQL式を入力します。

- SQLのWHERE句で有効です。

- 次に示すような、独立していて有効なPL/SQLブール式です。

TO_CHAR(SYSDATE,'HH24') = '12'

- ブール(TRUEまたはFALSE)値と評価される必要があります。

- 1024文字以内である必要があります。

- 現行のデータベース・インスタンスから既存のコンパイルされた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;

以前にリストしたブール例の場合、次のように入力します。

SELECT TO_CHAR(SYSDATE,'HH24')FROM DUAL;

関連項目:

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

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

- Oracle Database VaultユーティリティのAPI

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

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

1つ以上のルールを作成すると、Enterprise Manager Cloud Controlを使用してルール・セットに追加できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ルール・セット」をクリックします。

3. 既存のルールの追加先のルール・セットを選択して、「編集」をクリックします。

4. 「ルール・セットに関連付けられたルール」ページになるまで、「次へ」をクリックします。

5. 「既存のルールの追加」をクリックして、「既存のルールの追加」ダイアログ・ボックスを表示します。

6. 「既存のルールの追加」ページで、対象のルールを選択して「移動」(すべて移動する場合は「すべて移動」)をクリックし、それらを「選択したルール」リストに移動します。

[Ctrl]キーを押しながら各ルールをクリックすると、複数のルールを選択できます。

7. 「OK」をクリックします

8. 「完了」、「終了」の順にクリックします。

ルール・セットからのルールの削除

ルール・セットからルールを削除する前に、Cloud Controlを使用してそのルールへの様々な参照を見つけることができます。

Oracle Database Vaultのビューの詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

ルール・セットからルールを削除する手順:

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ルール・セット」をクリックします。

3. 既存のルールの追加先のルール・セットを選択して、「編集」をクリックします。

4. 「ルール・セットに関連付けられたルール」ページになるまで、「次へ」をクリックします。

5. 削除するルールを選択して、「削除」をクリックします。

6. 「完了」、「終了」の順にクリックします。

ルール・セットからルールを削除しても、そのルールはまだ存在します。必要に応じて、そのルールをその他のルール・セットに関連付けることができます。ルールを削除する場合、「ルール」ページから行うことができます。

Oracle Database Vaultコンポーネントへのルール・セット参照の削除

ルール・セットを削除する前に、ルール・セットのOracle Database Vaultコンポーネントへの参照を削除する必要があります。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 削除するルール・セットの参照を見つけます。

「ルール・セット」ページで、ルール・セットを選択して「表示」ボタン(「表示」メニューではありません)をクリックします。「ルール・セットの表示」ページで、削除するルール・セットの参照の「ルールセットの使用方法」領域を確認します。「OK」をクリックします。

3. 「管理」ページの「Database Vaultコンポーネント」で、ルール・セットの参照を含むコンポーネントを選択します(「レルム」など)。

4. オブジェクトを選択して「編集」をクリックします。

5. 認可ページになるまで、「次へ」をクリックします。

6. ルール・セットとともに認可を選択してから、「編集」をクリックし、参照されているオブジェクトを削除します。

7. 「完了」、「終了」の順にクリックします。

ルール・セットの削除

Enterprise Manager Cloud Controlを使用して、ルール・セットへの参照を見つけてからルール・セットを削除できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. ルール・セットの参照がないことを確認します。

ルール・セットを削除する前に、このルール・セットの参照を削除する必要があります。

「Oracle Database Vaultコンポーネントへのルール・セット参照の削除」を参照してください。

3. 削除するルール・セットを選択して、「削除」をクリックします。

4. 「確認」ウィンドウで、「はい」をクリックします。

ルール・セットが削除されます。オプションで、ルール・セットを削除する前に、ルールとの既存の関連付けを削除できます。

ルール・セットの動作

ルール・セットの動作を理解することは、より効果的なルール・セットを作成する助けとなります。

- 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のDVF PL/SQLファクタ・ファンクション」を参照してください。ファクタの作成方法は、「ファクタの構成」で説明しています。

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

1人のユーザー(たとえば特権ユーザー)を除く全員に適用するルールを作成することも可能です。

- 特定のユーザーを除外するルールを作成するには、SYS_CONTEXTファンクションを使用します。

次に例を示します。

SYS_CONTEXT('USERENV','SESSION_USER') = 'SUPERADMIN_USER' OR additional_rule

現行ユーザーが特権ユーザーの場合、システムでは、additional_ruleは評価されず、ルールはTrueに評価されます。現行ユーザーが特権ユーザーでない場合、ルールの評価はadditional_ruleの評価によって決まります。

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

このチュートリアルでは、UTL_MAIL PL/SQLパッケージとアクセス制御リストを使って、セキュリティ違反に関する電子メール・アラートを作成する方法を示します。

内容は次のとおりです。

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

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

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

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

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

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

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

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

チュートリアルでは、ユーザーがメンテナンス期間外に表を変更しようとしたときに送信される、電子メール・アラートを作成します。

これを行うには、メンテナンスの時間帯を設定するルールを作成し、このルールをルール・セットに追加してから、ユーザーに表の変更を許可するコマンド・ルールを作成する必要があります。次に、ルール・セットをこのコマンド・ルールに関連付けます。これにより、ユーザーがメンテナンスの時間帯以外にALTER TABLE SQL文を使用しようとすると、電子メール・アラートが送信されます。

注意:

このチュートリアルを実行するには、SMTPサーバーがあるデータベースを使用する必要があります。

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

UTL_MAIL PL/SQLパッケージ(手動でインストールする必要があります)は、電子メール通知を管理するためのプロシージャを備えています。

1. SYSDBA管理権限を使用してSYSとしてデータベース・インスタンスにログインします。

sqlplus sys as sysdba
Enter password: password

2. マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続します。

次に例を示します。

CONNECT SYS@my_pdb AS SYSDBA
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

3. UTL_MAILパッケージをインストールします。

@$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サーバーをサポートしていないことに注意してください。

4. SMTP_OUT_SERVERパラメータの現行値を調べ、このチュートリアル完了時に元に戻せるように、この値をメモしておきます。

次に例を示します。

SHOW PARAMETER SMTP_OUT_SERVER

次のような出力が表示されます。

NAME                    TYPE              VALUE
----------------------- ----------------- ----------------------------------
SMTP_OUT_SERVER         string            some_value.example.com

5. 次の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"

6. SYSOPER権限を使用してSYSとして接続し、データベースを再起動します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

7. SMTP_OUT_SERVERパラメータの設定が正しいことを確認します。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb 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プロシージャの作成

ユーザーleo_dvownerは、CREATE PROCEDURE文を使用して、電子メール・セキュリティ・アラートを作成できます。

1. この手順で説明する付与を実行する権限を持つユーザーとして接続しているか確認し、DV_OWNERロールを付与されているユーザーにそのような権限を付与します。また、Oracleシステム権限およびロール管理レルムの所有者として認可されている必要があります。

(DV_ADMINロールを付与されているユーザーを選択することもできますが、このチュートリアルでは、DV_OWNERロールを持つユーザーを選択します。)

次に例を示します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

GRANT CREATE PROCEDURE, DROP ANY PROCEDURE TO leo_dvowner;
GRANT EXECUTE ON UTL_TCP TO leo_dvowner;
GRANT EXECUTE ON UTL_SMTP TO leo_dvowner;
GRANT EXECUTE ON UTL_MAIL TO leo_dvowner;
GRANT EXECUTE ON DBMS_NETWORK_ACL_ADMIN TO leo_dvowner;

PL/SQLパッケージUTL_TCP、UTL_SMTP、UTL_MAILおよびDBMS_NETWORK_ACL_ADMINは、作成する電子メール・セキュリティ・アラートで使用されます。

2. DV_OWNERユーザーとしてSQL*Plusに接続します。

次に例を示します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
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を使えるようにするには、外部ネットワーク・サービスへのファイン・グレイン・アクセスを実現するために、アクセス制御リスト(ACL)を構成する必要があります。

外部ネットワーク・サービスへのファイン・グレイン・サービスについての詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。

1. SQL*Plusで、DV_OWNERユーザーとして次のアクセス制御設定およびその権限定義を構成します。

BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host       => 'SMTP_OUT_SERVER_setting',
lower_port => 25,
ace        =>  xs$ace_type(privilege_list => xs$name_list('smtp'),
principal_name => 'LEO_DVOWNER,
principal_type => xs_acl.ptype_db));
END;
/

この例では、次のようになります。

- lower_port: 電子メール・ツールで送信サーバーに指定されているポート番号を入力します。通常、この設定は25です。lower_portとupper_portの両方の設定に対してこの値を入力します。(現在、UTL_MAILパッケージではSSLをサポートしていません。メール・サーバーがSSLサーバーの場合、そのメール・サーバーが別のポート番号を使用していても、ポート番号に25を入力します。)

- principal_name: LEO_DVOWNERを、DV_OWNERユーザーの名前に置き換えます。

- host: SMTP_OUT_SERVER_settingの場合、「手順1: UTL_MAIL PL/SQLパッケージのインストールと構成」のSMTP_OUT_SERVERパラメータに設定したSMTP_OUT_SERVER設定を入力します。この設定は、電子メール・ツールで送信サーバーに指定されている設定と完全に一致させてください。

2. 変更をデータベースにコミットします。

COMMIT;

3. これまでに作成した設定をテストします。

EXEC EMAIL_ALERT;
COMMIT;

SQL*Plusに「PL/SQL procedure successfully completed」というメッセージが表示されます。まもなく、電子メール・サーバーの速度に応じて、電子メール・アラートを受信します。

ORA-24247「アクセス制御リスト(ACL)によりネットワーク・アクセスが拒否されました」エラーの後にORA-06512「string行 string」エラーが発生した場合は、アクセス制御リスト・ファイル内の設定を確認してください。

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

ルール・セットおよびコマンド・ルールを作成するには、DBMS_MACADM PL/SQLパッケージを使用します。

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          => 'leo_dvowner.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 ''16'' 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 -- Or, CONNECT SCOTT@hrpdb
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コマンドを使用して時間を設定します。たとえば、今日の日付が2012年8月15日だとすると、次のように入力します。

$ su root
Password: password

$ date -s "08/15/2012 14:48: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 -- Or, CONNECT SCOTT@hrpdb
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 15 AUG, 2012 14:24:25

7. システム時間を正しい時刻に再設定します。

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. DV_OWNERユーザーとしてSQL*Plusに接続します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
Enter password: password

2. 表示された順序で、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');

3. email_alert PL/SQLプロシージャを削除します。

DROP PROCEDURE email_alert;

4. ユーザーSCOTTとして接続し、mytest表を削除します。

CONNECT SCOTT -- Or, CONNECT SCOTT@hrpdb
Enter password: password

DROP TABLE mytest;

5. 他のユーザーから権限を取り消す権限を持つユーザーとして接続します。

次に例を示します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

6. DV_OWNERユーザーから、UTL_TCP、UTL_SMTPおよびUTL_MAIL PL/SQLパッケージに対するEXECUTE権限を取り消します。

次に例を示します。

REVOKE EXECUTE ON UTL_TCP FROM leo_dvowner;
REVOKE EXECUTE ON UTL_SMTP FROM leo_dvowner;
REVOKE EXECUTE ON UTL_MAIL FROM leo_dvowner;
REVOKE EXECUTE ON DBMS_NETWORK_ACL_ADMIN FROM leo_dvowner;

7. SMTP_OUT_SERVERパラメータを元の値に設定します。

次に例を示します。

ALTER SYSTEM SET SMTP_OUT_SERVER="some_value.example.com";

8. SYSOPER管理権限を持つSYSとして接続し、データベースを再起動します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

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

このチュートリアルでは、Oracle Database Vaultを使用して2人のユーザーの認可を制御する方法を示します。

内容は次のとおりです。

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

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

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

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

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

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

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

このチュートリアルでは、二人制整合性(TPI)を定義するルール・セットを設定します。

この機能は、デュアル・キー・セキュリティ、デュアル・キー接続、あるいはツーマン・ルール・セキュリティとも呼ばれます。このタイプのセキュリティでは、アクションの認可に、1人ではなく2人のユーザーが必要です。

あるユーザーがタスクを開始するには、別のユーザーがそのユーザーに対するセーフティ・チェックを行います。二人制整合性では、危険を伴う可能性のあるアクションに対して、追加のセキュリティの層が用意されます。このタイプのシナリオは、データベース・パッチの更新などのタスクに使用されることが多く、このチュートリアルでもこのタスクを使用します。ユーザーpatch_userがデータベース・パッチのアップグレードを実行するにはログインが必要ですが、このユーザーがログインするにはマネージャpatch_bossがログインしている必要があります。patch_userがログイン可能かどうかを制御するファンクション、ルール、ルール・セットおよびコマンド・ルールを作成します。

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

このチュートリアルでは、2人のユーザーpatch_bossおよびpatch_userを作成する必要があります。

- patch_bossはスーパーバイザ・ロールとして機能します。patch_bossがログインしていない場合、patch_userユーザーはログインできません。

- patch_userは、パッチの更新の実行が割り当てられているユーザーです。ただし、このチュートリアルでは、ユーザーはpatch_user実際にはパッチの更新を実行しません。ログインを試行するのみです。

ユーザーを作成するには、次のようにします。

1. DV_ACCTMGRロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)にログインする必要があります。次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. 次のユーザーを作成し、CREATE SESSION権限を付与します。

GRANT CREATE SESSION TO patch_boss IDENTIFIED BY password;
GRANT CREATE SESSION TO patch_user IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

3. SYSDBA管理権限を持つユーザーSYSとして接続します。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
Enter password: password

4. 次の権限をDV_OWNERユーザーまたはDV_ADMINユーザーに付与します。

次に例を示します。

GRANT CREATE PROCEDURE TO leo_dvowner;
GRANT SELECT ON V_$SESSION TO leo_dvowner;

V_$SESSION表はV$SESSION動的ビューの基となる表です。

実際のシナリオでは、DV_OWNERユーザーとしてもログインし、DV_PATCH_ADMINロールをpatch_userユーザーに付与します(patch_bossには付与しません)。しかし、このチュートリアルでは、実際にはデータベース・パッチの更新を実行しないため、このロールをpatch_userユーザーに付与する必要はありません。

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

Database Vault設定の動作は、ファンクションによって決定されます。

作成する必要があるファンクションcheck_boss_logged_inは、ユーザーpatch_userがデータベース・インスタンスへのログインを試行したときに、V$SESSIONデータ・ディクショナリ・ビューに問い合せて、ユーザーpatch_bossがログインしているかどうかを確認します。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして接続します。

次に例を示します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
Enter password: password

2. 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;
/

3. 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 leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
Enter password: password

2. patch_userユーザーがデータベースにログインしていることをチェックするCheck if Boss Is Logged Inルールを作成します。定義内のleo_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 leo_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      => 2,
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 -- Or, sqlplus patch_user@hrpdb
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 -- Or, sqlplus patch_boss@hrpdb
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 bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

DROP USER patch_boss;
DROP USER patch_user;

3. SYSDBA管理権限を持つユーザーSYSとして接続して、DV_OWNERまたはDV_ADMINユーザーに付与した権限を取り消します。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
Enter password: password

REVOKE CREATE PROCEDURE FROM leo_dvowner;
REVOKE SELECT ON V_$SESSION FROM leo_dvowner;

4. DV_OWNERまたはDV_ADMINユーザーとして接続し、ルール、ルール・セットおよびコマンド・ルールを示した順に削除します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
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;

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

Oracleでは、ルール・セット設計のガイドラインを提供しています。

- ルールは、複数のルール・セット間で共有できます。これにより、再利用可能なルール式のライブラリを作成できます。個別で式の目的が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 Cloud Controlを含む)、自動ワークロード・リポジトリ(AWR)およびTKPROFなどのツールを実行します。

関連項目:

- データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください

- 個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください

ルール・セットとルールに関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database Vaultには、ルール・セットおよびそれらに含まれるルールの分析に役立つ、レポートとデータ・ディクショナリ・ビューが用意されています。

表6-2では、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

表6-2 ルール・セットに関連するレポート

レポート

説明

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

ルールが定義されていない、または有効でないルール・セットが表示されます。

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

不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。

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

不完全または無効なルール・セットが表示されます。

表6-3に、既存のルールおよびルール・セットに関する情報を提供するデータ・ディクショナリ・ビューを示します。

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

データ・ディクショナリ・ビュー

説明

DVSYS.DBA_DV_RULEビュー

定義済のルールが表示されます。

DVSYS.DBA_DV_RULE_SETビュー

作成済のルール・セットが表示されます。

DVSYS.DBA_DV_RULE_SET_RULEビュー

既存のルール・セットに関連付けられているルールが表示されます。

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

コマンド・ルールを作成するか、デフォルトのコマンド・ルールを使用すると、DDL文およびDML文を保護できます。

内容は次のとおりです。

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

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

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

- コマンド・ルールの作成または編集

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

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

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

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

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

- コマンド・ルールに関連するレポートおよびデータ・ディクショナリ・ビュー

関連項目:

Oracle Database Vaultコマンド・ルールのAPI

コマンド・ルールの概要

コマンド・ルールは、ALTER SESSIONなどのOracle Database SQL文によるOracle Database Vaultの保護に使用します。

内容は次のとおりです。

- コマンド・ルールについて

- マルチテナント環境におけるコマンド・ルール

コマンド・ルールについて

コマンド・ルールは、1つ以上のデータベース・オブジェクトに影響を与えるOracle Database SQL文を保護します。

これらの文には、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のルール・セットがある場合、その文の実行は許可されずコマンド・ルール違反が生じます。ルール・セットの詳細は、「ルール・セットの構成」で説明します。

通常の手順であるユーザー・ファクタの初期化、ユーザー認証プロセス、およびOracle Label Securityの統合が完了した後に、セッションを許可または拒否する、CONNECTイベントのファクタを使用するコマンド・ルールを定義できます。

たとえば、BIZAPPスキーマ内で、CREATE TABLE、DROP TABLEおよびALTER TABLEなどのDDL文が営業時間後に認可されるのは許可するが、営業時間中には許可しないというコマンド・ルールを構成できます。

Oracle Database Vaultに作成するコマンド・ルール上でレポートを実行できます。

関連項目:

- コマンド・ルールに関する詳細を知るために実行できるレポートについては、「コマンド・ルールに関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください

- DBMS_MACADM PL/SQLパッケージの使用によるコマンド・ルールの構成の詳細は、Oracle Database Vaultコマンド・ルールのAPIを参照してください

マルチテナント環境におけるコマンド・ルール

マルチテナント環境では、CREATE PLUGGABLE DATABASE、ALTER PLUGGABLE DATABASEおよびDROP PLUGGABLE DATABASE文のコマンド・ルールを作成できます。

これらのコマンド・ルールをマルチテナント環境全体に適用するには、DVADMまたはDVOWNERロールを持つ共通ユーザーとして、それらのルールをルートに作成する必要があります。USER_ROLE_PRIVSデータ・ディクショナリ・ビューを問い合せることで、ユーザーのロールを確認できます。

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

Oracle Database Vaultには、よく使用されるSQL文に基づいてデフォルト・コマンド・ルールが用意されています。

表7-1に、デフォルトのDatabase Vaultコマンド・ルールを示します。

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

SQL文

オブジェクト名

ルール・セット名

CREATE USER

-

アカウント/プロファイルを保守可能

ALTER USER

-

自分のアカウントを保守可能

DROP USER

-

アカウント/プロファイルを保守可能

CREATE PROFILE

-

アカウント/プロファイルを保守可能

ALTER PROFILE

-

アカウント/プロファイルを保守可能

DROP PROFILE

-

アカウント/プロファイルを保守可能

ALTER SYSTEM

-

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

CHANGE PASSWORD

-

自分のアカウントを保守可能脚注1

脚注1

「自分のアカウントを保守可能」ルールで参照される実際のSQL文は、PASSWORDです。

次に示す一連のコマンド・ルールは、ユーザー管理の職務分離の実現をサポートします。

- ALTER PROFILE

- ALTER USER

- CREATE PROFILE

- CREATE USER

- DROP PROFILE

- DROP USER

ユーザーにこれらのコマンドの使用権限を付与するには、ルール・セットによってチェックされるロールをユーザーに付与します。たとえば、CREATE USERコマンド・ルールは、CREATE USER文を実行しようとするユーザーにDV_ACCTMGRロールが付与されていることを確認します。

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

コマンド・ルールを使用して、多数のSQL文を保護できます。

保護できるSQL文は、次のとおりです。

SQL文A-C

SQL文C-D

SQL文D-U

ALTER CLUSTER

CREATE EDITION

DROP DIMENSION

ALTER DIMENSION

CREATE USER

DROP DIRECTORY

ALTER FUNCTION

CREATE CLUSTER

DROP FUNCTION

ALTER INDEX

CREATE CONTEXT

DROP INDEX

ALTER INDEXTYPE

CREATE DATABASE LINK

DROP INDEXTYPE

ALTER JAVA

CREATE DIMENSION

DROP JAVA

ALTER LIBRARY

CREATE DIRECTORY

DROP LIBRARY

ALTER OPERATOR

CREATE FUNCTION

DROP OPERATOR

ALTER OUTLINE

CREATE INDEX

DROP OUTLINE

ALTER MATERIALIZED VIEW

CREATE INDEXTYPE

DROP MATERIALIZED VIEW

ALTERMATERIALIZEDVIEWLOG

CREATE JAVA

DROPMATERIALIZEDVIEWLOG

ALTER PACKAGE

CREATE LIBRARY

DROP PACKAGE

ALTER PACKAGE BODY

CREATE OPERATOR

DROP PACKAGE BODY

ALTER PLUGGABLE DATABASE

CREATE OUTLINE

DROP PROCEDURE

ALTER PROCEDURE

CREATE PACKAGE

DROP PLUGGABLE DATABASE

ALTER PROFILE

CREATE PACKAGE BODY

DROP PROFILE

ALTER RESOURCE COST

CREATE PLUGGABLE DATABASE

DROP ROLE

ALTER ROLE

CREATE PROCEDURE

DROP ROLLBACK SEGMENT

ALTER ROLLBACK SEGMENT

CREATE PROFILE

DROP SEQUENCE

ALTER SEQUENCE

CREATE ROLE

DROP SYNONYM

ALTER SESSION

CREATE ROLLBACK SEGMENT

DROP TABLE

ALTER SYNONYM

CREATE SCHEMA

DROP TABLESPACE

ALTER SYSTEM

CREATE SEQUENCE

DROP TRIGGER

ALTER TABLE

CREATE MATERIALIZED VIEW

DROP TYPE

ALTER TABLESPACE

CREATEMATERIALIZEDVIEWLOG

DROP TYPE BODY

ALTER TRIGGER

CREATE SYNONYM

DROP USER

ALTER TYPE

CREATE TABLE

DROP VIEW

ALTER TYPE BODY

CREATE TABLESPACE

EXECUTE

ALTER USER

CREATE TRIGGER

GRANT

ALTER VIEW

CREATE TYPE

INSERT

ANALYZE CLUSTER

CREATE TYPE BODY

NOAUDIT

ANALYZE INDEX

CREATE VIEW

RENAME

ANALYZE TABLE

DELETE

REVOKE

ASSOCIATE STATISTICS

DISASSOCIATE STATISTICS

SELECT

AUDIT

DROP CLUSTER

TRUNCATE CLUSTER

CHANGE PASSWORD

DROP CONTEXT

TRUNCATE TABLE

COMMENT

DROP DATABASE LINK

UPDATE

CONNECT

DROP EDITION

関連項目:

マルチテナント・コンテナ・データベース(CDB)におけるCREATE PLUGGABLE DATABASE、ALTER PLUGGABLE DATABASEおよびDROP PLUGGABLE DATABASEの使用の詳細は、「マルチテナント環境におけるコマンド・ルール」を参照してください

コマンド・ルールの作成または編集

Oracle Database Vault Administratorで、コマンド・ルールの作成または編集を行うことができます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「コマンド・ルール」をクリックします。

3. 「コマンド・ルール」ページで次のようにします。

- 新しいコマンド・ルールを作成するには、「作成」をクリックして、「コマンド・ルールの作成」ページを表示します。

- 既存のコマンド・ルールを編集するには、リストからコマンド・ルールを選択して「編集」をクリックします。

4. 「コマンド・ルールの作成」(「コマンド・ルールの編集」)ページで、次の設定を入力します。

- コマンド: コマンド・ルールを作成するSQL文または操作を選択します。この属性は必須です。

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にコマンド・ルールを有効または無効にします。この属性は必須です。

- 適用可能なオブジェクト所有者: リストから、コマンド・ルールが影響を与えるオブジェクトの所有者を選択します。ワイルドカード文字%を使用して、すべての所有者を選択できます。(ただし、ワイルドカード文字をテキストと一緒に使用することはできません。たとえば、EM%を使用して、名前がEMで始まるすべての所有者を選択することはできません。)この属性は、特定のスキーマ内のオブジェクトに提供するすべてのSQL文で必須です。サポートされているSQL文のリストは、「コマンド・ルールで保護できるSQL文」を参照してください。
SELECT、INSERT、UPDATE、DELETEおよびEXECUTE文は、すべての選択(%)、またはSYSおよびDVSYSスキーマには使用できないことに注意してください。

- 適用可能なオブジェクト名: コマンド・ルールが影響を与えるデータベース・オブジェクトの名前を入力するか、%を指定してすべてのデータベース・オブジェクトを指定します。「オブジェクト所有者」リストからオブジェクト所有者を選択した場合、この属性は必須です。
コマンド・ルールが影響するオブジェクト上でOracle Database Vaultレポートを実行できます。詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください。

- ルール・セットの評価: リストから、コマンド・ルールに関連付けるルール・セットを選択します。この属性は必須です。
ルール・セットの評価がTrueの場合、そのSQL文は成功します。評価がfalseの場合、その文は失敗し、Oracle Database Vaultによってコマンド・ルール違反が生成されます。(「Oracle Database Vaultレポート」 で説明されている「コマンド・ルール構成の問題」レポートを使用することで、ルール違反を追跡できる)。ルール・セットに関連付けられている監査およびカスタム・イベント処理は、コマンド・ルール処理の一部として発生します。

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

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

関連項目:

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

コマンド・ルールの削除

コマンド・ルールを削除する前に、それに関連するOracle Database Vaultビューに問い合せることで、そのコマンド・ルールへの様々な参照を特定できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. Oracle Database Vaultの「管理」ページで、「コマンド・ルール」を選択します。

3. 「コマンド・ルール」ページで、削除するコマンド・ルールを選択します。

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

5. 「確認」ウィンドウで、「はい」をクリックします。

関連項目:

コマンド・ルール関連のData Vaultデータ・ディクショナリ・ビューの詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください

コマンド・ルールの動作

コマンド・ルールは、一連の手順に従い、関連付けられているコンポーネントをチェックします。

「レルムの動作」では、データベース・アカウントによりレルム内のオブジェクトに影響する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によりそのコマンドの実行が阻止されます。それ以外の場合、コマンドは認可されてさらに処理されます。監査およびイベント・ハンドラに関するルール・セットの構成により、発生する監査またはカスタム処理が決定されます。
コマンド・ルールはオブジェクト権限より優先されます。つまり、オブジェクトの所有者であっても、オブジェクトがコマンド・ルールで保護される場合、そのオブジェクトにアクセスできません。コマンド・ルールまたはコマンドのルール・セットのいずれかを無効にすることができます。コマンド・ルールを無効にする場合、コマンド・ルールは、その処理の確認を行いません。ルール・セットを無効にする場合、ルール・セットの評価は常にTRUEになります。ただし、特定のコマンドに対してコマンド・ルールを無効にする場合、ルール・セットが他のコマンド・ルールやレルム認可に関連付けられている可能性があるため、コマンド・ルールを無効にする必要があります。

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

このチュートリアルでは、ユーザーにSCOTTスキーマでの表の作成を可能にするかどうかを制御する、簡単なローカル・コマンド・ルールを作成します。

内容は次のとおりです。

- 手順1: 表の作成

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

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

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

手順1: 表の作成

最初に、ユーザーSCOTTとして表を作成する必要があります。

1. ユーザーSCOTTとしてデータベース・インスタンスにログインします。

sqlplus scott
Enter password: password

マルチテナント環境で、適切なPDBにログインする必要があります。次に例を示します。

sqlplus scott@hrpdb
Enter password: password

利用可能なプラガブル・データベース(PDB)を検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

SCOTTアカウントがロックされて無効になっている場合、Database Vaultアカウント・マネージャとしてログインし、SCOTTのロックを解除し、新しいパスワードを作成します。次に例を示します。

sqlplus bea_dvacctmgr --Or, sqlplus bea_dvacctmgr@hrpdb
Enter password: password

ALTER USER SCOTT ACCOUNT UNLOCK IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

CONNECT SCOTT --Or, sqlplus SCOTT@hrpdb
Enter password: password

2. ユーザーSCOTTとして、表を作成します。

CREATE TABLE t1 (num NUMBER);

3. 表を削除します。

DROP TABLE t1;

この段階で、ユーザーSCOTTは、表の作成および削除を行うことができます。SQL*Plusを終了せずに、SCOTTとして接続したままにします。後でSCOTTが別の表を作成しようとするときに使用します。

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

SCOTTスキーマで表の作成後、コマンド・ルールを作成できます。

1. DV_OWNERまたはDV_ADMINロールおよびSELECT ANY DICTIONARYシステム権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. Oracle Database Vault Administratorの「管理」ページで、「コマンド・ルール」をクリックします。

「コマンド・ルール」ページが表示されます。

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

「コマンド・ルールの作成」ページが表示されます。

4. 次の設定を入力します。

- コマンド: 「CREATE TABLE」を選択します。

- ステータス: 「有効」に設定して、コマンド・ルールをアクティブにします。

- 適用可能なオブジェクト所有者: 「SCOTT」を選択します。

- 適用可能なオブジェクト名: %に設定して、SCOTTスキーマ内のすべてのオブジェクトに適用します。

- ルール・セットの評価: 誰もSCOTTスキーマに表を作成できないように、「無効」を選択します。

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

Database Vault Administratorを終了しないでください。

コマンド・ルールは即時有効になります。ユーザーSCOTTは、CREATE TABLEコマンド・ルールを作成する前の、先ほどまでいたユーザー・セッションにまだいるとしても、ただちに表を作成できなくなります。

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

これで、いつでもCREATE TABLEローカル・コマンド・ルールをテストできます。

1. SQL*Plusで、ユーザーSCOTTとしてログインしていることを確認します。

CONNECT SCOTT --Or, CONNECT SCOTT@hrpdb
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で、次の作業を実行します。

a. 「コマンド・ルール」ページで、「CREATE TABLE」コマンド・ルールを選択して、「編集」をクリックします。

b. 「コマンド・ルールの編集」ページで、「ルール・セット」リストから「有効」を選択します。

c. 「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コマンド・ルールを次のように削除します。

a. 「コマンド・ルール」ページに戻ります。

b. 「CREATE TABLE」ローカル・コマンド・ルールを選択して、「削除」をクリックします。

c. 「確認」ウィンドウで、「はい」をクリックします。

2. ユーザーSCOTTとしてデータベース・インスタンスにログインして、t1表を削除します。

DROP TABLE t1;

3. SCOTTアカウントが使用可能である必要がなくなった場合、Database Vaultアカウント・マネージャとして接続し、次のALTER USER文を入力します。

CONNECT bea_dvacctmgr --Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

ALTER USER SCOTT ACCOUNT LOCK PASSWORD EXPIRE;

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

Oracleでは、コマンド・ルール設計のガイドラインを提供しています。

- 維持が簡単であるため、ファイングレイン・コマンド・ルールを作成します。
たとえば、特定のスキーマ・オブジェクトで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の無効化および再有効化の手順は、「Oracle Database Vaultの無効化および有効化」を参照してください。

- 管理タスクに対して有効なコマンド・ルールを一時的に緩和することが必要な場合があります。コマンド・ルールを無効にするのではなく、セキュリティ管理者(DV_ADMINまたはDV_OWNERロールが付与されているアカウント)をログインさせて、ルール・セットを「有効」にし、有効という名前のデフォルト・ルール・セットの「成功時または失敗時に監査」をオンにします。タスクが完了したら、コマンド・ルールを元のルール・セットに戻します。(統合監査環境では、この設定が機能しないことに注意してください。かわりに、統合監査ポリシーを作成する必要があります。Database Vaultの統合監査ポリシーの作成方法については、『Oracle Databaseセキュリティ・ガイド』で説明します)。

- コマンド・ルールの設計時には、処理が不用意に無効にされる可能性があるため、バックアップなどの自動プロセスを考慮するようにしてください。使用中のプログラム、使用中のアカウントまたはクライアント・プログラムが稼働中のコンピュータやネットワークなど、一連のOracle Database VaultファクタがTrueであることが明白な場合には、コマンドを許可するルールを作成することでこれらのタスクを把握できます。

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

コマンド・ルールのパフォーマンスは、そのコマンド・ルールに関連付けられているルール・セット内のルールの複雑さに依存します。

たとえば、実行に5秒かかるPL/SQLファンクションを起動するルール・セットがあるとします。この場合、このルール・セットを使用するコマンド・ルールでは、実行するコマンド文へのアクセス権の付与に5秒かかります。

システム・パフォーマンスを確認するには、Oracle Enterprise Manager(Oracle Databaseと一緒にデフォルトでインストールされるOracle Enterprise Manager Cloud Controlを含む)、自動ワークロード・リポジトリ(AWR)およびTKPROFなどのツールを実行します。

関連項目:

- データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください

- 個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください

コマンド・ルールに関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database Vaultには、コマンド・ルールの分析に役立つレポートとデータ・ディクショナリ・ビューが用意されています。

表7-2に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

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

レポート

説明

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

コマンド・ルールを処理する操作により生成された監査レコードが表示されます。

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

コマンド・ルールに存在するその他の構成問題に加え、ルール違反が追跡されます。

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

コマンド・ルールが影響するオブジェクト権限が表示されます。

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

コマンド・ルールが影響するオブジェクトが表示されます。

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

ルールが定義されていないか、有効ではなく、それらを使用するコマンド・ルールに影響を与える可能性があるルール・セットが表示されます。

DVSYS.DBA_DV_COMMAND_RULEデータ・ディクショナリ・ビューを使用すると、コマンド・ルールで保護されているSQL文を検出できます。詳細は、「DVSYS.DBA_DV_COMMAND_RULEビュー」を参照してください。

8 ファクタの構成

ファクタを使用すると、クライアントIPアドレスまたはドメインなどの属性に基づいて、Database Vaultの制限を実行するようにできます。

内容は次のとおりです。

- ファクタの概要

- デフォルトのファクタ

- ファクタの作成

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

- ファクタの削除

- ファクタの動作

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

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

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

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

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

関連項目:

Oracle Database VaultファクタのAPI

ファクタの概要

ファクタは、データベースのIPアドレスなど、Oracle Database Vaultが認識できる名前付きの変数または属性です。

ファクタは、データベースに接続するためのデータベース・アカウントの認可や、データの可視性および管理性を制限するフィルタ・ロジックの作成などのアクティビティに使用できます。

Oracle Database Vaultには、サイトのドメイン、IPアドレス、データベースなどのコンポーネントに対する制御を設定できる様々なファクタが用意されています。独自のPL/SQL取得メソッドを使用してカスタム・ファクタを作成することもできます。

次の点に注意してください。

- ルール・セットのルールとともにファクタを使用できます。DVFファクタ・ファンクションは、ルール式で使用できるファクタ固有のファンクションです。

- ファクタには値(アイデンティティ)があり、それぞれのファクタ・タイプによってさらに分類されます。ファクタ・タイプの詳細は、「ファクタ作成のための「一般」ページの入力」の「ファクタ・タイプ」を参照してください。

- また、Oracle Label Securityラベルを使用してファクタを統合できます。

- Oracle Database Vaultに作成するファクタ上でレポートを実行できます。詳細情報を参照してください。

この章では、Oracle Database Vault Administratorを使用してファクタを構成する方法を説明します。また、Oracle Database VaultのファクタAPIを使用して、ファクタを構成することもできます。

関連項目:

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

- Oracle Database VaultファクタのAPI

デフォルトのファクタ

Oracle Database Vaultには、デフォルトのファクタが用意されています。

これらのファクタごとに、ファクタの値を取得するファンクションが関連付けられています。これらのファンクションのリストは、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」を参照してください。

独自のPL/SQL取得メソッドを使用してカスタム・ファクタを作成できます。使用できる便利なPL/SQLファンクション(デフォルト・ファクタの多くに使用される)は、SYS_CONTEXT SQLファンクションで、ユーザー・セッションに関するデータを取得します。たとえば、SYS_CONTEXTのCLIENT_PROGRAM_NAME属性を使用して、データベース・セッションに使用されるプログラムの名前を検索できます。カスタム・ファクタを作成すると、デフォルト・ファクタの問合せに使用されるファンクションと同様に値を問い合せることができます。

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ロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ファクタ」をクリックします。

3. 「ファクタ」ページで、「作成」をクリックして「ファクタの作成」ページを表示します。

4. 「一般」ページ以降で次の情報を入力し、「次へ」をクリックしてそれぞれの後続ページに移動します。ファクタ定義が完了したら「完了」および「終了」をクリックします。

- ファクタ作成のための「一般」ページの入力

- ファクタ作成の「構成」ページ

- ファクタ作成の「オプション」ページ

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

ファクタ作成のための「一般」ページの入力

「一般」ページでは、名前などの、ファクタの一般的な識別情報を入力する必要があります。

- 「一般」ページで、次の情報を入力します。

- 名前: 28文字以内(大/小文字混在、空白なし)で名前を入力します。Oracle Database Vaultにより、選択されたファクタの名前に基づいてDVFスキーマに作成されるファクタ・ファンクションの有効なOracle識別子が作成されます。たとえば、GetNetworkIPという名前のファクタを作成した場合、Oracle Database VaultによりDVF.F$GETNETWORKIPファンクションが作成されます。この属性は必須です。
名前は名詞で始まり、導出値の簡単な説明で終わることをお薦めします。

DVFファクタ・ファンクションについては、「Oracle Database VaultのDVF 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 Label Securityラベル付け情報の設定

- ファクタの取得メソッドの設定

- 取得メソッドの動作

- ファクタの検証メソッドの設定

ファクタの識別情報の設定

「ファクタの識別」で、ファクタのアイデンティティの解決方法を選択する必要があります。

- 「構成」ページの「ファクタの識別」で、次の情報を入力します。

- メソッド別: 「取得メソッド」フィールドに指定されたPL/SQL式を実行して、ファクタ・アイデンティティを設定します。
たとえば、式でシステム日付を取得するとします。

to_char(sysdate,'yyyy-mm-dd')

2014年12月15日の場合、「メソッド」オプションで次の値が返されます。

2014-12-15

- 定数: 「取得メソッド」フィールドで検出された定数値を取得してファクタ・アイデンティティを解決します。

- ファクタ: 子ファクタのアイデンティティを親ファクタにマップすることでファクタ・アイデンティティを特定します。親ファクタは、子ファクタと呼ばれる第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 leo_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 DVSYS.GET_FACTOR('DATABASE_IP') FROM DUAL;

次のような出力結果が表示されます。

GET_FACTOR('DATABASE_IP')
-------------------------------------------------------------
192.0.2.1

関連項目:

ファクタ・アイデンティティの詳細は、「ファクタへのアイデンティティの追加」を参照してください

ファクタの評価情報の設定

「評価」で、ファクタの評価方法とアイデンティティの割当て方法を選択する必要があります。

セッション・ファクタのパフォーマンスへの影響の詳細は、「ファクタのパフォーマンスへの影響」を参照してください。この属性は必須です。

- 「構成」ページの「評価」で、次の情報を入力します。

- セッション: データベース・セッションの作成時にファクタを評価します。

- アクセス: データベース・セッションが初めて作成された際や、ファクタがアクセスされる(アプリケーションによる参照など)たびにファクタが評価されます。

- 起動時: データベース・セッションの起動時にファクタを評価します。

ファクタのOracle Label Securityラベル付け情報の設定

「ファクタ・ラベリング」で、ファクタ・アイデンティティによる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式または定数を入力する必要があります。

- 「構成」ページの「取得メソッド」で、PL/SQLの取得メソッドを入力します。大/小文字混在で最大255文字まで使用できます。

次の取得メソッドでは、ユーザー・セッションのUSERENV名前空間からデータベース名(DB_NAME)を取得することで、DB_NAMEファクタの値が設定されます。

UPPER(SYS_CONTEXT('USERENV','DB_NAME'))

取得メソッドの動作

「取得メソッド」により、ファクタの識別がメソッドまたは定数によって行われるファクタが識別されます。

ファクタの識別がファクタによって行われる場合、Oracle Database Vaultはアイデンティティ・マップによってファクタを識別します。独自のPL/SQL取得メソッドを作成するか、Oracle Database Vaultに用意されているファンクションを使用できます。取得メソッドの作成に使用可能な、ファクタに固有の一般的なユーティリティ・ファンクションについては、次の項を参照してください。

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

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

- Oracle Database VaultユーティリティのAPI

取得メソッドの例として、Oracle Database Vaultが提供するデフォルトのファクタも参照してください。これらのファクタの説明は、「デフォルトのファクタ」を参照してください。

「ファクタの識別」で次の設定を選択した場合、「取得メソッド」フィールドは必須です。

- メソッド: 「取得メソッド」フィールドにメソッドを入力します。

- 定数: 「取得メソッド」フィールドに定数を入力します。

ファクタ・アイデンティティとして返される値は、VARCHAR2文字列またはこの型に変換可能である必要があります。

式には、パッケージ・ファンクションまたはスタンドアロン・ファンクションを含めることができます。式がschema.function_nameなどの完全修飾ファンクションであることを確認してください。完全なSQL文は含めないでください。アプリケーション・パッケージまたはファンクションを使用している場合は、オブジェクトのGRANT EXECUTE権限のあるDVSYSを指定する必要があります。

次の書式を使用してファンクション・シグネチャを記述します。

FUNCTION GET_FACTOR RETURN VARCHAR2

ファクタの検証メソッドの設定

検証メソッドは、PL/SQL式を使って、ファクタのアイデンティティを検証するためのブール値を返します。

「検証メソッド」で、ブール値(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
この書式では、ファクタ値が検証ファンクションに直接渡されます。これは、アクセスごとに評価するファクタに適しています。また、セッションごとに評価するファクタにも有効です。

関連項目:

検証メソッドの作成に使用可能な、ファクタに固有の一般的なユーティリティ・ファンクションについては、次の項を参照してください。

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

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

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

- Oracle Database VaultユーティリティのAPI

ファクタ作成の「オプション」ページ

「オプション」ページは、ファクタへのルール・セットの割り当て、エラー・オプションの設定、および非統合監査環境における監査オプションの設定を行います。

内容は次のとおりです。

- ファクタへのルール・セットの割当て

- ファクタのエラー・オプションの設定

- ファクタの監査オプションの設定

- ファクタの監査の動作

ファクタへのルール・セットの割当て

ファクタ・アイデンティティの設定をルール・セットによって制御する場合は、「割当てルール・セット」でルール・セットを選択します。

たとえば、ルール・セットを使用して、既知のアプリケーション・サーバーまたはプログラムからデータベース・セッションが発生する時期を決定できます。ルール・セットの作成方法は、「ルール・セットの構成」で説明しています。

- 「オプション」ページの「ルール・セットの割当て」で、リストからルール・セットを選択します。

この属性は、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ファクタの設定を許可または禁止できます。詳細は、「ファクタの設定」を参照してください。

ファクタのエラー・オプションの設定

「エラー・オプション」で、ファクタ・アイデンティティを解決できない場合に行わなければならないる処理を設定する必要があります。

- 「オプション」ページの「エラー・オプション」で、次の値から選択します。

- エラー・メッセージの表示: データベース・セッションに対するエラー・メッセージを表示します。

- エラー・メッセージを表示しない: エラー・メッセージは表示されません。
「エラー・メッセージを表示しない」を選択して監査を有効にする利点は、潜在的な侵入者のアクティビティを追跡できるということです。監査レポートにより侵入者のアクティビティを把握できますが、エラー・メッセージが表示されないため、侵入者は監査が行われていることに気付きません。

新規ファクタを作成すると、アイデンティティを構成できます。これを実行するには、ファクタを編集してアイデンティティを追加します。

ファクタの監査オプションの設定

統合監査環境を使用していない場合は、「監査オプション」で監査証跡を生成します。

- 「オプション」ページの「監査オプション」で、次の値から選択します。

- 行わない: 監査は実行されません。

- 常時: ファクタの評価時には、常に監査レコードが作成されます。次に説明する条件から選択できます。

- 場合による: 1つ以上の条件に基づいて監査レコードが作成されます。「場合による」を選択すると、デフォルトで「取得エラー」および「取得がNULL」オプションが選択されます。
次に示した条件から選択できます。

「常時」および「場合による」オプションに選択できる条件は次のとおりです。

- 取得エラー: エラー(No data found、Too many rowsなど)のため、ファクタのアイデンティティを解決および割当てできない場合に、監査レコードを作成します。

- 取得がNULL: ファクタのアイデンティティがNULLに解決された場合に、監査レコードが作成されます。

- 検証エラー: 検証メソッド(存在する場合)でエラーが返された場合に、監査レコードが作成されます。

- 検証がFalse: 検証メソッド(存在する場合)でFALSEが返された場合に、監査レコードが作成されます。

- 信頼レベルがNULL: ファクタの解決されたアイデンティティに割り当てられている信頼レベルがNULLの場合に、監査レコードが作成されます。
信頼レベルの詳細は、「ファクタ・アイデンティティの作成および構成」を参照してください。

- 信頼レベルがゼロ未満: ファクタの解決されたアイデンティティに割り当てられている信頼レベルがゼロ未満の場合に、監査レコードが作成されます。

ファクタの監査の動作

統合監査が有効になっているかどうかは、監査がファクタに対してどのように処理されるかに影響します。

非統合監査環境では、Oracle Database Vaultは、監査証跡をDVSYS.AUDIT_TRAIL$表に書き込みます(「Oracle Database Vaultの監査」を参照)。

統合監査が有効な場合、この設定では監査レコードは取得されません。かわりに、『Oracle Databaseセキュリティ・ガイド』の説明に従い、この情報を取得する監査ポリシーを作成できます。

ファクタの監査レポートを使用して、生成された監査レコードを表示できます。(詳細は、「ファクタに関連するレポートおよびデータ・ディクショナリ・ビュー」を参照)。また、一度に複数の監査オプションを選択できます。各オプションはビット・マスクに変換され、集計の動作を決定するために追加されます。ファクタにエラーがないかぎり、監査のパフォーマンスへの影響はほとんどありません。

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

新しいファクタを作成したら、ファクタにアイデンティティを追加できます。

内容は次のとおりです。

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

- 信頼レベルについて

- ラベル・アイデンティティについて

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

- ファクタ・アイデンティティの削除

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

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

アイデンティティはファクタの実際の値で、例えばIP_Addressファクタのアイデンティティは192.0.2.4です。

指定されたデータベース・セッションのファクタ・アイデンティティは、「ファクタの作成」で説明されている「ファクタの識別」および「取得メソッド」フィールドを使用して実行時に割り当てられます。次のような場合には、さらにアイデンティティを構成できます。

- ファクタの既知のアイデンティティを定義する場合

- ファクタ・アイデンティティに信頼レベルを追加する場合

- ファクタ・アイデンティティにOracle Label Securityラベルを追加する場合

- アイデンティティ・マップを使用して子ファクタによりファクタ・アイデンティティを解決する場合

関連項目:
ファクタ・アイデンティティの作成および使用方法の例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください

信頼レベルについて

信頼レベルを使用することにより、信頼できるかどうかの尺度を示す数値を割り当てることができます。

信頼値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

または、次のようにDBA_DV_IDENTITYデータ・ディクショナリ・ビューでSELECT文を使用して、信頼レベルが5以上のNetworkファクタを検出できます。

SELECT VALUE, TRUST_LEVEL FROM 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のファクタ関連のファンクションについては、「Oracle Database VaultレルムのAPI」を参照してください

ラベル・アイデンティティについて

ファクタ・アイデンティティにOracle Label Security(OLS)ラベルを割り当てることができます。

簡単に説明すると、ラベルはデータベース表の行に権限を割り当てるために行の識別子の役割を果します。ファクタの「ファクタ・ラベリング」属性により、ファクタが「自己」または「ファクタ」のいずれにラベル付けされるかが決まります。「ファクタ・ラベリング」属性に「自己」を設定すると、OLSラベルをファクタ・アイデンティティに関連付けられます。「ファクタ・ラベリング」属性に「ファクタ」を設定すると、Oracle Database Vaultにより子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルが導出されます。ラベルのある子ファクタ・アイデンティティが複数ある場合は、適用可能なファクタのOracle Label Securityポリシーに関連付けられているOLSアルゴリズムを使用して、Oracle Database Vaultによりラベルがマージされます。

関連項目:
ラベルの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

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

Oracle Database Vault Administratorで、ファクタ・アイデンティティを作成または構成できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ファクタ」をクリックします。

3. アイデンティティの作成に使用するファクタをリストから選択して、「編集」をクリックします。

「一般」ページが表示されます。

4. 「アイデンティティ」ページになるまで、「次へ」をクリックします。

5. 「新規アイデンティティの追加」を選択します。

「新規のアイデンティティとマッピングの追加」ウィンドウが表示されます。

6. 「アイデンティティ」サブページで、次の値を入力します。

- 値: 大/小文字混在で1024文字以内でアイデンティティの値を入力します。この属性は必須です。

- 信頼レベル: 次のいずれかの信頼レベルを選択します。

- 信頼度高: 信頼レベル値10が割り当てられます。

- 信頼: 信頼レベル値5が割り当てられます。

- 信頼度低: 信頼レベル値1が割り当てられます。

- 信頼されない: 信頼レベル値-1が割り当てられます。

- 信頼レベルが未定義: 信頼レベル値NULLが割り当てられます(デフォルト)。

信頼レベルの詳細は、「信頼レベルについて」を参照してください。

- ラベル・アイデンティティ: オプションで、使用可能なOracle Label Securityポリシーのリストから選択し、「移動」ボタンをクリックして、ポリシーを「選択したOLSポリシー」リストに移動します。
リストには、サイトのOracle Label Securityインストールのデータ・ラベルが表示されます。詳細は、『Oracle Label Security管理者ガイド』を参照してください。

ラベル・アイデンティティの詳細は、「ラベル・アイデンティティについて」を参照してください。

7. 「OK」をクリックすると、「ファクタの作成 : アイデンティティ」ページに戻ります。

8. 「完了」、「終了」の順にクリックします。

ファクタ・アイデンティティの削除

ファクタ・アイデンティティを削除する場合、ファクタに関連するOracle Database Vaultビューに問い合せることで、そのファクタ・アイデンティティへの参照を特定できます。

詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ファクタ」をクリックします。

3. アイデンティティを削除するファクタを選択してから、「編集」をクリックします。

4. 「ファクタの編集」ページで、「アイデンティティ」ページになるまで「次へ」をクリックします。

5. 移動するファクタ・アイデンティティを選択します。

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

7. 「完了」、「終了」の順にクリックします。

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

アイデンティティ・マッピングを使用すると、ファクタのグループを使ってアイデンティティ値を管理することができます。

内容は次のとおりです。

- アイデンティティ・マッピングについて

- ファクタへのアイデンティティのマッピング

アイデンティティ・マッピングについて

ファクタ・アイデンティティを作成する間に、そのアイデンティティをマップできます。

アイデンティティ・マッピングは、他(子)のファクタを使用してファクタを識別するプロセスです。これはファクタの組合せをファクタの論理アイデンティティに変換する方法です。また、連続するアイデンティティ値(温度など)や連続しない大きなアイデンティティ値(IPアドレスの範囲など)を論理セットに変換する方法でもあります。アイデンティティのマッピングにおける構成の問題を確認するには、「アイデンティティ構成の問題」レポートを実行します。

親ファクタの別のアイデンティティを構成ファクタの別のアイデンティティにマップできます。たとえば、INTRANETアイデンティティは192.0.2.1から192.0.2.24の範囲のIPアドレスにマップします。REMOTEアイデンティティは、192.0.2.1から192.0.2.24の範囲のアドレスを除くIPアドレスにマップします。

アイデンティティ・マップに基づいて、セキュリティ・ポリシーを作成できます。たとえば、企業ネットワーク(INTRANET)内から接続している従業員とは対照的に、VPN(REMOTE)経由で接続している従業員には少ない権限を定義できます。

関連項目:
アイデンティティ・マップの使用方法の例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください

ファクタへのアイデンティティのマッピング

2つのファクタに親子関係を作成すると、ファクタにアイデンティティをマップできます。

1. 親ファクタを作成し、「ファクタ」に属性「ファクタの識別」を設定します。
ファクタの作成方法は、「ファクタの作成」で説明しています。

2. 「アイデンティティ」ページで、親ファクタに、新しいファクタ・アイデンティティを作成します。
アイデンティティの作成方法は、「ファクタ・アイデンティティの作成および構成」で説明しています。

3. 親ファクタのファクタとアイデンティティの組合せを、子のファクタとアイデンティティの組合せにマップします。次の手順に従います。

a. 「アイデンティティ」ページで、既存のアイデンティティを選択して「編集」をクリックするか、「新規アイデンティティの追加」をクリックして新しいアイデンティティを作成します。

b. 「新規のアイデンティティとマッピングの追加」ウィンドウで、少なくとも「アイデンティティ」サブページの「値」フィールドが入力されていることを確認します。

c. 「アイデンティティのマップ」サブページをクリックします。

d. 「マッピングの追加」をクリックします。

e. 次の情報を入力します。
子ファクタ名: リストから子ファクタ名を選択します。

演算子: リストから演算子を選択します。

最小値: 最小値を入力します。

最大値: 最大値を入力します。

たとえば、ファクタ・ネットワークへの構成がClient_IP、「演算子」が「BETWEEN」、「最小値」が192.0.2.1、「最大値」が192.0.2.24に設定されているシナリオを想定します。この場合、クライアントIPアドレスが192.0.2.1から192.0.2.24の指定されたアドレスの範囲内である場合は、親ファクタが事前に定義されたアイデンティティ(INTRANETなど)と評価されます。

f. 「OK」をクリックして、「新規のアイデンティティ・マッピングの追加」ウィンドウを終了します。

g. 「OK」をクリックして、「新規のアイデンティティとマッピングの追加」ウィンドウを終了します。

4. 「完了」、「終了」の順にクリックします。

このプロセスを繰り返して、親ファクタ・アイデンティティの構成ファクタをさらに追加します。たとえば、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ビューを問い合せることで、ファクタとそのアイデンティティへの様々な参照を確認できます。詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

1. ルール・セット、ファクタ・アイデンティティおよびOracle Label Securityポリシーの関連付けなど、ファクタへの参照を削除します。

これを行うには、ファクタを編集します。「オプション」ページからルール・セットを、「アイデンティティ」ページからOracle Label Securityポリシーの関連付けおよびアイデンティティを見つけて削除できます。

2. Oracle Database Vaultの「管理」ページで、「ファクタ」を選択します。

3. 「ファクタ」ページで削除するファクタを選択します。

4. 「削除」クリックします。

5. 「確認」ウィンドウで、「はい」をクリックします。

ファクタの動作

セッションが確立されると、Oracle Database Vaultではファクタが処理されます。

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

- ファクタの取得

- ファクタの設定

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

セッションが開始した時刻に基づいて、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ビュー」で説明する DVSYS.DBA_DV_FACTORデータ・ディクショナリ・ビューに問い合せます。

例8-1に、DVSYS.GET_FACTORファンクションの使用例を示します。

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

SELECT DVSYS.GET_FACTOR('client_ip') FROM DUAL;

DVFファクタ・ファンクションから取得されたファクタ値、またはDVSYS.GET_FACTORを次に示す方法で使用できます。

- Oracle Database Vaultルール式

- Oracle Database Vault環境のすべてのデータベース・セッションで使用可能なカスタム・アプリケーション・コード

DVFファクタ・ファンクションについては、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」で詳しく説明しています。

「セッション確立時のファクタの処理」で説明されているように、ファクタ評価をセッションに設定した場合は、Oracle Database Vaultにより、確立したセッション・コンテキストから値が取得されます。

「セッション確立時のファクタの処理」で説明されているように、ファクタ評価を「アクセス」に設定した場合は、ファクタが取得されるたびに、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ファンクションを使用してファクタの設定を試行すると、エラー・メッセージが表示されます。

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

このチュートリアルでは、ファクタを使用して非定型ツール(SQL*Plusなど)がデータベースにアクセスできないようにする方法を示します。

内容は次のとおりです。

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

- 手順1: HRおよびOEユーザー・アカウントの有効化

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

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

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

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

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

関連項目:

- ファクタ・アイデンティティのマップの例は、「チュートリアル: セッション・データに基づくユーザー・アクティビティの制限」を参照してください

- Oracle Database VaultファクタとOracle Label Securityラベルの統合の例は、「チュートリアル: Oracle Database VaultとOracle Label Securityの統合」を参照してください

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

多くのデータベース・アプリケーションには、ユーザーのアクションを明示的に制御する機能が含まれています。

ただし、非定型問合せツール(SQL*Plusなど)には、これらの制御機能がないことがあります。このため、ユーザーは非定型ツールを使用して、通常はデータベース・アプリケーションで実行できないアクションを、データベースで実行できる場合があります。Oracle Database Vaultのファクタ、ルール・セットおよびコマンド・ルールを組み合せて使用すると、非定型問合せツールによるデータベースへの不正アクセスを阻止できます。

次のチュートリアルでは、ユーザーHRおよびOEがSQL*Plusを使用するのを阻止します。これを実行するには、システム上でアプリケーションを検索するファクタと、これら4ユーザーにSQL*Plusを制限するためのルールおよびルール・セットを作成する必要があります。次に、ルール・セットに関連付けられるCONNECT SQL文のコマンド・ルールを作成します。このファクタ、Client_Prog_NameはSYS_CONTEXT SQLファンクションのUSERENV名前空間のCLIENT_PROGRAM_NAME属性を使用して、Oracle Databaseの現在のインスタンスへのアクセスに使用されるアプリケーションの名前を検索します。SYS_CONTEXT SQLファンクションには、ユーザー・セッションの状態を検出するための便利なメソッドが多数用意されています。SYS_CONTEXTは、カスタム・ファクタを作成するための貴重なツールです。

関連項目:

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

手順1: HRおよびOEユーザー・アカウントの有効化

このチュートリアルでOracle Database Vaultコンポーネントをテストする時は、後でHRアカウントとOEアカウントを使う必要があります。

1. DV_ACCTMGRロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. HRアカウントのステータスを確認します。

SELECT USERNAME, ACCOUNT_STATUS FROM DBA_USERS WHERE USERNAME = 'HR';

3. HRが無効になり、ロックされている場合、次の文を入力してアクティブにします。

ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

4. OEアカウントに対して、これらの手順を繰り返します。

手順2: ファクタの作成

HRおよびOEアカウントがアクティブであることを確認後、ファクタを作成します。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして接続します。

次に例を示します。

CONNECT leo_dvowner --Or, CONNECT leo_dvowner@hrpdb
Enter password: password

2. ファクタを作成します。

BEGIN
DBMS_MACADM.CREATE_FACTOR(
factor_name       => 'Client_Prog_Name',
factor_type_name  => 'Application',
description       => 'Stores client program name that connects to database',
rule_set_name     => NULL,
validate_expr     => NULL,
get_expr          => 'UPPER(SYS_CONTEXT(''USERENV'',''CLIENT_PROGRAM_NAME''))',
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_ON_GET_ERROR,
fail_options      => DBMS_MACUTL.G_FAIL_SILENTLY);
END;
/

次のように指定します。

- factor_type_nameは、これがアプリケーション・ベース・ファクタであることを指定します。

- get_exprは、ファクタの式を定義します。この式は、USERENV名前空間とCLIENT_PROGRAM_NAME属性を使用してSYS_CONTEXTファンクションをコールして、Oracle Databaseにログインしているプログラムを検索します。

- identify_byは、メソッドによってファクタを識別します。

- labeled_byは、Oracle Label Securityポリシーに関連付けられているラベルから直接ファクタのアイデンティティをラベル付けします(デフォルト)。

- eval_optionsは、データベース・セッションの作成時にファクタを評価します。

- audit_optionsは、get_exprがエラーを返した場合に監査します。

- fail_silentlyは、ファクタのエラー・メッセージを表示しません。

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

ファクタを作成後、ファクタとともに使用するルール・セットおよびルールを作成します。

1. Limit SQL*Plus Accessルール・セットを次のように作成します。

BEGIN
DBMS_MACADM.CREATE_RULE_SET(
rule_set_name    => 'Limit SQL*Plus Access',
description      => 'Limits access to SQL*Plus for Apps Schemas',
enabled          => DBMS_MACUTL.G_YES,
eval_options     => DBMS_MACUTL.G_RULESET_EVAL_ANY,
audit_options    => DBMS_MACUTL.G_RULESET_AUDIT_OFF,
fail_options     => DBMS_MACUTL.G_RULESET_FAIL_SHOW,
fail_message     => 'SQL*Plus access not allowed for Apps Schemas',
fail_code        => 20461,
handler_options  => DBMS_MACUTL.G_RULESET_HANDLER_OFF,
handler          => NULL,
is_static        => FALSE);
END;
/

次のように指定します。

- fail_optionsはfail_messageによって設定されたエラー・メッセージおよびfail_codeによって設定されたエラー・コードを有効にして、エラーの場合に表示します。

- is_staticは、ユーザー・セッション中にルール・セットを1度評価します。その後、値は再利用されます。

2. CLIENT_PROGRAM_NAME属性から返された内容に基づいて、ポリシーに適用するコンピュータの正確な設定を検索します。

SELECT SYS_CONTEXT('USERENV', 'CLIENT_PROGRAM_NAME') FROM DUAL;

出力は次のようになります。

SYS_CONTEXT('USERENV','CLIENT_PROGRAM_NAME')
---------------------------------------------------------------
sqlplus@nemosity (TNS V1-V3)

このチュートリアルの場合、コンピュータの名前はnemosityです。(TN V1-V3)出力は、TNSコネクタのバージョンを示します。

3. 次のルール・セットを作成します。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Prevent Apps Schemas Access to SQL*Plus',
rule_expr  =>'UPPER (DVF.F$CLIENT_PROG_NAME) != ''SQLPLUS@NEMOSITY (TNS V1-V3)'' AND DVF.F$SESSION_USER IN (''HR'', ''OE'')');
END;
/
BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Allow Non-Apps Schemas Access to SQL*Plus',
rule_expr  =>'DVF.F$SESSION_USER NOT IN (''HR'', ''OE'')');
END;
/

このルールは次のように変換されます: 「ユーザーHRおよびOEのSQL*Plusへのログインは阻止するが、他のユーザーのアクセスは許可する」

4. ルールをLimit SQL*Plus Accessルール・セットに追加します。

BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit SQL*Plus Access',
rule_name     => 'Prevent Apps Schemas Access to SQL*Plus',
rule_order    => 1);
END;
/
BEGIN
DBMS_MACADM.ADD_RULE_TO_RULE_SET(
rule_set_name => 'Limit SQL*Plus Access',
rule_name     => 'Allow Non-Apps Schemas Access to SQL*Plus',
rule_order    => 1);
END;
/

プロシージャが機能するには、rule_order設定が必要です。

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

CONNECTコマンド・ルールは、CONNECT SQL文を制御します。

このコマンド・ルールは、コマンドラインから、またはSQL*Plusへのアクセスにサイトで使用するその他のツールからSQL*Plusにログインする場合にも適用されます。

- CONNECTコマンド・ルールを次のように作成します。

BEGIN
DBMS_MACADM.CREATE_COMMAND_RULE(
command         => 'CONNECT',
rule_set_name   => 'Limit SQL*Plus Access',
object_owner    => '%',
object_name     => '%',
enabled         => DBMS_MACUTL.G_YES);
END;
/

次のように指定します。

- rule_set_nameは、Limit SQL*Plus Accessルール・セットとCONNECTコマンド・ルールを関連付けます。

- コマンド・ルールがすべてのユーザーに適用されるように、object_ownerは%に設定されます。

- コマンド・ルールがすべてのオブジェクトに適用されるように、object_nameは%に設定されます。

- enabledはコマンド・ルールをただちに使用できるように有効化します。

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

Oracle Database Vaultの変更を有効にするために、SQL*Plusセッションを再起動する必要はありません。

1. SQL*Plusで、ユーザーHRとして接続を試行します。

CONNECT HR --Or, CONNECT HR@hrpdb
Enter password: password

次のような出力結果が表示されます。

ERROR:
ORA-47306: 20461: Limit SQL*Plus Access rule set failed

ユーザーHRは、SQL*Plusの使用を阻止されます。

2. 次に、ユーザーOEとして接続を試行します。

CONNECT OE --Or, CONNECT OE@hrpdb
Enter password: password

次のような出力結果が表示されます。

ERROR:
ORA-47306: 20461: Limit SQL*Plus Access rule set failed

ユーザーOEも、SQL*Plusの使用を阻止されます。

3. ここで、ユーザーSYSTEMとして接続を試行します。

CONNECT SYSTEM --Or, CONNECT SYSTEM@hrpdb
Enter password: password
Connected.

ユーザーSYSTEMはデータベース・インスタンスにログインできる必要があります。SYS、Database Vault所有者アカウントおよびDatabase Vaultアカウント・マネージャ・アカウントもログインできます。

テストが失敗した場合

SYSTEMとして(またはルール式で指定されているその他の管理ユーザーのいずれかとして)データベース・インスタンスにログインできない場合、SQL*Plusは使用できません。

この問題は、次の方法で対処できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

CONNECT dbv_owner --Or, CONNECT dbv_owner@hrpdb for a PDB
Enter password: password

2. 次の文を入力して、CONNECTコマンド・ルールを削除します。

EXEC DBMS_MACADM.DELETE_COMMAND_RULE ('CONNECT', '%', '%');

Oracle Database Vaultを無効にしても、そのPL/SQLパッケージとDatabase Vault Administratorはまだ使用できます。

3. エラーがあるかどうかポリシー・コンポーネントを確認し、エラーを修正します。CONNECTコマンド・ルールを再作成し、テストします。

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. CONNECTコマンド・ルールを削除します。

EXEC DBMS_MACADM.DELETE_COMMAND_RULE ('CONNECT', '%', '%');

2. Client_Prog_Nameファクタを削除します。

EXEC DBMS_MACADM.DELETE_FACTOR('Client_Prog_Name');

3. Limit SQL*Plus Accessルール・セットを削除します。

EXEC DBMS_MACADM.DELETE_RULE_SET('Limit SQL*Plus Access');

4. ルールを削除します。

EXEC DBMS_MACADM.DELETE_RULE('Prevent Apps Schemas Access to SQL*Plus');
EXEC DBMS_MACADM.DELETE_RULE('Allow Non-Apps Schemas Access to SQL*Plus');

5. 必要に応じて、DBV_ACCTMGRロールを付与されているユーザーとしてHRおよびOEアカウントをロックします。

CONNECT bea_dvacctmgr --Or, CONNECT amalcolumn_dbacctmgr@hrpdb
Enter password: password

ALTER USER HR ACCOUNT LOCK;
ALTER USER OE ACCOUNT LOCK;

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

このチュートリアルでは、ユーザーが使用しているドメインなど、セッション・データに基づいたユーザー・アクティビティを制限する方法を示します。

内容は次のとおりです。

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

- 手順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 bea_dvacctmgr
Enter password: password

CREATE USER mwaldron IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. CREATE SESSION権限およびDBAロールを付与する権限を持つユーザーとして接続し、ユーザーmwaldronにこれらの権限を付与します。また、このユーザーは、Oracleシステム権限およびロール管理レルムの所有者として認可されている必要があります。

次に例を示します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

GRANT CREATE SESSION, DBA TO mwaldron;

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

次に、アイデンティティをDomainファクタ(デフォルトのファクタ)に追加する必要があります。

1. DV_OWNERまたはDV_ADMINロールおよびSELECT ANY DICTIONARYシステム権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページの「Database Vaultコンポーネント」で、「ファクタ」をクリックします。

「ファクタ」ページが表示されます。

3. 「Oracle定義のファクタの表示」チェック・ボックスを選択してデフォルトのファクタを表示します。

4. Domainファクタを選択し、「編集」を選択します。

「ドメイン」ファクタが親ファクタになります。

5. 「アイデンティティ」ページになるまで、「次へ」ボタンをクリックします。

6. 「新規アイデンティティの追加」ボタンを選択します。

7. 「新規のアイデンティティとマッピングの追加」ページの「アイデンティティ」タブで、次の情報を入力します。

- 値: HIGHLY SECURE INTERNAL NETWORKと入力します。

- 信頼レベル: 「信頼度高」を選択します。

8. 「OK」をクリックします

9. これらの手順を繰り返してNOT SECUREというもう1つのアイデンティティを作成し、その信頼レベルを「信頼されない」に設定します。

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

アイデンティティをDomainファクタに追加後、これをClient_IPファクタにマップします。

Client_IPファクタはデフォルトのファクタです。

1. 「アイデンティティ」ページで、HIGHLY SECURE INTERNAL NETWORKアイデンティティを選択して「編集」を選択します。

2. 「新規のアイデンティティとマッピングの追加」ウィンドウで、「アイデンティティのマップ」サブページを選択します。

3. 「アイデンティティのマップ」タブを選択して、「マッピングの追加」を選択します。

4. 「新規のアイデンティティ・マッピングの追加」ページで、次の情報を入力します。

- 子ファクタ: 子ファクタとなる「Client_IP」を選択します。

- 演算子: 「＝」を選択します。

- 最小値: 仮想マシン(192.0.2.12など)のIPアドレスを入力します。(これは、ユーザーmwaldronが使用するコンピュータです。このチュートリアルでは、自身のコンピュータのIPアドレスを入力できます。Microsoft Windowsを使用している場合は、ループバック・アダプタに割り当てられたIPアドレスを使用します。)

- 最大値: このフィールドは空白のままにします。

5. 「OK」をクリックし、再度「OK」をクリックして「アイデンティティ」ページに戻ります。

6. NOT SECUREアイデンティティ用に次の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アイデンティティにより、その接続はセキュアではないと判断されます。

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

8. 「完了」、「終了」の順にクリックします。

9. ファクタ・アイデンティティをテストします。

最初に、SQL*Plusにユーザーmwaldronとして接続しますが、データベース・インスタンスは指定しません。

CONNECT mwaldron -- Or, CONNECT mwaldron@hrpdb
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. 「管理」ページの「Database Vaultコンポーネント」で、「ルール・セット」を選択します。

2. 「ルール・セット」ページで「作成」を選択します。

3. 「ルール・セットの作成」ページで、次の設定を入力します。

- 名前: Internal DBA Standard Working Hoursと入力します。

- ステータス: 「有効」を選択します。

- 評価オプション: 「すべてTrue」を選択します。

残りの設定はデフォルトのままにします。

4. 「次へ」をクリックして、「ルール・セットに関連付けられたルール」ページを表示します。

5. 「ルールの作成」を選択します。

6. 「ルールの作成」ウィンドウで、次の情報を入力します。

- 名前: Internal DBA

- 式: DVF.F$SESSION_USER='MWALDRON'
(ユーザー名を含む式を作成する場合、ユーザー名は大文字で入力します。データベースではユーザー名が大文字で格納されるためです。)

7. 「OK」をクリックします

8. 「ルールの作成」ページを使用して、さらに次のルールを作成します。

- 名前: 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. 「完了」、「終了」の順にクリックします。

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

作成したルール・セットを使用するコマンド・ルールを作成する必要があります。

1. 「管理」ページで「コマンド・ルール」を選択します。

2. 「コマンド・ルール」ページで「作成」を選択します。

3. 「コマンド・ルールの作成」ページで、次の設定を入力します。

- コマンド: リストから「CREATE TABLE」を選択します。

- ステータス: 「有効」を選択します。

- 適用可能なオブジェクト所有者: %(デフォルト)に設定されていることを確認します。

- 適用可能なオブジェクト名: %(デフォルト)に設定されていることを確認します。

- ルール・セットの評価: リストから「内部DBA標準勤務時間」を選択します。

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

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

システム・クロックを再設定して、mwaldron管理ユーザーとしてログインし、表を作成することにより、設定をテストします。

1. システム時間を午後9時に設定します。

UNIX: rootとしてログインし、dateコマンドを使用して時間を設定します。たとえば、今日の日付が2013年8月15日だとすると、次のように入力します。

su root
Password: password

date --set="15 AUG 2013 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 -- Or, CONNECT mwaldron@hrpdb
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ユーザーとしてデータベース・インスタンスにログインして、ユーザーmwaldronを削除します。

sqlplus bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

DROP USER mwaldron CASCADE;

2. CREATE TABLEコマンド・ルールを削除します。

「管理」ページに戻り、「コマンド・ルール」を選択します。「CREATE TABLE」コマンド・ルールを選択して、「削除」をクリックします。「確認」ウィンドウで、「はい」を選択します。

3. Internal DBA Standard Working Hoursルール・セットを削除します。

「管理」ページで「ルール・セット」を選択します。「ルール・セット」ページで、「内部DBA標準勤務時間」ルール・セットを選択し、「削除」を選択します。「確認」ウィンドウで「ルール・セットに関連付けられたルールの削除」チェック・ボックスを選択して、「はい」をクリックします。

4. 「内部DBA標準勤務時間」ルール・セットに関連付けられたルールを削除します。

「管理」ページで、「ルール」を選択します。「ルール」ページで、「内部DBA、内部ネットワークのみ、平日、平日勤務時間」ルールを選択して、「削除」を選択します。「確認」ウィンドウで「はい」を選択します。

5. DomainファクタからHIGHLY SECURE INTERNAL NETWORKおよびNOT SECUREファクタ・アイデンティティを削除します。

「管理」ページで「ファクタ」を選択します。「ドメイン」ファクタを選択し、「編集」を選択します。「アイデンティティ」ページになるまで、「次へ」をクリックします。「HIGHLY SECURE INTERNAL NETWORK」および「NOT SECURE」ファクタ・アイデンティティを選択し、「削除」をクリックしてそれぞれを削除します。(複数の項目を選択するには、[Ctrl]キーを押しながらクリックします。)「確認」ウィンドウで、「はい」を選択します。「完了」、「終了」の順にクリックします。

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

Oracleでは、ファクタ設計のガイドラインを提供しています。

- セキュリティまたは外部システムからのセッションに関するその他のコンテキスト情報を統合するには、UTL_TCP、UTL_HTTP、DBMS_LDAPおよびDBMS_PIPEなどのOracleユーティリティ・パッケージを使用できます。

- ファクタの識別が「ファクタによる識別」に設定されている場合は、取得メソッドを指定しないでください。取得メソッドが必要なのは、ファクタを「メソッド」または「定数」に設定した場合のみです。

- ファクタに割当てルール・セットがある場合は、検証メソッドの使用を検討します。これにより、無効なアイデンティティが発行されないことを検証できます。

- 指定されている値は、クライアント・ソフトウェアが信頼されていて、クライアント・ソフトウェアからの通信チャネルが安全であることがわかっている場合にのみ信頼できるため、クライアント指定のProgram、OS Userおよびその他のファクタは注意して使用します。

- 時間ベースのファクタなど、同じセッション内のある起動と次の起動で、取得メソッドによって返される値が変わる可能性がある場合には、「アクセス」評価オプションのみを指定します。

- 従来のSQLおよびPL/SQLの最適化技術を使用して、ファクタ取得メソッドに使用されるファンクションの内部ロジックを最適化します。パフォーマンスと最適化の詳細は、Oracle Database SQLチューニング・ガイドを参照してください。

- 取得メソッドによって返される離散値がわかっている場合は、各値にアイデンティティを定義し、信頼レベルを割り当てられるようにします。ファクタに基づくアプリケーション・ロジックに信頼レベルを使用するにつれ、信頼レベルによりファクタに値が追加されます。

- 通常、より多くのファクタに基づくセキュリティ・ポリシーは、少ないファクタに基づくセキュリティ・ポリシーよりも強力です。別のファクタによって識別される新しいファクタを作成し、アイデンティティ・マップを使用してファクタの組合せを論理グループに保存できます。これにより、ファクタを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パッケージおよびタイプ・リファレンス』を参照してください。

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

ファクタの複雑さは、Oracleデータベース・インスタンスのパフォーマンスに影響します。

各ファクタには、検証メソッドや信頼レベルのような処理される要素があります。セッションによって評価されるDatabase_HostnameおよびProxy_Userのようなファクタの場合は、Oracle Database Vaultによりセッションの初期化中にこのプロセスが実行され、その値に対する後続のリクエスト用に結果がキャッシュされます。

「デフォルトのファクタ」に示されているデフォルトのファクタは、典型的なセキュリティ・ポリシーで使用される可能性が高いためキャッシュされます。ただし、ルール・セットやその他のコンポーネントなどで5つのファクタしか使用しない場合、別のことに使用できるリソースが残りのファクタにより消費されます。このような場合は、不要なファクタを削除する必要があります。(Oracle Database Vaultでは、これらのファクタを内部的に使用しないため、不要な場合は削除できます。)

ユーザー数が多い場合やアプリケーション・サーバーで接続の作成や切断を頻繁に行う場合、使用されるリソースがシステムのパフォーマンスに影響を与える可能性があります。不要なファクタは削除できます。

システム・パフォーマンスを確認するには、Oracle Enterprise Manager(Oracle Databaseと一緒にデフォルトでインストールされるOracle Enterprise Manager Cloud Controlを含む)、自動ワークロード・リポジトリ(AWR)およびTKPROFなどのツールを実行します。

関連項目:

- データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください

- 個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください

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

Oracle Database Vaultには、ファクタおよびそれらのアイデンティティに関する情報を示すレポートとデータ・ディクショナリ・ビューが用意されています。

表8-1に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

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

レポート

説明

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

評価に失敗したファクタの検出など、ファクタが監査されます。

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

無効なルール・セットまたは不完全のルール・セットなどの構成問題の表示、またはファクタに影響を与える可能性のある問題の監査が行われます。

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

アイデンティティが割り当てられていないファクタが表示されます。

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

無効なラベル・アイデンティティがあるファクタ、またはアイデンティティがマップされていないファクタが表示されます。

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

ルールが定義されていないか、有効ではなく、それらを使用するファクタに影響を与える可能性があるルール・セットが表示されます。

表8-2に、既存のファクタおよびファクタ・アイデンティティに関する情報を提供するデータ・ディクショナリ・ビューを示します。

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

データ・ディクショナリ・ビュー

説明

DVSYS.DBA_DV_FACTORビュー

現行のデータベース・インスタンス内の既存のファクタが表示されます。

DVSYS.DBA_DV_FACTOR_LINKビュー

子ファクタの関連によりアイデンティティが決定される各ファクタの関係が表示されます。

DVSYS.DBA_DV_FACTOR_TYPEビュー

システムで使用されているファクタ・タイプの名前および説明が表示されます。

DVSYS.DBA_DV_IDENTITYビュー

各ファクタのアイデンティティが表示されます。

DVSYS.DBA_DV_IDENTITY_MAPビュー

各ファクタのアイデンティティのマップが表示されます。

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

セキュア・アプリケーション・ロールを使用すると、ユーザーのアプリケーションに対するアクセス権限を制御できます。

内容は次のとおりです。

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

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

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

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

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

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

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

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

- セキュア・アプリケーション・ロールに関連するレポートおよびデータ・ディクショナリ・ビュー

関連項目:

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

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

セキュア・アプリケーション・ロールを使用すると、ユーザーのアプリケーションに対するアクセス権限を制御できます。

通常のOracle Databaseセキュア・アプリケーション・ロールはカスタムPL/SQLプロシージャによって有効になります。セキュア・アプリケーション・ロールは、ユーザーによるアプリケーション外からのデータへのアクセスを阻止します。これにより、ユーザーはロールに付与されているアプリケーション権限のフレームワーク内での作業を強制されます。

ルール・セットを基準にしてロールのデータベース・アクセスを行う利点は、データベース・セキュリティ・ポリシーをすべてのアプリケーションに保存するのではなく、中央の1つの場所に保存できることです。ルール・セットに基づいたロールにより、一貫性と柔軟性を兼ね備えたメソッドを作成し、ロールが提供するセキュリティ・ポリシーを実行できます。この方法では、アプリケーション・ロールのセキュリティ・ポリシーを更新する必要がある場合、1つの場所、つまりルール・セットで行うことができます。さらに、ユーザーがどのようにしてデータベースに接続しても、ルール・セットがロールにバインドされているため、結果は同じです。ユーザーは、ロールを作成して、それをルール・セットに関連付けるのみです。関連付けられているルール・セットでは、ロールの有効化を試行するユーザーが検証されます。

関連項目:

PL/SQLインタフェースおよびパッケージの使用によるOracle Database Vaultのセキュア・アプリケーション・ロールの作成と管理については、「Oracle Database Vaultセキュア・アプリケーション・ロールのAPI」を参照してください

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

Database Vault AdministratorでDatabase Vaultセキュア・アプリケーション・ロールを作成できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. ユーザーにロールの有効化を許可または禁止する条件を設定する1つ以上のルールが含まれるルール・セットを作成します。

ルール・セットの基礎となるルールを作成する場合、ルールでロールの有効化を試行するユーザーを検証する必要があります。ルール・セットの詳細は、「ルール・セットの構成」を参照してください。

3. 「管理」ページの「Database Vaultコンポーネント」で、「セキュア・アプリケーション・ロール」をクリックします。

4. 「セキュア・アプリケーション・ロール」ページで、「作成」をクリックして「セキュア・アプリケーション・ロールの作成」ページを表示します。

5. 「ロールの作成」ページの「一般」で次の設定を入力します。

- ロール: 空白は使用せず、30文字以内の名前を入力します。この名前が、『Oracle Database SQL言語リファレンス』で説明されている、CREATE ROLE文を使用したロール作成の標準のOracleネーミング規則に準拠していることを確認してください。この属性は必須です。

- ステータス: 「有効」または「無効」のいずれかを選択し、実行時にセキュア・アプリケーション・ロールを有効または無効にします。この属性は必須です。

- 有効: 使用できるようにロールを有効にします。すなわち、ユーザーはDBMS_MACSEC_ROLES.SET_ROLEファンクションを呼び出してロールの有効化を試行できます。ロールを有効化できるかどうかは、関連付けられているルール・セットの評価結果によって決まります。
このファンクションの詳細は、「SET_ROLEプロシージャ」を参照してください。

- 無効: 使用できないようにロールを無効にします。DBMS_MACSEC_ROLES.SET_ROLEファンクションでロールを有効化できません。

6. 「ロールの作成」ページの「ルール・セット」で、リストからセキュア・アプリケーション・ロールに関連付けるルール・セットを選択します。この属性は必須です。

DBMS_MACSEC_ROLES.SET_ROLEを呼び出す際に、ルール・セットがTrueと評価されると、Oracle Database Vaultによりデータベース・セッションに対してそのロールが有効になります。ルール・セットがFalseと評価されると、ロールは有効になりません。

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

7. 「OK」をクリックします

関連項目:

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

セキュア・アプリケーション・ロールの変更

既存のセキュア・アプリケーション・ロールを変更できるのは、それが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プロシージャ」を参照してください

Oracle Database Vaultセキュア・アプリケーション・ロールのセキュリティ

データベース管理権限を持っているユーザーは、DROP ROLE文を使用して、Oracle Database Vaultのセキュア・アプリケーション・ロールの削除を試みることができます。

Oracle Database Vaultセキュア・アプリケーション・ロールが作成されると、必ずDatabase Vaultによりセキュア・アプリケーション・ロールがOracle Database Vaultレルムに追加されます。これにより、データベース管理者はDROP ROLE文を使用してセキュア・アプリケーション・ロールを削除できません。

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

Oracle Database Vault AdministratorでOracle Database Vaultセキュア・アプリケーション・ロールを削除できます。

1. 必要に応じて、ロールに関連するOracle Database Vaultビューに問い合せることで、そのセキュア・アプリケーション・ロールへの様々な参照を特定します。

詳細は、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

2. 削除するセキュア・アプリケーション・ロールを使用している可能性のあるアプリケーションを確認して変更します。

3. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

4. 「管理」ページの「Database Vaultコンポーネント」で、「セキュア・アプリケーション・ロール」をクリックします。

5. 「セキュア・アプリケーション・ロール」ページで、削除するロールを選択します。

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

7. 「確認」ウィンドウで、「はい」をクリックします。

Oracle Database Vaultセキュア・アプリケーション・ロールの機能

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セキュア・アプリケーション・ロールによるアクセス権限の付与

このチュートリアルでは、セキュア・アプリケーション・ロールを作成して、勤務時間中のOE.ORDERS表へのユーザー・アクセスを制御する方法を示します。

内容は次のとおりです。

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

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

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

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

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

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

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

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

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

このチュートリアルでは、OEスキーマのORDERS表に対するSELECT文を、一定のユーザーだけに制限します。

さらに、これらのユーザーは、リモート接続からではなく、オフィス内でのみOE.ORDERS表に対してこれらの文を実行できます。これを実行するには、Oracle Database Vaultセキュア・アプリケーション・ロールを作成し、これに関連付けたルール・セットによって実施されるチェックに合格した場合のみ、ユーザーにこのロールが有効化されるようにします。

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

最初に、チュートリアル用のユーザーを作成する必要があります。

1. DV_ACCTMGRロールを付与されているユーザーとしてSQL*Plusにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. 次のユーザー・アカウントを作成します。

GRANT CREATE SESSION TO eabel IDENTIFIED BY password;
GRANT CREATE SESSION TO ahutton IDENTIFIED BY password;
GRANT CREATE SESSION TO ldoran IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

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

OEスキーマがこのチュートリアル用に使用されます。

1. DV_ACCTMGRユーザーとしてSQL*Plusに接続します。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
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: ルール・セットとそのルールの作成

ルール・セットおよびルールは、OE.ORDERS表の順序を変更できるユーザーを制限します。

1. DV_OWNERまたはDV_ADMINロールおよびSELECT ANY DICTIONARYシステム権限を付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「管理」ページで、「ルール・セット」を選択します。

「ルール・セット」ページが表示されます。

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

「ルール・セットの作成」ページが表示されます。

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

- 名前: Can Modify Ordersと入力します。

- 説明: Rule set to control who can modify orders in the OE.ORDERS tableと入力します。

- ステータス: 「有効」を選択します。

- 評価オプション: 「すべてTrue」を選択します。

5. 残りの設定はデフォルトのままにして、「次へ」をクリックして「ルール・セットに関連付けられたルール」ページに移動します。

6. 「ルールの作成」をクリックして、「ルールの作成」ダイアログ・ボックスで次の設定を入力します。

- 名前: Check IP Address

- 式: DVF.F$CLIENT_IP = 'your_IP_address'

Check IP Addressルールでは、your_IP_addressを自身のコンピュータのIPアドレスに置き換えます。実際には、アクセスを許可されるユーザーのすべてのIPアドレスを含む式を作成します。

このルールでは、デフォルトのファクタClient_IPが使用されます。このファクタが削除されている場合、かわりに次のルール式を使用できます。

UPPER(SYS_CONTEXT('USERENV','IP_ADDRESS')) = 'your_IP_address'

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

8. 「ルールの作成」を再度クリックして、「ルールの作成」ダイアログ・ボックスで次の設定を入力します。

- 名前: Check Session User

- 式: DVF.F$SESSION_USER IN ('EABEL','AHUTTON')

このルールでは、デフォルトのファクタSession_Userが使用されます。このファクタが削除または変更されている場合、かわりに次のルール式を使用できます。

UPPER(SYS_CONTEXT('USERENV','SESSION_USER')) IN ('EABEL','AHUTTON')

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

10. 「完了」、「終了」の順にクリックします。

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

Database Vaultセキュア・アプリケーション・ロールは、ルール・セット条件が満たされた場合に、設定されます。

1. Oracle Database Vaultで、「管理」ページに戻ります。

2. 「管理」で「セキュア・アプリケーション・ロール」を選択します。

「セキュア・アプリケーション・ロール」ページが表示されます。

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

「ロールの作成」ページが表示されます。

4. 「ロール」ボックスで、ORDERS_MGMTと入力し、ロールに名前を付けます。

5. 「ルール・セット」で、「Can Modify Orders」を選択します。

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

この段階で、Database Vaultセキュア・アプリケーション・ロールとそれに関連付けられたルール・セットが作成されますが、ロールにはまだ権限がありません。

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

セキュア・アプリケーション・ロールにはSELECT権限を付与する必要があります。

1. ユーザーOEとしてSQL*Plusに接続します。

CONNECT OE -- Or, CONNECT OE@hrpdb
Enter password: password

2. ORDERS_MGMT Database Vaultセキュア・アプリケーション・ロールにSELECT権限を付与します。

GRANT SELECT ON ORDERS TO ORDERS_MGMT;

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

すべてのコンポーネントが所定の位置にある状態で、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で行ったように、データベース・インスタンスを指定して接続することです。(これがどのように機能するかは、「ファクタの構成」の「手順3: Domainファクタ・アイデンティティのClient_IPファクタへのマップ」の手順9を参照)。

5. ユーザーldoranとして接続します。

CONNECT ldoran -- Or, CONNECT ldoran@hrpdb
Enter password: password

6. 次の文を入力します。

EXEC DBMS_MACSEC_ROLES.SET_ROLE('ORDERS_MGMT');
SELECT COUNT(*) FROM OE.ORDERS;

ユーザーldoranは有効なユーザーではないため、ORDERS_MGMTロールを有効にすることはできません。したがって、OE.ORDERS表から選択できません。

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. ORDERS_MGMTセキュア・アプリケーション・ロールを削除します。「セキュア・アプリケーション・ロール」ページでORDERS_MGMTセキュア・アプリケーション・ロールを選択して「削除」をクリックし、「確認」ダイアログ・ボックスで「はい」をクリックします。

3. 「ルール・セット」ページで、「Can Modify Orders」ルール・セットを選択して、「削除」をクリックします。

4. 「確認」ダイアログ・ボックスで、「はい」を選択してルール・セットを削除します。

5. 「ルール」ページで、「Check IP Address」ルールと「Check Session User」ルールを選択して、「削除」を選択します。「確認」ボックスで「はい」を選択します。

複数のルールを選択するには、[Ctrl]キーを押しながらクリックします。

6. Database Vaultアカウント・マネージャとしてSQL*Plusに接続し、ユーザーを削除します。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

DROP USER eabel;
DROP USER ahutton;
DROP USER ldoran;

7. 必要がなければ、OEユーザー・アカウントをロックし、無効にします。

ALTER USER OE ACCOUNT LOCK PASSWORD EXPIRE;

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

システム性能は、Oracle Enterprise Manager Cloud Controlによってチェックできます。

他に使用できるツールには、自動ワークロード・リポジトリ(AWR)とTKPROFがあります。

関連項目:

- データベース・パフォーマンスの監視方法の詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください

- 個々のSQL文およびPL/SQL文の実行を監視するには、『Oracle Database SQLチューニング・ガイド』を参照してください

セキュア・アプリケーション・ロールに関連するレポートおよびデータ・ディクショナリ・ビュー

Oracle Database Vaultには、Oracle Database Vaultセキュア・アプリケーション・ロールの分析に使用できるレポートとデータ・ディクショナリ・ビューが用意されています。

表9-1に、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

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

レポート

説明

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

Oracle Database Vaultセキュア・アプリケーション・ロールを有効にする操作によって生成された監査レコードが表示されます。

このタイプの監査レコードを生成するには、ロールに関連付けられているルール・セットの監査を有効にします。

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

存在しないデータベース・ロールや、不完全または無効なルール・セットのあるセキュア・アプリケーション・ロールが表示されます。

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

ルールが定義されていないか、有効ではなく、それらを使用するセキュア・アプリケーション・ロールに影響を与える可能性のあるルール・セットが表示されます。

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

強力な権限のあるデータベース・アカウントおよびロールに関する情報が示されます。

DBA_DV_ROLEデータ・ディクショナリ・ビューを使用すれば、権限管理で使用されるOracle Database Vaultセキュア・アプリケーション・ロールを検索できます。詳細は、「DVSYS.DBA_DV_ROLEビュー」を参照してください。

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

Oracle Database Vaultは、Oracle Enterprise User Securityなどの他のOracle製品と統合できます。

内容は次のとおりです。

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

- Oracle Database Vaultアカウントをエンタープライズ・ユーザー・アカウントとして構成

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

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

- Oracle Database VaultとOracle Label Securityの統合

- Oracle Database VaultとOracle Data Guardの統合

- Oracle Database構成アシスタントを使用したOracle Internet Directoryの登録

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

Oracle Database Vaultは、Oracle Enterprise User Securityと統合できます。

内容は次のとおりです。

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

- エンタープライズ・ユーザー認可の構成

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

エンタープライズ・ユーザー・セキュリティは、データベース・ユーザーと権限を1箇所で集中管理します。

Oracle Identity Managementと組み合せ、Oracle Database Enterprise Editionで使用できます。

通常、Oracle Database VaultをOracle Enterprise User Securityと統合するには、適切なレルムを構成して、保護の対象となるデータベース内のデータを保護します。

必要に応じてOracle Database Vaultレルムを定義した後に、エンタープライズ・ユーザーに対してアクセスを許可または禁止するルール・セットを作成できます。

関連項目:

エンタープライズ・ユーザー・セキュリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください

エンタープライズ・ユーザー認可の構成

エンタープライズ・ユーザー認可を構成するには、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 Vaultアカウントをエンタープライズ・ユーザー・アカウントとして構成

既存のOracle Database Vaultユーザー・アカウントをエンタープライズ・ユーザー・アカウントとして構成できます。

1. CREATE ROLEシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus system
Enter password: password

2. マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続します。

次に例を示します。

CONNECT SYSTEM@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

3. DV_OWNERロールのグローバル・ロールとDV_ACCTMGRロールのグローバル・ロールを作成します。

次に例を示します。

CREATE ROLE g_dv_owner IDENTIFIED GLOBALLY;
CREATE ROLE g_dv_acctmgr IDENTIFIED GLOBALLY;

4. DV_OWNERロールを付与されたユーザーとして接続します。

次に例を示します。

CONNECT dbv_owner -- Or, CONNECT dbv_owner@hrpdb
Enter password: password

5. DV_OWNERロールをグローバルDV_OWNERロールに付与します。

GRANT DV_OWNER TO g_dv_owner;

6. DV_ACCTMGRロールを付与されているユーザーとして接続します。

次に例を示します。

CONNECT dbv_acctmgr -- Or, CONNECT dbv_acctmgr@hrpdb
Enter password: password

7. DV_ACCTMGRロールをグローバルDV_ACCTMGRロールに付与します。

GRANT DV_ACCTMGR TO g_dv_acctmgr;

8. SYSDBA管理権限を持つユーザーSYSとして接続します。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
Enter password: password

9. Database VaultユーザーをOIDにインポートするDV_ACCTMGRユーザーに、一時的にCREATE TABLE権限とSELECT_CATALOG_ROLEロールを付与します。

GRANT CREATE TABLE, SELECT_CATALOG_ROLE TO dbv_acctmgr;

10. コマンド・ラインで、ユーザー移行ユーティリティ(UMU)を実行してDatabase VaultアカウントをOracle Internet Directory (OID)にインポートします。

次に例では、Database Vaultアカウントleo_dvownerおよびbea_dvacctmgrをOIDにインポートします。DBADMIN設定にDV_ACCTMGRユーザーが指定されます。

$ORACLE_HOME/rdbms/bin/umu PHASE=ONE
DBADMIN=dbv_acctmgr:password
ENTADMIN=cn=jane_ent_admin,dc=example,dc=com:password
USERS= LIST
DBLOCATION=example.com:7777:orcl
DIRLOCATION=example.com:636
USERSLIST=leo_dvowner:bea_dvacctmgr
MAPSCHEMA=PRIVATE
CONTEXT=CONTEXT="c=Users, c=us"
KREALM=EXAMPLE.COM

$ORACLE_HOME/rdbms/bin/umu PHASE=TWO
DBADMIN=dbv_acctmgr:password
ENTADMIN=cn=jane_ent_admin,dc=example,dc=com:password
DBLOCATION=example.com:7777:orcl
DIRLOCATION=example.com:636

デフォルトでは、$ORACLE_HOME/network/log/umu.logファイルにエラーが書き込まれます。

11. Oracle Internet Directoryセルフ・サービス・コンソール(http://hostname:port/oiddas/)で、グローバルDV_OWNERおよびDV_ACCTMGRロール(g_dv_ownerやg_dv_acctmgrなど)をエンタープライズ・ユーザーのDatabase Vaultアカウントに付与します。

グローバル・ロールからエンタープライズ・ロールを作成し、このロールをユーザーに付与する方法については、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』のエンタープライズ・ユーザーの作成例に関する項を参照してください。

12. SQL*Plusで、SYSDBA管理権限を持つユーザーSYSとして、CREATE TABLEおよびSELECT_CATALOG_ROLEロールをDV_ACCTMGRユーザーから取り消します。

REVOKE CREATE TABLE, SELECT_CATALOG_ROLE FROM dbv_acctmgr;

関連項目:

ユーザー移行ユーティリティの詳細は、『Oracle Databaseエンタープライズ・ユーザー・セキュリティ管理者ガイド』を参照してください

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

データがデータベースのセキュアな範囲外にある場合のデータ保護を提供するという意味で、透過的データ暗号化はOracle Database Vaultを補完するものです。

透過的データ暗号化を使用して、データベース管理者またはデータベース・セキュリティ管理者は、アプリケーション表の機密情報の列のみを暗号化したり、アプリケーション表領域全体を暗号化したりできます。アプリケーションを変更する必要はありません。

ユーザーが認証チェックと認可チェックを通ると、透過的データ暗号化によりユーザーの情報は自動的に暗号化および復号化されます。このように、アプリケーションを変更しなくても暗号化を実装できます。

透過的データ暗号化ユーザーに適切な権限を付与したら、透過的データ暗号化を通常どおり管理でき、Database Vaultを補完するものとして使用できます。

図10-1に、暗号化されたデータがOracle Database Vaultレルムでどのように処理されるかを示します。

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

関連項目:
透過的データ暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

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

Oracle Virtual Private Databaseにはファクタを追加できます。

1. PL/SQLファンクションまたはPL/SQL式であるVirtual Private Databaseポリシー述語を定義します。

2. 各ファンクションまたは式に対して、ファクタごとに作成されるPL/SQLファンクションDVF.F$を使用します。

関連項目:

Oracle Databaseセキュリティ・ガイド 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 Database VaultをOracle Label Securityとともに使用するための要件

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

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

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

関連項目:

Oracle Database Vault Oracle Label SecurityのAPI

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

Oracle Database VaultとOracle Label Securityを統合化すると、OLSラベルを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統合の監査」レポートを使用して監査できます。Oracle Database Vaultは、監査証跡をDVSYS.AUDIT_TRAIL$表に書き込みます。統合監査が有効な場合、『Oracle Databaseセキュリティ・ガイド』の説明に従い、この情報を取得する監査ポリシーを作成できます。

関連項目:

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

- Database VaultとOracle Label Securityを統合するために使用できるDatabase Vault APIの詳細は、「Oracle Database Vault Oracle Label SecurityのAPI」を参照してください

- Oracle Database VaultとOracle Label Securityの統合で実行できるレポートの詳細は、「関連するレポートおよびデータ・ディクショナリ・ビュー」を参照してください

- Oracle Label Securityのラベルの詳細は、『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 bea_dvacctmgr -- Or, sqlplus bea_dvacctmgr@hrpdb for a PDB
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 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 Label Securityポリシーの最大許容データ・ラベルに含めるファクタを定義できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud Controlから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コンポーネント」で、「OLS統合」をクリックします。

5. 「Label Securityポリシー」ページで次のようにします。

- 新しいラベル・セキュリティ・ポリシーをDatabase Vaultに登録するには、「作成」をクリックします。

- Database Vaultに登録されている既存のラベル・セキュリティ・ポリシーを編集するには、リストでそのポリシーを選択して「編集」をクリックします。

6. 次の設定を入力します。

- Label Securityポリシー: リストから使用するOracle Label Securityポリシーを選択します。

- アルゴリズム: Oracle Label Securityで2つのラベルをマージしている場合、ラベルマージ・アルゴリズムを必要に応じて変更します。ほとんどの場合、「LII - 最小レベル/論理積/論理積」を選択します。この設定は、Oracle Label Security管理者が2つのラベルをマージする際に最も一般的に使用する方法です。この設定により、ラベルが異なる2つのデータ・セットを組み合せる際に必要な結果のラベルをアプリケーションで特定する必要がある場合に、最適な柔軟性が提供されます。これは、データ・ラベルが異なる行で結合を使用して問合せを実行する必要がある場合にも必要です。
これらのラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。マージ・アルゴリズムの指定にDBMS_MACADMパッケージを使用する場合、使用可能なマージ・アルゴリズムをすべて示すリストについては、表18-3を参照してください。

- ラベル・セキュリティ・ポリシー・ファクタ: 「使用可能なファクタ」リストの「ラベル・セキュリティ・ポリシー・ファクタ」で、Oracle Label Securityポリシーと関連付けるファクタを選択します。「移動」をクリックして、ファクタを「選択したファクタ」リストに移動します。[Ctrl]キーを押しながら必要な各ファクタをクリックすると、複数のファクタを選択できます。

7. 「OK」をクリックします

ポリシーは「ラベル・セキュリティ・ポリシー統合」ページにリストされます。

8. ラベルのポリシーを使用して、ファクタ・アイデンティティのラベル付けを行います。

詳細は、「ファクタへのアイデンティティの追加」を参照してください。

注意:

Oracle Label Securityポリシーをファクタと関連付けない場合、Oracle Database Vaultではポリシーに対する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)とともに使用すると、機密データへのアクセスを制限できます。

このようなデータを制限して、セキュリティ管理者が任意のデータ・セッションに対して定義するファクタの適切な組合せが存在する場合にのみデータベース・セッションに公開されるようにすることができます。

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

このチュートリアル用に2つの管理ユーザーを作成する必要があります。

1. DV_ACCTMGRロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus bea_dvacctmgr
Enter password: password

マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続する必要があります。

次に例を示します。

sqlplus bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

2. 次のローカル・ユーザーを作成します。

GRANT CREATE SESSION TO mdale IDENTIFIED BY password CONTAINER = CURRENT;
GRANT CREATE SESSION TO jsmith IDENTIFIED BY password CONTAINER = CURRENT;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

3. システム権限を付与でき、Oracleシステム権限およびロール管理レルムの所有者認可を付与されているユーザーとして接続し、ユーザーmdaleとユーザーjsmithに管理権限を付与します。

CONNECT dba_psmith -- Or, CONNECT dba_psmith@hrpdb
Enter password: password

GRANT DBA TO mdale, jsmith;

この段階で、ユーザーmdaleとユーザーjsmithは、同じ管理権限を持ちます。

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

次に、Oracle Label Securityポリシーを作成して、ユーザーに適切な権限を付与することができます。

1. SQL*Plusで、Oracle Label Security管理者LBACSYSとして接続します。

CONNECT LBACSYS -- Or, CONNECT LBACSYS@hrpdb
Enter password: password

ユーザーLBACSYSがロックされて無効になっている場合、Database Vaultアカウント・マネージャとして接続し、LBACSYSアカウントのロックを解除して有効にしてから、LBACSYSとして再びログインします。

次に例を示します。

CONNECT bea_dvacctmgr -- Or, CONNECT bea_dvaccmgr@hrpdb
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ルールの作成

Oracle Label Securityポリシーを作成すれば、これと連携するDatabase Vaultルールを作成することができます。

1. Database Vault所有者としてSQL*Plusに接続します。

次に例を示します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
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');

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

ルール・セットを使用する前に、デフォルト・コマンド・ルールである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」コマンド・ルールは「システム・パラメータのファイングレイン・コントロールを許可」ルール・セットを使用し、有効になっています。

3. PIIルール・セットに関連付けられる「ALTER SYSTEM」コマンド・ルールを更新します。

EXEC DBMS_MACADM.UPDATE_COMMAND_RULE('ALTER SYSTEM', 'PII Rule Set', '%', '%', 'Y');

このコマンドでは、PII Rule SetをALTER SYSTEMコマンド・ルールに追加し、すべてのオブジェクト所有者およびオブジェクト名に適用し、コマンド・ルールを有効にします。

手順5: 認可のテスト

すべてのコンポーネントの準備ができたら、認可をテストする準備ができます。

1. ユーザーmdaleとしてSQL*Plusにログインします。

CONNECT mdale -- Or, CONNECT mdale@hrpdb
Enter password: password

2. AUDIT_TRAIL初期化パラメータの現行設定を確認します。

SHOW PARAMETER AUDIT_TRAIL

NAME                                 TYPE        VALUE
------------------------------------ ----------- ----------------------
audit_trail                          string      DB

後で元の設定に戻せるように、これらの設定をメモします。

3. ユーザーmdaleとして、ALTER SYSTEM文を使用し、CPU_COUNTパラメータを変更します。

ALTER SYSTEM SET CPU_COUNT = 4;
System altered.

ユーザーmdaleはPII区分を含むSensitiveラベルを割り当てられたので、ALTER SYSTEM文を使用して、AUDIT_TRAILシステム・パラメータを変更できます。

4. CPU_COUNTパラメータを元の値に戻します。

次に例を示します。

ALTER SYSTEM SET CPU_COUNT = 2;

5. ユーザーjsmithとしてログインし、同じALTER SYSTEM文を発行します。

CONNECT jsmith -- Or, CONNECT jsmith@hrpdb
Enter password: password

ALTER SYSTEM SET CPU_COUNT = 14;

次のような出力結果が表示されます。

ERROR at line 1:
ORA-01031: insufficient privileges

ユーザーjsmithはConfidentialラベルしか割り当てられていないので、ALTER SYSTEM文を実行できません。

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

コンポーネントが不要になった場合、このチュートリアルで作成したコンポーネントを削除できます。

1. Oracle Label Security管理者として接続し、ラベル・ポリシーとそのコンポーネントを削除します。

CONNECT LBACSYS -- Or, CONNECT LBACSYS@hrpdb
Enter password: password

EXEC SA_SYSDBA.DROP_POLICY('PRIVACY', TRUE);

2. Oracle Database Vault所有者として接続し、次のコマンドを示した順序で発行し、ALTER SYSTEMコマンド・ルールを以前の設定に戻して、ルール・セットを削除します。

次に例を示します。

CONNECT leo_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 bea_dvacctmgr -- Or, CONNECT bea_dvacctmgr@hrpdb
Enter password: password

DROP USER mdale;
DROP USER jsmith;

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

Oracle Database Vaultには、Oracle Database VaultとOracle Label Securityの統合化に関する情報をリストする、レポートとデータ・ディクショナリ・ビューが用意されています。

表10-1では、Oracle Database Vaultレポートを示します。これらのレポートの実行方法の詳細は、「Oracle Database Vaultレポート」を参照してください。

表10-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ポリシーを無視できます。

表10-2に、Oracle Database Vaultで使用される既存のOracle Label Securityポリシーに関する情報を提供するデータ・ディクショナリ・ビューを示します。

表10-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ビュー

各ポリシーのDBA_DV_IDENTITYビューの各ファクタ識別子に対するOracle Label Securityラベルが表示されます。

Oracle Database VaultとOracle Data Guardの統合

Oracle Database VaultとOracle Data Guardの統合化には、まずプライマリ・データベースを構成して、それからスタンバイ・データベースを構成する必要があります。

内容は次のとおりです。

- 手順1: プライマリ・データベースの構成

- 手順2: スタンバイ・データベースの構成

手順1: プライマリ・データベースの構成

プライマリ・データベースを構成するには、DGMGRLユーティリティとDBCAユーティリティを実行してから、ALTER SYSTEM文を実行する必要があります。

1. LinuxおよびUNIXシステムの場合、Oracle Database Vaultをインストールするノードのデータベースに/etc/oratabエントリがあることを確認します。

2. Data Guard Brokerを使用している場合は、コマンド・プロンプトから次のように構成を無効化します。

dgmgrl sys
Enter password: password

DGMGRL> disable configuration;

3. Database Configuration Assistant (DBCA)を実行してデータベース・オプションを構成し、Oracle Database Vaultをプライマリ・データベースに追加します。

a. コマンド・ラインに次のコマンドを入力して、DBCAを起動します。

dbca

b. 適切なデータベース・タイプ(「クラスタ」または「シングル・インスタンス」)を選択して、「次へ」をクリックします。

c. 「データベース操作」ページで、「データベース・オプションの構成」を選択し、「次へ」をクリックします。

d. 適切なデータベースを選択して、「次へ」をクリックします。

e. 「Oracle Label Security」を選択すると「Oracle Database Vault」が選択可能になります。その後、「次へ」をクリックします。

f. Database Vault所有者(必須)およびDatabase Vaultアカウント・マネージャ(推奨)の名前を入力します。
パスワードには、アルファベット、数字および特殊文字をそれぞれ1つ以上使用する必要があります。

g. 「次へ」をクリックします。

h. 適切な接続モードを選択して、「次へ」をクリックします。

i. 「OK」をクリックしてデータベースを再起動します。

j. 追加コンポーネントの構成で「OK」をクリックします。

この時点で、プライマリ・サイトのインストールは完了しました。

4. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

sqlplus sys as sysdba
Enter password: password

5. 次の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;
ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE;
ALTER SYSTEM SET REMOTE_OS_ROLES=FALSE SCOPE=SPFILE;

6. 各データベース・インスタンスでALTER SYSTEM文を実行して、手順5に示すとおりにパラメータを設定します。

7. 各データベース・インスタンスを再起動します。

CONNECT SYS AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

手順2: スタンバイ・データベースの構成

スタンバイ・データベースの構成は、スタンバイ・データベースに使用するデータベース内で行うことができます。

1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

sqlplus sys as sysdba
Enter password: password

2. マルチテナント環境で、適切なPDBに接続します。

次に例を示します。

CONNECT bea_dvacctmgr@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

3. スタンバイ・データベース・インスタンスをマウントします。

ALTER DATABASE MOUNT STANDBY DATABASE;

4. 次の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;
ALTER SYSTEM SET REMOTE_OS_AUTHENT=FALSE SCOPE=SPFILE;
ALTER SYSTEM SET REMOTE_OS_ROLES=FALSE SCOPE=SPFILE;

5. データベース・インスタンスを再起動またはマウントします。

次に例を示します。

SHUTDOWN IMMEDIATE
STARTUP

6. 次のスタンバイ・インスタンスをマウントします。

7. 管理リカバリを次のように再起動します。

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;

8. Data Guard Brokerを使用している場合は、コマンド・ラインから構成を再有効化します。

dgmgrl sys
Enter password: password

DGMGRL> enable configuration;

このコマンドにより、変更内容がプライマリ・データベースのOracle Database Vaultインストールで作成された物理スタンバイ・データベースに適用されます。

9. 各物理スタンバイ・データベースで、物理スタンバイ・インストール・プロセスを繰り返します。たとえば、物理スタンバイ・データベースが3つある場合は、各スタンバイ・データベースでこれらの手順を実行します。

Oracle Database構成アシスタントを使用したOracle Internet Directoryの登録

Oracle Internet Directoryは、Oracle Database Vault対応のデータベース内で使用できます。

しかし、Oracle Database Configuration Assistant (DBCA)を使ってOracle Internet Directory (OID)を登録したい場合は、最初にOracle Database Vaultを無効にする必要があります。

関連項目

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

11 Oracle Database Vault環境でのDBA操作

データベース管理者は、Oracle Data Pumpなどの製品と連携したDatabase Vaultの使用など、Oracle Database Vault環境で操作を実行できます。

内容は次のとおりです。

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

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

- Oracle Database VaultでのOracle Schedulerの使用

- Oracle Recovery ManagerとOracle Database Vault

- Oracle Database VaultでOracle Streamsを使用するための権限

- Oracle Database VaultでXStreamを使用するための権限

- Oracle Database VaultでOracle GoldenGateを使用するための権限

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

- スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン

- Oracle Database Vault環境でのORADEBUGユーティリティの使用

Oracle Database VaultのOracle Enterprise Managerとの使用

Oracle Database Vaultの管理者は、Oracle Enterprise Manager Cloud Controlで、他のデータベースへのポリシー伝播などのタスクを実行することができます。

内容は次のとおりです。

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

- Oracle Database Vaultポリシーに対するEnterprise Manager Cloud Controlアラート

- Enterprise Manager Cloud ControlにおけるOracle Database Vault固有レポート

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

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

Database VaultポリシーをDatabase Vaultで保護される他のデータベースに伝播できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。
ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「Database Vault」ホーム・ページの「ポリシー伝播」で、「Database Vaultポリシー伝播」を選択します。
「ポリシー伝播」サブページの「使用可能なポリシー」領域に、現在のデータベースに作成されたOracle Database Vaultポリシーのサマリーが表示されます。ここから、ポリシーを他のデータベースに伝播できます。

3. 「使用可能なポリシー」で、他のデータベースに伝播する各ポリシーを選択します。
デフォルトでは、すべてのポリシーが選択されています。

4. 「宛先データベース」で「追加」ボタンをクリックします。

5. 「検索と選択: Database Vaultに対応した宛先データベース」で宛先データベースを検索し、ポリシーの伝播先データベースを選択します。「選択」ボタンをクリックします。

6. 「宛先データベース」で次の処理を行います。

a. 「宛先データベースに資格証明を適用」で、伝播するポリシーを含むDatabase Vaultデータベースの管理者のユーザー名とパスワードを入力します。
この機能により、Database Vault管理者のユーザー名とパスワードが、選択したすべての宛先データベースに適用されます。

b. ポリシーの伝播先データベースを選択します。

c. 各データベースのDatabase Vault管理者のユーザー名とパスワードを入力します。

d. 「Apply」ボタンをクリックします。

7. 「伝播オプション」ページで、次のオプションのオン/オフを選択します。
シードされたレルム、コマンド・ルール、ルール・セットなどに加えられた変更は、宛先データベースに伝播されません。カスタム作成されたデータのみが伝播されます。

- 失敗時にリストアします。: ポリシーの伝播でエラーが発生した場合に、伝播がロールバックされます。つまり、宛先データベースの元のポリシーがリストアされます。このオプションを選択しない場合、宛先データベースでポリシーの伝播が続けられ、エラーは無視されます。

- ユーザー定義ポリシーが存在する場合は、伝播をスキップします。: 宛先データベースにユーザー定義ポリシーがすでにある場合、ポリシーの伝播は試行されません。このオプションを選択しない場合、ユーザー定義ポリシーが宛先データベースにあるかどうかに関係なく、既存のポリシーはすべてクリアされ、ソース・データベースのポリシーが宛先データベースに適用されます。

- Database VaultメトリックのEnterprise Managerメトリックしきい値を伝播します。: ソース・データベースにOracle Database Vaultメトリックしきい値が設定されている場合、これらのしきい値も宛先データベースに伝播されます。このオプションを選択しない場合、ポリシーのみが伝播され、Oracle Database Vaultしきい値は伝播されません。

8. 「OK」ボタンをクリックします。

9. 「確認」ウィンドウで「OK」をクリックします。
成功または失敗を示すメッセージが表示されます。伝播が成功した場合、ポリシーは宛先データベースでただちにアクティブになります。

Oracle Database Vaultポリシーに対するEnterprise Manager Cloud 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 Cloud ControlにおけるOracle Database Vault固有レポート

Database Vaultホーム・ページから、違反に関する情報を見つけることができます。

これらの違反は、次のとおりです。

- レルムおよびコマンド・ルール違反未遂トップ5

- データベース・ユーザーおよびクライアント・ホストによる違反未遂トップ5

- 違反未遂の詳細分析の時系列グラフィック・レポート

Database Vaultレポートの完全なアクセス権を持つには、DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールが付与されたユーザーとしてDatabase Vault Administratorにログインする必要があります。

関連項目:

Oracle Database Vaultレポート

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

DBSNMPユーザー・アカウントのパスワードを変更するには、あらかじめ、このアカウントからDV_MONITORロールを取り消しておく必要があります。

Oracle Database Vault環境では、DBSNMPユーザー・アカウントにはDV_MONITORロールが付与されます。(DBSNMPユーザーが自分自身のパスワードを変更する場合は、DV_MONITORロールを取り消さずにすぐに変更できます。)

1. DV_OWNERロールを付与されているアカウントを使用して、データベース・インスタンスにログインします。

2. DBSNMPユーザー・アカウントからDV_MONITORロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、DBSNMPユーザー・アカウントのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_MONITORロールをDBSNMPユーザー・アカウントに再び付与します。

Oracle Database VaultでのOracle Data Pumpの使用

データベース管理者は、Oracle Data PumpユーザーにDatabase Vault環境で作業する認可を付与します。

内容は次のとおりです。

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

- ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可

- ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可

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

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

Database Vault環境でOracle Data Pumpを使用するデータベース管理者がデータのエクスポートやインポートを行うには、Database Vault固有の権限が必要です。

これらの管理者は、標準的なOracle Data Pump権限の他に、これらの権限を持っていなければなりません。これらのユーザーがOracle Data Pumpのトランスポータブル表領域操作を実行する場合、特殊な認可が必要です。Oracle Database Vault環境でデータ・ポンプを使用するためにユーザーの認可を確認するには、DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューを問い合せます。

関連項目:

- Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

- トランスポータブル表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可

Database Vault環境でOracle Data Pumpのエクスポートおよびインポート操作を行う管理者に対しては、様々なタイプの権限を付与することができます。

内容は次のとおりです。

- Oracle Data Pumpの通常操作のユーザーへの認可について

- Oracle Data Pumpの通常操作に対するDatabase Vault権限のレベル

- Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可

- Oracle Data Pump権限のユーザーからの取消し

Oracle Data Pumpの通常操作のユーザーへの認可について

Oracle Data Pumpの権限を持つユーザーは、Database Vault環境で通常のOracle Data Pump操作を行うことができます。

フルレベルのData Pump権限を付与すると、これらのユーザーは、トランスポータブル・エクスポート/インポート操作も行えるようになります。

関連項目:
トランスポータブル・エクスポートとトランスポータブル・インポートの操作のみをユーザーが実行できるようにしたい場合は、「ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可」を参照してください

Oracle Data Pumpの通常操作に対するDatabase Vault権限のレベル

Oracle Database Vaultでは、Database Vault環境でのOracle Data Pumpの通常操作に必要な認可にいくつかのレベルがあります。

表11-1に、これらのレベルを示します。

表11-1 Oracle Data Pumpの通常操作に対する権限のレベル

シナリオ

必要な権限

データベース管理者は、データを別のスキーマにインポートします。

このユーザーには、BECOME USERシステム権限とIMP_FULL_DATABASEロールを付与する必要があります。脚注1ユーザーに付与されている権限を確認するには、USER_SYS_PRIVSデータ・ディクショナリ・ビューを問い合せます。

データベース管理者は、Database Vault保護なしのスキーマでデータをエクスポートまたはインポートします。

このユーザーには、標準のOracle Data Pump権限を付与する必要があります。EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールです。ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限を付与します。

データベース管理者は、保護スキーマでデータをエクスポートまたはインポートします。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の権限もこのユーザーに付与する必要があります。この認可は、EXPDPとIMPDPの両方のユーティリティに適用されます。後から、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERプロシージャを使用してこの権限を取り消すことができます。

ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限も付与します。

データベース管理者は、データベース全体の内容をエクスポートまたはインポートします。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロール、およびDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャで付与される権限の他に、このユーザーにはDV_OWNERロールも付与する必要があります。ユーザーがデータをインポートする場合は、このユーザーにBECOME USERシステム権限を付与します。

脚注1

デフォルトではBECOME USER権限はIMP_FULL_DATABASEロールに含まれますが、Oracle Database Vault環境ではこの権限は取り消されます。

Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可

データベース管理者に、Oracle Database Vault環境で通常操作にData Pumpを使用する権限を付与できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

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 Data Pumpの通常操作に必要なOracle Database Vault権限を、このユーザーに付与します。

たとえば、Data PumpユーザーDP_MGRに、データベース表EMPLOYEESのオブジェクトをエクスポートおよびインポートする権限を付与するには、次のように入力します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

DP_MGRのアクティビティを特定のスキーマに制限するには、次のプロシージャを入力します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

Data PumpユーザーDP_MGRに、データベース全体のオブジェクトをエクスポートおよびインポートする権限を付与するには、次のように入力します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

このプロシージャの詳細は、「AUTHORIZE_DATAPUMP_USERプロシージャ」を参照してください。

DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャの実行後は、 「DVSYS.DBA_DV_DATAPUMP_AUTHビュー」で説明するように、DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せてユーザーの認可を確認できます。

4. データベース全体をエクスポートする必要がある場合は、ユーザーにDV_OWNERロールを付与します。

GRANT DV_OWNER TO DP_MGR;

関連項目:

- AUTHORIZE_DATAPUMP_USERプロシージャ

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

Oracle Data Pump権限のユーザーからの取消し

通常操作のためにOracle Data Pumpを使用するデータベース管理者の認可を、取り消すことができます。

1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。

REVOKE DV_OWNER FROM DP_MGR;

2. DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せて、Oracle Data Pumpの認可が付与されているユーザーを探します。

SELECT GRANTEE, SCHEMA, OBJECT FROM DVSYS.DBA_DV_DATAPUMP_AUTH;

3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USERコマンドを作成します。

次に例を示します。

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

この権限取消しが、元の権限付与アクションを補完するものであることを確認します。すなわち、最初にDP_MGRにデータベース全体に対する権限を付与した場合、次のコマンドは機能しません。

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR');

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR', 'HR', 'EMPLOYEES');

関連項目:

- UNAUTHORIZE_DATAPUMP_USERプロシージャ

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

ユーザーへのData Pumpのトランスポータブル・エクスポート操作およびトランスポータブル・インポート操作の認可

Oracle Data Pumpのトランスポータブル操作を行う必要のあるユーザーには、異なるレベルの権限を付与することができます。

内容は次のとおりです。

- Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について

- Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル

- Database VaultにおけるData Pumpのトランスポータブル操作をユーザーに認可

- トランスポータブル表領域権限のユーザーからの取消し

Oracle Data Pumpのトランスポータブル操作のユーザーへの認可について

ユーザーには、異なるレベルのトランスポータブル操作権限を付与することができます。

トランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行する権限のみをユーザーに付与する場合は、タスクに基づいて、ユーザーに適切な権限を付与する必要があります。

関連項目:
Databese Vault環境で通常操作を行うユーザーにOracle Data Pumpの権限が必要な場合は、「ユーザーへのData Pumpの通常エクスポート操作および通常インポート操作の認可」も参照してください。

Data Pumpのトランスポータブル操作に対するDatabase Vault権限のレベル

Oracle Database Vaultの場合、Database Vault環境でトランスポータブル・エクスポートとトランスポータブル・インポートの操作を実行するユーザーに必要な権限には、いくつかのレベルがあります。

表11-2に、これらのレベルを示します。

表11-2 Oracle Data Pumpのトランスポータブル操作に対する権限のレベル

シナリオ

必要な権限

データベース管理者は、Database Vault保護なしの表領域または表のトランスポータブル・エクスポートを実行します。

このユーザーには、標準のOracle Data Pump権限を付与する必要があります。EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールです。

データベース管理者は、Database Vault保護ありの表領域のトランスポータブル・エクスポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンドルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用してDatabase Vault固有のトランスポータブル表領域権限もこのユーザーに付与する必要があります。後から、DBMS_MACADM.UNAUTHORIZE_TTS_USERプロシージャを使用してこの権限を取り消すことができます。

完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、これらの操作を実行できます。

データベース管理者は、Database Vault保護ありの表領域内で表のトランスポータブル・エクスポートを実行します(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、エクスポートされる表を含む表領域に対するDatabase Vault固有のトランスポータブル表領域権限もこのユーザーに付与する必要があります。

完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャで)、これらの操作を実行できます。

データベース管理者は、データベース全体の内容のトランスポータブル・エクスポートを実行します。

DV_OWNER、EXP_FULL_DATABASE、IMP_FULL_DATABASEの各ロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の完全データベース・レベルのOracle Data Pump権限もこのユーザーに付与する必要があります。このユーザーに対してDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを実行する必要はありません。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護なしの表領域または表のトランスポータブル・インポートを実行します。

データベース管理者と接続ユーザー両方のEXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、ネットワーク・リンクで指定されている接続ユーザーにDV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありの表領域のトランスポータブル・インポートを実行します(たとえば、その表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、ネットワーク・リンクで指定されている接続ユーザーに、その表領域のDatabase Vault固有トランスポータブル表領域権限も付与する必要があります。接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database Vault固有の完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、これらの操作を実行できます。

データベース管理者は、ネットワーク・リンクを使用して、Database Vault保護ありのトランスポータブル表領域内で表をインポートします(たとえば、エクスポートする表を含む表領域に存在する表オブジェクトのレルムやコマンド・ルール)。

EXP_FULL_DATABASEロールとIMP_FULL_DATABASEロールの他に、DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを使用して、エクスポートされる表を含む表領域に対するDatabase Vault固有のトランスポータブル表領域権限も、接続ユーザーに付与する必要があります。ネットワーク・リンクで指定されている接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database Vault固有の完全データベース・レベルのOracle Data Pump権限を付与されたユーザーも、(DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを介して)、この操作を実行できます。

データベース管理者は、ネットワーク・リンクを使用してデータベース全体の内容のトランスポータブル・インポートを実行します。

DV_OWNERロールの他に、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用してDatabase Vault固有の完全データベース・レベルのOracle Data Pump権限も、接続ユーザーに付与する必要があります。このユーザーに対してDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを実行する必要はありません。ネットワーク・リンクで指定されている接続ユーザーに、DV_DATAPUMP_NETWORK_LINKロールも付与する必要があります。

Database VaultにおけるData Pumpのトランスポータブル操作をユーザーに認可

ユーザーがDatabase Vault環境でOracle Data Pumpのトランスポータブル・エクスポートおよびインポートを実行することを認可できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

2. 権限を付与するユーザーが、Oracle Data Pumpの使用に必要なEXP_FULL_DATABASEおよびIMP_FULL_DATABASEロールを付与されていることを確認します。

SELECT GRANTEE, GRANTED_ROLE FROM DBA_ROLE_PRIVS
WHERE GRANTED_ROLE LIKE '%FULL%';

3. トランスポータブル・エクスポートを実行する、またはネットワーク・リンクを使用してデータベースの内容全体のトランスポータブル・インポートを実行する場合は、DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを使用して、完全データベース・レベルのOracle Data Pump権限を付与します。それ以外の場合、この手順は無視してください。

次に例を示します。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('DP_MGR');

4. Database Vault固有のトランスポータブル表領域権限のみが必要な場合は、このユーザーにその権限を付与します。

次に例を示します。

EXEC DBMS_MACADM.AUTHORIZE_TTS_USER('DP_MGR', 'HR_TS');

5. トランスポータブル・インポート操作を実行するユーザーが、ネットワーク・リンクを使用して操作を実行したい場合は、このユーザーにDV_DATAPUMP_NETWORK_LINKロールを付与します。

次に例を示します。

GRANT DV_DATAPUMP_NETWORK_LINK TO DP_MGR;

6. トランスポータブル・エクスポートを実行するユーザー、またはネットワーク・リンクを使用してデータベース全体のトランスポータブル・インポートを実行する場合は、このユーザーにDV_OWNERロールを付与します。

GRANT DV_OWNER TO DP_MGR;

関連項目:

- DVSYS.DBA_DV_TTS_AUTHビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

- AUTHORIZE_TTS_USERプロシージャ

- AUTHORIZE_DATAPUMP_USERプロシージャ

- DV_DATAPUMP_NETWORK_LINK Data Pumpネットワーク・リンク・ロール

トランスポータブル表領域権限のユーザーからの取消し

Data Pumpを使用するデータベース管理者の権限を取り消すことができます。

1. ユーザーにDV_OWNERロールが付与されている場合は、オプションでこのロールを取り消します。

REVOKE DV_OWNER FROM DP_MGR;

2. DVSYS.DBA_DV_TTS_AUTHデータ・ディクショナリ・ビューに問い合せて、Oracle Data Pumpの認可が付与されているユーザーを探します。

SELECT GRANTEE, TSNAME FROM DVSYS.DBA_DV_TTS_AUTH;

3. 手順2で収集した情報を使用して、DBMS_MACADM.UNAUTHORIZE_TTS_USER文を作成します。

次に例を示します。

EXEC DBMS_MACADM.UNUTHORIZE_TTS_USER('DP_MGR', 'HR_TS');

詳細は「UNAUTHORIZE_TTS_USERプロシージャ」を参照してください。

4. トランスポータブル・エクスポートを実行した、またはネットワーク・リンクを使用してデータベースの内容全体のトランスポータブル・インポートを実行した場合は、完全データベース・レベルのOracle Data Pump権限を取り消します。

次に例を示します。

EXEC DBMS_MACADM.UNAUTHORIZE_DATAPUMP_USER('DP_MGR');

5. すでにトランスポータブル・インポート操作を実行したユーザーが、ネットワーク・リンクを使用して操作を実行した場合は、このユーザーからDV_DATAPUMP_NETWORK_LINKロールを取り消します。

次に例を示します。

REVOKE DV_DATAPUMP_NETWORK_LINK FROM DP_MGR;

関連項目:

- DVSYS.DBA_DV_TTS_AUTHビュー

- UNAUTHORIZE_TTS_USERプロシージャ

- UNAUTHORIZE_DATAPUMP_USERプロシージャ

- DV_DATAPUMP_NETWORK_LINK Data Pumpネットワーク・リンク・ロール

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

Oracle Data Pumpのデータベース管理者に適切な権限を付与すると、ユーザーがエクスポートまたはインポート操作を行うことができるようになります。

作業を開始する前に、次のガイドラインに従う必要があります。

- データベースのデータファイルの完全バックアップを作成します。これにより、新しくインポートしたデータが気に入らなかった場合、容易にデータベースを元の状態に戻すことができます。このガイドラインは、侵入者が自分のポリシーを使用するようにOracle Data Pumpエクスポート・データを変更した場合に特に有用です。

- 複数のスキーマまたは表をエクスポートおよびインポートする方法を決定します。DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャでは複数のスキーマまたは表は指定できませんが、次のいずれかの方法でこの作業を行うことできます。

- それぞれのスキーマまたは表に対してDBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを実行し、次にEXPDPユーティリティとIMPDPユーティリティのSCHEMASパラメータまたはTABLESパラメータのオブジェクトのリストを指定します。

- 全データベースのエクスポートまたはインポート操作を実行します。この場合、次のガイドランを参照してください。

- データベース全体のエクスポートまたはインポート操作を実行する場合は、EXPDPまたはIMPDP FULLオプションをYに設定します。この設定により、DVSYSスキーマが取得されるため、ユーザーにDV_OWNERロールが付与されていることを確認してください。

次の点に注意してください。

- Oracle Database Vaultが有効になっている場合、ダイレクト・パス・オプション(direct=y)でレガシーのEXPユーティリティとIMPユーティリティは使用できません。

- DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャを通じてDatabase Vault固有のOracle Data Pump権限を付与されている、またはDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャを通じてトランスポータブル表領域の権限を付与されているユーザーは、データベース・オブジェクトのエクスポートとインポートを実行できますが、通常アクセス権のないスキーマ表に対するSELECT問合せなど、他のアクティビティを実行することはできません。同様に、指定されたデータベース・オブジェクト外部のオブジェクトに対してData Pump操作を実行することもできません。

- データベース全体をエクスポートまたはインポートするユーザーにDV_OWNERロールを付与する必要があります。これは、データベース全体のエクスポートには、Oracle Database Vaultポリシーを格納するDVSYSスキーマへのアクセスが必要になるためです。ただし、DVSYSスキーマ自体をエクスポートすることはできません。Data Pumpは、保護定義のみをエクスポートします。インポート・プロセスを開始する前に、ターゲット・データベースにはDVSYSスキーマが必要であり、Database Vaultが有効になっている必要があります。)逆に、インポートされたポリシーをターゲット・データベースに適用するData Pumpインポート操作では、内部的にDBMS_MACADM PL/SQLパッケージが使用され、ここでData PumpユーザーにDV_OWNERロールが必要になります。

関連項目:
Oracle Data Pumpの詳細は、『Oracle Databaseユーティリティ』を参照してください。

Oracle Database VaultでのOracle Schedulerの使用

データベース・ジョブをスケジュールするユーザーには、Oracle Database Vault固有の権限が必要です。

内容は次のとおりです。

- Oracle Database VaultでのOracle Schedulerの使用について

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

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

Oracle Database VaultでのOracle Schedulerの使用について

付与する必要がある認可レベルは、タスクを実行する管理者のスキーマによって異なります。

次のシナリオが想定されます。

- 管理者が、独自のスキーマでジョブをスケジュールする場合。スキーマがレルムで保護されている場合を除き、データベース・ジョブをスケジュールする権限が付与されている管理者は、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に対する権限の付与

Database Vault環境で、ユーザーにデータベース・ジョブをスケジュールする権限を付与できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

これらのどちらかのロールを付与されているユーザーのみ、必要な権限を付与できます。

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プロシージャ」を参照してください。

4. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、ユーザーに権限が付与されていることを確認してください。

SELECT GRANTEE,SCHEMA FROM DVSYS.DBA_DV_JOB_AUTH WHERE GRANTEE = 'user_name';

このビューの詳細は、「DVSYS.DBA_DV_JOB_AUTHビュー」を参照してください。

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

ユーザーからデータベース・ジョブをスケジュールする権限を取り消すことができます。

1. DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せて、ユーザーの認可を探します。

SELECT GRANTEE, SCHEMA FROM DVSYS.DBA_DV_JOB_AUTH WHERE GRANTEE='username';

2. 前の手順で収集した情報を使用して、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 Recovery ManagerとOracle Database Vault

Oracle Database Vault環境ではRecovery Manager(RMAN)を使用できます。

Oracle Database VaultでRMANを使用する場合の機能は、標準のOracle Database環境での機能と同じです。

関連項目:

- 『Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユーザーズ・ガイド』

- 『Oracle Database Recovery Managerリファレンス』

Oracle Database VaultでOracle Streamsを使用するための権限

Oracle Database Vault環境でOracle Streamsを使用する場合、適切な権限が必要です。

必要な権限は、次のとおりです。

- Oracle Streams取得プロセスを構成するには、DV_STREAMS_ADMINロールが付与されている必要があります。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

関連項目:

- DV_STREAMS_ADMINロールの詳細は、「DV_STREAMS_ADMIN Oracle Streams構成ロール」を参照してください

- DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください

Oracle Database VaultでXStreamを使用するための権限

Oracle Database Vault環境でOracle Streamsを使用する場合、適切な権限が必要です。

これらの権限は次のとおりです。

- XStreamを構成するには、DV_XSTREAM_ADMINロールが付与されている必要があります。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

関連項目:

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

- 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ロールが付与されている必要があります。

- Oracle GoldenGateのTRANLOGOPTIONS DBLOGREADERメソッドを使用してREDOログにアクセスするには、DV_GOLDENGATE_REDO_ACCESSロールが付与されている必要があります。

- レプリケートされた側でユーザーを作成する場合は、DV_ACCTMGRロールがあらかじめ付与されていないければなりません。

- レルムで保護された表に変更を適用するには、そのレルムへのアクセスが認可されている必要があります。次に例を示します。

EXEC DBMS_MACADM.ADD_AUTH_TO_REALM('realm_name','username');

関連項目:

- DV_GOLDENGATE_ADMINロールの詳細は、「DV_GOLDENGATE_ADMIN GoldenGate管理ロール」を参照してください

- DV_GOLDENGATE_REDO_ACCESSロールの詳細は、「DV_GOLDENGATE_REDO_ACCESS GoldenGate REDOログ・ロール」を参照してください

- DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャの詳細は、「ADD_AUTH_TO_REALMプロシージャ」を参照してください

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

Oracle Database Vault環境でデータ・マスキングを行うには、適切な権限がなければなりません。

内容は次のとおりです。

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

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

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

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

関連項目:

データ・マスキングの詳細は、『Oracle Database 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デフォルト・コンポーネント保護レルムに追加するとデータ・ディクショナリ・レルム認可を付与できます。

Oracleデータ・ディクショナリでは、SYSおよびSYSTEMなどのOracle Databaseカタログ・スキーマへのアクセスが制御されます。(これらのスキーマをすべて示すリストについては、「デフォルトのレルム」を参照)。システム権限およびデータベース管理者ロールを付与する機能も制御されます。ユーザーをOracleデフォルト・コンポーネント保護レルムに追加する場合、これらのユーザーに、Oracleデータ・ディクショナリに関連付けられている権限がすでにあれば、これらのユーザーはDatabase Vault環境で同じ権限を持ちます。したがって、ユーザーをこのレルムに追加する場合、このユーザーが信頼できるユーザーであることを確認します。

- Oracleデフォルト・コンポーネント保護レルムにユーザーを追加するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

次に例を示します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name   => 'Oracle Default Component Protection Realm',
grantee      => 'DBA_JSMITH',
auth_options => DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT);
END;
/

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

マスクする表またはスキーマへのアクセス権をユーザーに付与するには、適切なレルムに対してユーザーを認可する必要があります。

データ・マスクする表または表のスキーマがレルム内にある場合、データ・マスキングを行うユーザーを参加者または所有者としてレルム認可に追加する必要があります。表またはスキーマに、他のレルムで保護された表内にある依存オブジェクトがある場合、それらのレルムに対する参加者または所有者認可もユーザーに付与する必要があります。

- データ・マスクするオブジェクトを保護するレルムに対して、データ・マスキング・ユーザーを認可するには、DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャを使用します。

次の例では、ユーザー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;
/

データ・マスキングの権限を制御するコマンド・ルールの作成

Oracle Database環境でデータ・マスキングを使用するには、表、パッケージ、およびトリガの管理権限が必要です。

データ・マスキングを行うには、ユーザーは、マスキング・オブジェクトに対する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;
/

スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン

リリース12c以降のスタンドアロンのOracle DatabaseはPDBに変換可能で、さらにそのPDBをCDBにプラグインすることができます。

1. DV_OWNERロールを付与されているユーザーとしてルートに接続します。

次に例を示します。

sqlplus c##sec_admin
Enter password: password

2. CONTAINER = CURRENTを指定して、ユーザーSYSにDV_PATCH_ADMINロールを付与します。

GRANT DV_PATCH_ADMIN TO SYS CONTAINER = CURRENT;

3. ルートで、SYSOPERシステム権限を持つユーザーSYSとして接続します。

次に例を示します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

4. データベースを読取り専用モードで再起動します。

次に例を示します。

SHUTDOWN IMMEDIATE
STARTUP MOUNT
ALTER DATABASE OPEN READ ONLY

5. Database Vault対応のデータベースに、DV_OWNERロールを持つユーザーとして接続します。

次に例を示します。

CONNECT sec_admin@dv_db

6. このデータベースで、ユーザーSYSにDV_PATCH_ADMINロールを付与します。

GRANT DV_PATCH_ADMIN TO SYS;

7. オプションで、DBMS_PDB.CHECK_PLUG_COMPATIBILITYファンクションを実行して、切断されたPDBがCDBと互換性があるかどうかを確認します。

ファンクションを実行するとき、次のパラメータを設定します。

- pdb_descr_file: PDBの記述を含むXMLファイルへのフルパスを設定します。

- store_report: PDBにCDBと互換性がない場合にレポートを生成するかどうかを指定します。レポートを生成する場合はTRUEに、レポートを生成しない場合はFALSEに設定します。生成されたレポートは、PDB_PLUG_IN_VIOLATIONS一時表に格納され、PDBにCDBとの互換性がない場合にのみ生成されます。

たとえば、/disk1/usr/dv_db_pdb.xmlファイルで記述されているPDBに現在のCDBと互換性があるかどうかを判断するには、次のPL/SQLブロックを実行します。

SET SERVEROUTPUT ON
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '/disk1/usr/dv_db_pdb.xml',
store_report   => TRUE)
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
/

出力がYESの場合はPDBに互換性があり、次の手順に進むことができます。

出力がNOの場合は、PDBに互換性がありません。PDB_PLUG_IN_VIOLATIONS一時表を調べると、互換性がない理由を確認できます。

8. PDBを記述するXMLファイルを作成します。

次に例を示します。

BEGIN
DBMS_PDB.DESCRIBE(
pdb_descr_file => '/disk1/oracle/dv_db.xml');
END;
/

9. CREATE PLUGGABLE DATABASE文を実行し、USING句でXMLファイルを指定します。要求された場合には、他の句を指定します。

次に例を示します。

CREATE PLUGGABLE DATABASE dv_db_pdb AS CLONE USING 'dv_db.xml' NOCOPY;

10. 作成したPDBに、SYSDBA管理権限を持つユーザーSYSとして接続します。

CONNECT SYS@dv_db_pdb AS SYSDBA

11. noncdb_to_pdb.sqlスクリプトを実行します。

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

12. 読書き制限モードで、このPDBを開きます。

ALTER PLUGGABLE DATABASE dv_db_pdb OPEN READ WRITE RESTRICTED;

13. 次のプロシージャを実行してPDBを同期します。

EXECUTE DBMS_PDB.SYNC_PDB;

14. DV_OWNERロールを付与されているユーザーとしてルートに接続します。

sqlplus c##sec_admin
Enter password: password

15. CONTAINER = CURRENTを指定して、ユーザーSYSからDV_PATCH_ADMINロールを取り消します。

REVOKE DV_PATCH_ADMIN FROM SYS CONTAINER = CURRENT;

16. Database Vault対応のレガシー・データベースに、SYSOPERシステム権限を持つユーザーSYSとして接続します。

CONNECT SYS@dv_db_pdb AS SYSOPER

17. このデータベースを再起動します。

次に例を示します。

SHUTDOWN IMMMEDIATE
STARUP

18. ユーザーSYSからDV_PATCH_ADMINロールを取り消します。

REVOKE DV_PATCH_ADMIN FROM SYS;

Oracle Database Vault環境でのORADEBUGユーティリティの使用

ORADEBUGユーティリティは、主にOracleサポートがOracle Databaseで生じる問題を診断する場合に使用します。

ユーザーがOracle Database Vaultが有効な環境でORADEBUGユーティリティを実行できるかどうかを制御できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

2. 必要に応じて、ORADEBUGがすでに無効か有効かを確認します。

SELECT * FROM DVSYS.DBA_DV_ORADEBUG;

3. 次のいずれかのプロシージャを実行します。

- ORADEBUGの使用を無効にする場合:

EXEC DBMS_MACADM.DISABLE_ORADEBUG;

- ORADEBUGの使用を有効にする場合:

EXEC DBMS_MACADM.ENABLE_ORADEBUG;

関連項目:

- DVSYS.DBA_DV_ORADEBUGビュー

- DISABLE_ORADEBUGプロシージャ

- ENABLE_ORADEBUGプロシージャ

12 Oracle Database Vaultのスキーマ、ロールおよびアカウント

Oracle Database Vaultには、Database Vaultオブジェクトが含まれるスキーマや、特定のタスクの職務分離を提供するロール、およびデフォルト・ユーザーのアカウントが用意されています。

内容は次のとおりです。

- Oracle Database Vaultスキーマ

- Oracle Database Vaultロール

- 登録中に作成されるOracle Database Vaultアカウント

- バックアップOracle Database Vaultアカウント

Oracle Database Vaultスキーマ

Oracle Database VaultスキーマのDVSYSとDVFは、Oracle Database Vaultの管理と実行時処理をサポートします。

DVSYSとDVFには以下が含まれます。

- DVSYSスキーマ: Oracle Database Vaultのスキーマおよび関連オブジェクトを所有します。

- DVFスキーマ: ファクタ・アイデンティティを取得するために作成されるOracle Database Vaultのファンクションを所有します。

DVSYSスキーマ

DVSYSスキーマには、Oracle Database Vaultのデータベース・オブジェクトが含まれます。

これらのオブジェクトはOracle Database Vaultの構成情報を保存し、Oracle Database Vaultの管理と実行時処理をサポートします。

デフォルト・インストールでは、DVSYSスキーマはロックされています。DVSYSスキーマは、AUDIT_TRAIL$表も所有します。

マルチテナント・データベース環境で、DVSYSスキーマは共通スキーマとみなされます(すなわち、DVSYS内のオブジェクト(表、ビュー、PL/SQLパッケージなど)は任意の子プラガブル・データベース(PDB)で自動的に利用できます)。また、DVSYSスキーマ・アカウントは、ALTER SESSION文を使用して他のコンテナに切り替えることはできません。

Oracle Database Vaultでは、保護スキーマ設計を使用してDVSYSスキーマを保護します。保護スキーマ設計により、スキーマはシステム権限(SELECT ANY TABLE、CREATE ANY VIEW、DROP ANYなど)の不正使用から保護されます。

DVSYSスキーマは、Oracle Database Vaultによって次のように保護されます。

- DVSYS保護スキーマとその管理ロールは削除できません。デフォルトで、DVSYSアカウントはロックされています。

- デフォルトでは、ユーザーはDVSYSアカウントに直接ログインできません。ユーザーがこのアカウントに直接ログインできるように制御するには、DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTSプロシージャを実行してユーザーがログインできないようにして、DBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTSプロシージャを実行してログインを許可します。

- CREATE USER、ALTER USER、DROP USER、CREATE PROFILE、ALTER PROFILE、DROP PROFILEなどの文は、DV_ACCTMGRロールを持つユーザーのみが発行できます。SYSDBA管理権限でログインしたユーザーは、「アカウント/プロファイルを保守可能」ルール・セットを変更して許可された場合のみこれらの文を発行できます。

- データベース定義言語(DDL)およびデータ操作言語(DML)のコマンドに対する強力なANYシステム権限は、保護スキーマではブロックされます。つまり、DVSYSスキーマのオブジェクトは、スキーマ・アカウント自体によって作成される必要があります。また、スキーマ・オブジェクトへのアクセスは、オブジェクト権限の付与により認可される必要があります。

- DVSYSスキーマのオブジェクト権限は、スキーマのDatabase Vault管理ロールにのみ付与できます。つまり、ユーザーは、事前定義済管理ロールによってのみ保護スキーマにアクセスできます。

- スキーマのDatabase Vault事前定義済管理ロールに対してALTER ROLE文を発行できるのは、保護されたスキーマ・アカウントDVSYSのみです。Oracle Database Vaultの事前定義済管理ロールの詳細は、「Oracle Database Vaultのロール」で説明します。

- 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でそのファクタの取得ファンクションが新たに作成され、このスキーマに保存されます。

マルチテナント環境で、DVFユーザーはALTER SESSION文を使用して他のコンテナに切り替えることはできません。

デフォルトでは、ユーザーはDVFアカウントに直接ログインできません。ユーザーがこのアカウントに直接ログインできるように制御するには、DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTSプロシージャを実行してユーザーがログインできないようにして、DBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTSプロシージャを実行してログインを許可します。

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_DATAPUMP_NETWORK_LINK Data Pumpネットワーク・リンク・ロール

- DV_STREAMS_ADMIN Oracle Streams構成ロール

- DV_XSTREAM_ADMIN XStream管理ロール

- DV_GOLDENGATE_ADMIN GoldenGate管理ロール

- DV_GOLDENGATE_REDO_ACCESS 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の管理に必要な一連のロールが用意されています。

図12-1は、これらのロールがデータベース内の職務分離の第1段階を実現するために設計されていることを示しています。これらのロールをどのように使用するかは、会社の要件によって異なります。

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

注意:

追加のオブジェクト権限およびロールをOracle Database Vaultロールに付与して、権限の範囲を拡大できます。たとえば、SYSDBA管理権限でログインしたユーザーは、オブジェクトがDVSYSスキーマまたはレルムにないかぎり、オブジェクト権限をOracle Database Vaultロールに付与できます。

関連項目:

ロール管理の一般的なガイドラインについては、『Oracle Databaseセキュリティ・ガイド』を参照してください

Oracle Database Vaultロールの権限

Oracle Database Vaultのロールは、職務分離の利点が最大限に高まるよう設計されています。

DV_PATCH_ADMIN、DV_STREAMS_ADMIN、DV_XSTREAM、DV_GOLDENGATE_ADMIN、およびDV_GOLDENGATE_REDO_ACCESSロールは、システム権限がないため、次の表には含まれていません。

表12-1に、Oracle Database Vaultロールで使用できる権限をまとめています。

表12-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スキーマ、EXECUTE

あり脚注1

あり脚注2

なし

なし

なし

なし

なし

なし

なし

DVSYSスキーマ, SELECT

あり

あり

あり

あり(一部のDatabase Vaultビュー)脚注3

なし

なし

なし

なし脚注4

あり(一部のDatabase Vault表およびビュー)脚注5

DVSYSスキーマ, DELETE

あり(一部のDatabase Vault表およびビュー)脚注6

なし

なし

なし

なし

なし

なし

なし

あり(一部のDatabase Vault表およびビュー)脚注7

DVSYSスキーマ、オブジェクトの権限の付与

なし

なし

なし

なし

なし

なし

なし

なし

なし

DVFスキーマ, EXECUTE

あり

なし

なし

なし

なし

なし

なし

なし

なし

DVFスキーマ, SELECT

あり

なし

なし

あり

なし

なし

なし

なし

なし

Database Vaultの監視

あり

あり

あり

あり

なし

なし

なし

なし

なし

Database Vaultレポートの実行

あり

あり

なし

あり

なし

なし

なし

なし

なし

SYSスキーマ, SELECT

あり

なし

あり

あり(DV_OWNERおよびDV_ADMINと同じシステム・ビュー)

なし

なし

なし

なし

なし

SYSMANスキーマ, SELECT

あり(一部)

なし

なし

あり(一部)

なし

なし

なし

なし

なし

CREATE、ALTER、DROPユーザー・アカウントおよびプロファイル脚注8

なし

なし

なし

なし

あり

なし

なし

なし

なし

レルムを定義するスキーマ内のオブジェクトの管理脚注9

なし

なし

なし

なし

なし

あり脚注10

なし

なし

なし

RESOURCEロール権限脚注11

なし

なし

なし

なし

なし

なし

あり

なし

なし

脚注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$表、DV$ENFORCEMENT_AUDITビューおよびDV$CONFIGURATION_AUDITビューでSELECT文を実行できます。

脚注6

DV_AUDIT_CLEANUPは、AUDIT_TRAIL$表、DV$ENFORCEMENT_AUDITビューおよびDV$CONFIGURATION_AUDITビューでDELETE文を実行できます。

脚注7

DV_AUDIT_CLEANUPは、AUDIT_TRAIL$表、DV$ENFORCEMENT_AUDITビューおよびDV$CONFIGURATION_AUDITビューでDELETE文を実行できます。

脚注8

この権限には、DVSYSアカウントの削除や変更、およびDVSYSパスワードの変更のための権限は含まれません。

脚注9

この権限には、CREATE ANY、ALTER ANY、およびDROP ANYなどのANY権限が含まれます。

脚注10

このロールがあるユーザーは、システム権限を実行するには、レルム参加者またはレルム所有者である必要もあります。

脚注11

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ロールおよびその構成を管理できます。

『Oracle Database Vault管理者ガイド』では、このロールを使用するサンプル・アカウントはleo_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ロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、データベース・インスタンスにログインし、次の問合せを入力します。

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オプションも付与され、任意のOracle Database Vaultロール(DV_ACCTMGRを除く)を任意のアカウントに付与できます。また、このロールを付与されたユーザーは、Oracle Database Vaultレポートの実行およびOracle Database Vaultの監視ができます。

ヒント:

DV_OWNERユーザーの別個の名前付きアカウントを作成することをお薦めします。これにより、ユーザーが使用できなくなった場合(退社した場合など)、このユーザー・アカウントを再作成して、このユーザーにDV_OWNERロールを付与できます。

DV_OWNERがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを持つすべてのユーザーは、別のユーザーにDV_OWNERおよびDV_ADMINロールを付与できます。

このロールを付与されたアカウントは、付与されたDatabase Vaultロールを別のアカウントから取り消すことができます。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ロールを付与されているアカウントを使用して、データベース・インスタンスにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_OWNERロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_OWNERロールをパスワードを変更したユーザーに再び付与します。

Oracle Database Vaultセキュリティを無効にした場合のDV_OWNERステータス

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

DV_ADMIN Database Vault構成管理者ロール

DV_ADMINロールはOracle Database VaultのPL/SQLパッケージを制御します。

これらのパッケージは、Oracle Enterprise Manager Cloud ControlでDatabase Vault Administratorユーザー・インタフェースの基礎となるインタフェースです。

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ロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

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ユーザー・パスワードを変更するには、次のようにします。

1. DV_OWNERロールを付与されているアカウントを使用して、データベース・インスタンスにログインします。

2. パスワード変更が必要なユーザー・アカウントからDV_ADMINロールを取り消します。

3. DV_ACCTMGRロールを付与されているユーザーとして接続し、このユーザーのパスワードを変更します。

4. DV_OWNERユーザーとして接続し、DV_ADMINロールをパスワードを変更したユーザーに再び付与します。

Oracle Database Vaultセキュリティを無効にした場合のDV_ADMINステータス

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」 を参照してください

DV_MONITOR Database Vault監視ロール

DV_MONITORロールはOracle Database Vaultを監視するために使用します。

注意:

この機能は、Oracle Database 12cリリース1 (12.1.0.2)で更新されています。

DV_MONITORロールにより、Oracle Enterprise Manager Cloud Controlエージェントは、Oracle Database Vaultでレルムまたはコマンド・ルール定義に関する違反未遂および構成の問題を監視できます。

このロールにより、Cloud Controlでは、レルム定義およびコマンド・ルール定義を読み取ってデータベース間で伝播できます。

DV_MONITORロールに関連付けられた権限

DV_MONITORロールに関連付けられているシステム権限はありませんが、SYSオブジェクトとDVSYSオブジェクトに対するSELECT権限を持ちます。

DV_MONITORオブジェクト権限の完全なリストを検索するには、十分な権限(DV_OWNERなど)でデータベース・インスタンスにログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_MONITOR';

DV_MONITORがGRANT操作とREVOKE操作に及ぼす影響

デフォルトでは、DV_MONITORロールはDV_OWNERロールおよびDBSNMPユーザーに付与されます。

DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_MONITORロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_MONITORステータス

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- Oracle Database Vaultの監視

- Oracle Database Vaultの監査

- "Oracle Database Vaultの無効化と有効化 "

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

DV_SECANALYSTロールにより、ユーザーはアクティビティを分析できます。

注意:

この機能は、Oracle Database 12cリリース1 (12.1.0.2)で更新されています。

DV_SECANALYSTロールを使用して、Oracle Database Vaultレポートの実行およびOracle Database Vaultの監視を行います。

このロールは、データベース関連のレポートにも使用されます。また、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」 の説明にあるように、このロールを使用すると、DVSYSビューに問い合せることでDVSYS構成をチェックできます。

DV_SECANALYSTロールに関連付けられた権限

DV_SECANALYSTロールに関連付けられているシステム権限はありませんが、このロールには、DVSYSおよびDVFに関連するエンティティについてレポートするために、DVSYSスキーマ・オブジェクトと一部のSYSおよびSYSMANスキーマ・オブジェクトに対するSELECT権限があります。

DV_SECANALYSTオブジェクト権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_SECANALYST';

DV_SECANALYSTがGRANT操作とREVOKE操作に及ぼす影響

SYSやSYSTEMなど、GRANT ANY ROLEシステム権限のみを持つアカウントには、他のデータベース・アカウントに対してこのロールを付与する権限または取り消す権限がありません。

DV_OWNERロールを持つユーザーのみ、他のユーザーに対してこのロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_SECANALYSTステータス

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」 を参照してください

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

DV_MONITORロールはパージ操作のために使用します。

注意:

この機能は、Oracle Database 12cリリース1 (12.1.0.2)で更新されています。

非統合監査環境でDatabase Vault監査証跡のパージを担当するユーザーにDV_AUDIT_CLEANUPロールを付与します。

このロールを使用してパージ操作を完了する方法については、「Oracle Database Vault監査証跡のアーカイブおよびパージ」で説明します。

DV_AUDIT_CLEANUPロールに関連付けられた権限

DV_AUDIT_CLEANUPロールには、Database Vault関連の3つの監査ビューに対してSELECTおよびDELETE権限があります。

- DVSYS.AUDIT_TRAIL$表に対するSELECTおよびDELETE

- DVSYS.DV$ENFORCEMENT_AUDITビューに対するSELECTおよびDELETE

- DVSYS.DV$CONFIGURATION_AUDITビューに対するSELECTおよびDELETE

DV_AUDIT_CLEANUPがGRANT操作とREVOKE操作に及ぼす影響

デフォルトでは、このロールは、ADMIN OPTION付きのDV_OWNERロールに付与されます。

DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_AUDIT_CLEANUPロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_AUDIT_CLEANUPステータス

すべてのOracle Database Vaultロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」 を参照してください

DV_DATAPUMP_NETWORK_LINK Data Pumpネットワーク・リンク・ロール

DV_DATAPUMP_NETWORK_LINKロールはData Pumpインポート操作のために使用します。

Oracle Database Vault環境でNETWORK_LINKトランスポータブルData Pumpインポート操作の実行を担当するユーザーに、DV_DATAPUMP_NETWORK_LINKロールを付与します。

このロールを使用すると、Oracle Data PumpのNETWORK_LINKトランスポータブル・インポート・プロセスをDatabase Vaultで厳格に制御できます。ただし、通常のOracle Data Pump操作を実行する方法は変更または制限されません。

関連項目:

Oracle Database VaultでのOracle Data Pumpの使用

DV_DATAPUMP_NETWORK_LINKロールに関連付けられた権限

DV_DATAPUMP_NETWORK_LINKロールに関連付けられているシステム権限はありませんが、DVSYSオブジェクトに対するEXECUTE権限を持ちます。

DV_DATAPUMP_NETWORK_LINKオブジェクト権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

SELECT TABLE_NAME, OWNER, PRIVILEGE FROM DBA_TAB_PRIVS WHERE GRANTEE = 'DV_DATAPUMP_NETWORK_LINK';

DV_DATAPUMP_NETWORK_LINKロールでは、NETWORK_LINKトランスポータブルData Pumpインポート操作を実行するための十分なデータベース権限が提供されないことに注意してください。DV_DATAPUMP_NETWORK_LINKロールは、データベース管理者がOracle Database Vault環境でNETWORK_LINK トランスポータブルData Pumpインポートを実行するための追加要件(Oracle Data Pumpで現在必要な権限を補うもの)です。

DV_DATAPUMP_NETWORK_LINKがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_DATAPUMP_NETWORK_LINKロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_DATAPUMP_NETWORK_LINKステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

DV_STREAMS_ADMIN Oracle Streams構成ロール

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オブジェクト権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

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_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_STREAMS_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_STREAMS_ADMINステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

DV_XSTREAM_ADMIN XStream管理ロール

DV_XSTREAM_ADMINロールはOracle XStream用に使用します。

DV_XSTREAM_ADMINロールを、Oracle Database Vault環境でOracle 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_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_XSTREAM_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_XSTREAM_ADMINステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

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

- Oracle Database VaultでXStreamを使用するための権限

DV_GOLDENGATE_ADMIN GoldenGate管理ロール

DV_GOLDENGATE_ADMINロールはOracle GoldenGateとともに使用します。

thetoを、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環境でOracle GoldenGateを構成するための追加要件(Oracle GoldenGateで現在必要な権限を補うもの)です。

DV_GOLDENGATE_ADMINがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを付与されているユーザーのみ、別のユーザーに対してDV_GOLDENGATE_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_GOLDENGATE_ADMINステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

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

- Oracle Database VaultでOracle GoldenGateを使用するための権限

DV_GOLDENGATE_REDO_ACCESS GoldenGate REDOログ・ロール

DV_GOLDENGATE_REDO_ACCESSロールはOracle GoldenGateとともに使用します。

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_GOLDENGATE_REDO_ACCESSステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

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

- Oracle Database VaultでOracle GoldenGateを使用するための権限

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

DV_PATCH_ADMINロールはパッチ操作のために使用します。

Database Vaultメタデータに指定された監査ポリシーやDatabase Vault統合監査ポリシーに従ってDatabase Vault関連のすべての監査レコードを生成するには、DV_PATCH_ADMINロールを使用する前にDV_ADMINロールが付与されたユーザーとしてDBMS_MACADM.ENABLE_DV_PATCH_ADMIN_AUDITプロシージャを実行します。

一時的に、DV_PATCH_ADMINロールを、データベースのパッチ適用担当の任意のデータベース管理者に付与します。この管理者がパッチ操作を行う前に、DBMS_MACADM.ENABLE_DV_PATCH_ADMIN_AUDITプロシージャを実行します。このプロシージャでは、既存の監査構成に従って、DV_PATCH_ADMINロールを付与されたユーザーによるアクションのレルム、コマンド・ルールおよびルール・セットの監査が可能になります。混合モード監査を使用する場合、このユーザーのアクションはAUDIT_TRAIL$表に書き込まれます。純粋な統合監査が有効な場合、このユーザーのアクションを取得する統合監査ポリシーを作成する必要があります。

パッチ操作の完了後、データベース・パッチ操作の実行を担当するユーザーの監査をすぐに無効にしないでください。このように、DV_PATCH_ADMINロール・ユーザーのアクションを追跡できます。下位互換性を確保するために、このタイプの監査はデフォルトで無効になっています。

DV_PATCH_ADMINロールに関連付けられた権限

DV_PATCH_ADMINロールでは、保護されたデータにアクセスできません。

DV_PATCH_ADMINロールは、オブジェクト権限やシステム権限を持たない特殊なDatabase Vaultロールです。Database Vaultが有効なデータベースに、データベース管理者またはユーザーSYSがパッチを適用できるように(Database Vaultを無効にせずにデータベース・パッチを適用する場合など)設計されています。また、一部のパッチでは新しいスキーマを作成する必要があるため、データベース管理者はユーザーの作成も行うことができます。

DV_PATCH_ADMINがGRANT操作とREVOKE操作に及ぼす影響

DV_OWNERロールを持つユーザーのみ、他のユーザーに対してDV_PATCH_ADMINロールを付与する、または取り消すことができます。

Oracle Database Vaultセキュリティを無効にした場合のDV_PATCH_ADMINステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

- 統合監査ポリシーの作成については、『Oracle Databaseセキュリティ・ガイド』を参照してください

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

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

DV_ACCTMGRロールは強力なロールであり、アカウント管理のために使用します。

注意:

この機能は、Oracle Database 12cリリース1 (12.1.0.2)で更新されています。

DV_ACCTMGRロールを使用して、データベース・アカウントとデータベース・プロファイルの作成および管理を行います。このマニュアルでは、例のDV_ACCTMGRロールがbea_dvacctmgrというユーザーに割り当てられます。

DV_ACCTMGRロールに関連付けられた権限

このロールを付与されているユーザーは、DV_SECANALYST、DV_AUDIT_CLEANUPおよびDV_MONITORロールを付与されているユーザーを含め、ユーザー・アカウントまたはプロファイルに対してCREATE文、ALTER文、DROP文を使用できます。

このユーザーは、他のユーザーにCREATE SESSION権限を付与することもできます。ただし、DV_ACCTMGRロールを付与されているユーザーは、次の操作は実行できません。

- DVSYSアカウントに対するALTER文またはDROP文

- DV_ADMINまたはDV_OWNERロールが付与されているユーザーに対するALTER文またはDROP文

- DV_ADMINまたはDV_OWNERロールが付与されているユーザーのパスワード変更

DV_ACCTMGRロールに関連付けられたシステム権限とオブジェクト権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

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ユーザーが他のユーザーにANY権限を付与または取り消せるようにする場合は、SYSDBA権限を持つユーザーSYSとしてログインし、このユーザーにGRANT ANY PRIVILEGE権限およびREVOKE ANY PRIVILEGE権限を付与します。次に、このユーザーを所有者としてOracleシステム権限およびロール管理レルムに追加します。

- 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を持つアカウントは、このロールを指定されたデータベース・アカウントに付与することも、他のアカウントからこのロールを取り消すこともできます。

Oracle Database Vaultセキュリティを無効にした場合のDV_ACCTMGRステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

DV_REALM_OWNER Database VaultレルムDBAロール

DV_REALM_OWNERロールはレルム管理のために使用します。

DV_REALM_OWNERロールを使用して、レルムを定義する複数のスキーマ内のデータベース・オブジェクトを管理します。

このロールを、レルムとそれに関連付けられたロール内の1つ以上のスキーマ・データベース・アカウントを管理するデータベース・アカウントに付与します。

DV_REALM_OWNERロールに関連付けられた権限

このロールを付与されているユーザーは、CREATE ANY、ALTER ANY、DROP ANYなどの強力なシステム権限をレルム内で使用できます。

ただし、これらの権限を使用するには、このユーザーをレルムの参加者または所有者にする必要があります。手順については、「レルム認可について」を参照してください。

DV_REALM_OWNERロールにはオブジェクト権限は付与されていませんが、いくつかのシステム権限が付与されています。DV_REALM_OWNERシステム権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_REALM_OWNER';

DV_REALM_OWNERがGRANT操作とREVOKE操作に及ぼす影響

Oracleシステム権限およびロール管理レルムのレルム所有者(SYSなど)は、このロールを、指定された任意のデータベース・アカウントまたはロールに付与できます。

このロールには強力なシステム権限がありますが、Oracle Database Vaultのロール(DV_OWNERまたはDV_ADMINロールなど)はないことに注意してください。

このロールを特定のレルムに関連付ける場合は、アカウントまたは業務関連のロールに割り当てた後、そのアカウントまたはロールをレルムで認可します。

Oracle Database Vaultセキュリティを無効にした場合のDV_REALM_OWNERステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

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

DV_REALM_RESOURCEロールはレルム・リソースの管理のために使用します。

DV_REALM_RESOURCEロールは、レルムで一般に使用される表、ビュー、トリガー、シノニムおよびその他のオブジェクトの作成などの操作に使用します。

DV_REALM_RESOURCEロールに関連付けられた権限

DV_REALM_RESOURCEロールには、OracleのRESOURCEロールと同じシステム権限があります。さらに、CREATE SYNONYMとCREATE VIEWの両方がこのロールに付与されます。

DV_REALM_RESOURCEロールにはオブジェクト権限は付与されていませんが、いくつかのシステム権限が付与されています。DV_REALM_RESOURCEシステム権限の完全なリストを検索するには、十分な権限でデータベース・インスタンスにログインし、次の問合せを入力します。

SELECT PRIVILEGE FROM DBA_SYS_PRIVS WHERE GRANTEE = 'DV_REALM_RESOURCE';

このロールには強力なシステム権限がありますが、Oracle Database Vaultのロール(DV_OWNERまたはDV_ADMINロールなど)はありません。

DV_REALM_RESOURCEがGRANT操作とREVOKE操作に及ぼす影響

DV_REALM_RESOURCEロールは、任意のデータベース・アプリケーションのサポートに使用されるデータベース表、オブジェクト、トリガー、ビュー、プロシージャなどを所有するデータベース・アカウントに付与できます。

これは、スキーマ・タイプのデータベース・アカウントを対象としたロールです。Oracleシステム権限およびロール管理レルムのレルム所有者(SYSなど)は、このロールを、任意のデータベース・アカウントまたはロールに付与できます。

Oracle Database Vaultセキュリティを無効にした場合のDV_REALM_RESOURCEステータス

すべてのOracle Databaseロールの保護は、Oracle Database Vaultが有効な場合のみ実施されます。

Oracle Database Vaultが無効になっている場合、GRANT ANY ROLEシステム権限を持つアカウントはすべて、保護対象のDatabase Vaultロールに対してGRANT操作およびREVOKE操作を実行できます。

関連項目:

Oracle Database Vaultの無効化および有効化については、「Oracle Database Vaultの無効化および有効化」を参照してください

DV_PUBLIC Database Vault PUBLICロール

DV_PUBLICロールは使用されなくなりました。

インストール時にDV_PUBLICロールは引き続き作成されますが、ロールや権限は付与されません。以前のリリースでDV_PUBLICに付与された権限はすべてPUBLICロールに直接付与されるようになりました。

登録中に作成されるOracle Database Vaultアカウント

登録プロセス時には、Oracle Database Vault所有者とOracle Database Vaultアカウント・マネージャ用のアカウントを作成する必要があります。

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所有者ユーザー・アカウントに付与されます。

表12-2に、インストール時に作成するアカウントの他に必要なOracle Database Vaultデータベース・アカウントを示します。

表12-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の職務分離要件を満たすために別のデータベース・アカウントを作成できます。表12-3に、指針となるモデル・データベース・アカウントの一部を示します。(表12-3に示すアカウントは、Oracle Database Vaultロールの実装の指針となります。これらは、インストール時に作成される実際のアカウントではありません。)

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

データベース・アカウント

ロールおよび権限

説明

EBROWN

DV_OWNER(DV_ADMINおよびDV_SECANALYSTを保持)

Oracle Database Vaultレルムのレルム所有者になるアカウント。このアカウントの機能は次のとおりです。

- DVSYSパッケージを実行する。

- DVSYSスキーマ・オブジェクトに対する権限を付与する。

- DVSYSスキーマ内のオブジェクトの選択

- Oracle Database Vaultアクティビティを監視する。

- Oracle Database Vault構成に関するレポートを実行する。

JGODFREY

DV_ACCTMGR

データベース・アカウントおよびプロファイルを管理するためのアカウント。このアカウントの機能は次のとおりです。

- ユーザーの作成、変更および削除

- プロファイルの作成、変更および削除

- CREATE SESSION権限の付与および取消し

- DV_ACCTMGRロールの付与と取消しを行います。ただし、このアカウントがDatabase Vaultのインストール時に作成された場合のみです(このアカウントは、ADMINオプション付きで作成されました)。

- CONNECTロールの付与および取消し

注意: このアカウントでは、ロールの作成、およびRESOURCEロールまたはDBAロールの付与は行えません。

RLAYTON

DV_ADMIN(DV_SECANALYSTを保持)

アクセス制御管理者として機能するアカウント。このアカウントの機能は次のとおりです。

- DVSYSパッケージを実行する。

- Oracle Database Vaultアクティビティを監視する。

- Oracle Database Vault構成に関するレポートを実行する。

注意: このアカウントでは、DVSYS表を直接更新できません。

PSMYTHE

DV_SECANALYST

Oracle Database Vaultレポートを実行するためのアカウント

関連項目:

- エンタープライズ・ユーザー・アカウントとしてのDatabase Vaultアカウントの構成については、「Oracle Database Vaultアカウントをエンタープライズ・ユーザー・アカウントとして構成」を参照してください

- DV_OWNERおよびDV_ACCTMGRアカウントのバックアップ・アカウントの保持の重要性については、「バックアップOracle Database Vaultアカウント」を参照してください

バックアップOracle Database Vaultアカウント

ベスト・プラクティスとして、DV_OWNERロールとDV_ACCTMGRロールのバックアップ・アカウントを保持することをお薦めします。

Oracle Database Vault登録プロセスでは、DV_OWNERロールとDV_ACCTMGRロールの日常用アカウントとバックアップ・アカウントの作成が必要となります。これらのロールのいずれかを付与されているユーザーが自分のパスワードを忘れた場合や組織を退職した場合に備えた安全対策として、これらのアカウントを保持し続ける必要があります。それにより、バックアップ・アカウントにログインして、パスワードの回復や新しいアカウントへのロールの付与が可能です。これらは、特権アカウント管理または組織のブレークグラス(または非常時パスワード回復)システムで安全を確保されているバックアップ・アカウントとしてのみ使用する必要があります。

Oracle Database Vaultで実装されている強力な職務分離により、DV_OWNERアカウントにアクセスできなくなった場合はデータベースの再構築が必要になります。SYSアカウントは、DV_OWNERアカウントをオーバーライドできません。

関連項目:

DV_OWNERまたはDV_ACCTMGRを付与されているユーザーが紛失したパスワードのリセットについては、Oracle Database Vaultアカウントのパスワードのリセットを参照してください

13 Oracle Database VaultレルムのAPI

DBMS_MACADM PL/SQLパッケージでは、Oracle Database Vaultレルムを構成できます。

表13-1に、レルムの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。

DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。これらのプロシージャで使用できる定数の詳細は、表19-1を参照してください。

関連項目:

- レルムの詳細は、「レルムの構成」を参照してください

- レルムのプロシージャで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

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

プロシージャ

説明

ADD_AUTH_TO_REALMプロシージャ

所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。

ADD_OBJECT_TO_REALMプロシージャ

レルム保護に一連のオブジェクトを登録します。

CREATE_REALMプロシージャ

レルムを作成します。

DELETE_AUTH_FROM_REALMプロシージャ

レルムにアクセスするためのユーザーまたはロールの認可を削除します。

DELETE_OBJECT_FROM_REALMプロシージャ

レルム保護から一連のオブジェクトを削除します。

DELETE_REALMプロシージャ

レルム(認可されるユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。

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);

パラメータ

表13-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ビューに問い合せます。どちらも「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されています。

rule_set_name

オプションです。ランタイムでチェックするルール・セット。レルム認可は、ルール・セットの評価がTRUEの場合のみ有効です。

使用可能なルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SET_RULEビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

auth_options

オプションです。レルムを認可する次のオプションのうち、1つを指定します。

- DBMS_MACUTL.G_REALM_AUTH_PARTICIPANT: 参加者。権限が標準のOracle Database権限付与プロセスを使用して付与されている場合、このアカウントまたはロールは、レルムで保護されているオブジェクトに対するアクセス、操作および作成を行うためのシステム権限または直接権限を付与できます。(デフォルト)

- DBMS_MACUTL.G_REALM_AUTH_OWNER: 所有者。このアカウントまたはロールには、レルムの参加者と同じ認可に加えて、レルム保護オブジェクトに対するレルム・セキュア・ロールおよび権限を付与または取り消す認可があります。

参加者および所有者の詳細は、「レルム認可について」を参照してください。

例

次の例では、ユーザー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がパフォーマンス統計レルムの所有者としての役割を果す前に、Check Conf Accessルール・セットをトリガーします。

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);

パラメータ

表13-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ビュー」で説明されているDVSYS.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,
realm_type    IN NUMBER);

パラメータ

表13-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: レルムで保護されているオブジェクトに対する認可されたアクティビティおよび認可されていないアクティビティに関する監査レコードが作成されます。

realm_type

次のいずれかのオプションを指定します。

- 0: 必須レルムのチェックを無効にします。

- 1: レルムのオブジェクトに対する必須レルムのチェックを有効にします。レルム所有者またはレルム参加者のみが、レルム内のオブジェクトにアクセスできます。レルム所有者や参加者ではないオブジェクト所有者およびオブジェクト権限ユーザーはアクセスできません。

必須レルムの詳細は、「必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限」も参照してください。

例

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,
realm_type    => 1);
END;
/

関連項目:

例19-1

DELETE_AUTH_FROM_REALMプロシージャ

DELETE_AUTH_FROM_REALMプロシージャは、レルムにアクセスするためのユーザーまたはロールの認可を削除します。

構文

DBMS_MACADM.DELETE_AUTH_FROM_REALM(
realm_name IN VARCHAR2,
grantee    IN VARCHAR2);

パラメータ

表13-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);

パラメータ

表13-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ビュー」で説明されている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プロシージャは、レルム(認可されたユーザーと保護対象オブジェクトを指定するレルム関連の構成情報を含む)を削除します。

このプロシージャは、実際のデータベース・オブジェクトやユーザーを削除しません。

レルムに対して認可されているユーザーを確認するには、DBA_DV_REALM_AUTHビューに問い合せます。レルムで保護されるオブジェクトを確認するには、DBA_DV_REALM_OBJECTビューに問い合せます。これらのビューについては、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明します。

構文

DBMS_MACADM.DELETE_REALM(
realm_name IN VARCHAR2);

パラメータ

表13-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プロシージャは、レルム(認可されたユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。

DBA_DV_REALM_AUTHビューにはそのレルム内で認可されているユーザーが表示され、DBA_DV_REALM_OBJECTビューには保護されたオブジェクトが表示されます。

このプロシージャは、実際のデータベース・オブジェクトやユーザーを削除しません。これは、DELETE_REALMプロシージャと同様に動作します。(以前のリリースでは同じではありませんでしたが、現在は同じです。どちらも下位互換性のために保持されています。)レルム関連のオブジェクトのリストを確認するには、DBA_DV_REALMビューに問い合せます。その認可を確認するには、DBA_DV_REALM_AUTHに問い合せます。どちらも「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されています。

構文

DBMS_MACADM.DELETE_REALM_CASCADE(
realm_name IN VARCHAR2);

パラメータ

表13-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);

パラメータ

表13-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プロシージャはレルムを更新します。

レルムの現在の設定について情報を確認するには、「DVSYS.DV$REALMビュー」で説明されているDVSYS.DV$REALMビューに問い合せます。

構文

DBMS_MACADM.UPDATE_REALM(
realm_name    IN VARCHAR2,
description   IN VARCHAR2,
enabled       IN VARCHAR2,
audit_options IN NUMBER DEFAULT NULL,
realm_type    IN NUMBER DEFAULT NULL);

パラメータ

表13-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データ・ディクショナリ・ビューに問い合せることで確認できます。

realm_type

realm_typeパラメータを指定しない場合、Oracle Database Vaultは現在のrealm_type設定を更新しません。

次のいずれかのオプションを指定します。

- 0: 必須レルムのチェックのない通常のレルムになるようにレルムを設定します。

- 1: レルムのオブジェクトに対する必須レルムのチェックを有効にします。レルム所有者またはレルム参加者のみが、レルム内のオブジェクトにアクセスできます。レルム所有者や参加者ではないオブジェクト所有者およびオブジェクト権限ユーザーはアクセスできません。

必須レルムの詳細は、「必須レルムによるレルム内のオブジェクトへのユーザー・アクセスの制限」も参照してください。

例

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,
realm_type    => 1);
/

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);

パラメータ

表13-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ビューに問い合せます。どちらも「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;
/

14 Oracle Database Vaultルール・セットのAPI

DBMS_MACADM PL/SQLパッケージをおよび一連のOracle Database Vaultルール・ファンクションを使用すると、ルール・セットを管理できます。

内容は次のとおりです。

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

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

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

DBMS_MACADMルール・セット・プロシージャにより、ルール・セット、およびこれらのルール・セット内に入れられる個々のルールを構成できます。

表14-1に、ルール・セットの構成に使用できるDBMS_MACADMパッケージのプロシージャを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。

表14-1 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プロシージャ

ルール・セットの名前を変更します。名前の変更は、そのルール・セットが使用されているすべての箇所に反映されます。

UPDATE_RULEプロシージャ

ルールを更新します。

UPDATE_RULE_SETプロシージャ

ルール・セットを更新します。

関連項目:

- ルール・セットの詳細は、「ルール・セットの構成」を参照してください

- ルール・セットのプロシージャおよびファンクションで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

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);

パラメータ

表14-2 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ビュー」で説明されているDVSYS.DBA_DV_RULE_SET_RULEを使用します。

rule_order

このリリースには適用されませんが、ADD_RULE_TO_RULE_SETプロシージャを機能させるには値を指定する必要があります。1を入力します。

enabled

オプションです。ルール・セットの評価時にルールをチェックする必要があるかどうかを判断します。可能な値は次のとおりです。

- DBMS_MACUTL.G_YES(Yes、デフォルト)。ルール・セットの評価時にルールをチェックできるようにします。

- DBMS_MACUTL.G_NO(No)。ルール・セットの評価時にルールをチェックできないようにします。

詳細は、表19-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);

パラメータ

表14-3 CREATE_RULEパラメータ

パラメータ

説明

rule_name

ルール名(大/小文字混在で最大128文字)。空白を使用できます。

現行のデータベース・インスタンスで既存のルールを検索するには、「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'''

ルール式の詳細は、「新規ルールの作成」を参照してください。

例

次の例に、現行セッション・ユーザーがSYSADMであるかどうかをチェックするルール式の作成方法を示します。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Check UPDATE operations',
rule_expr  =>'SYS_CONTEXT(''USERENV'',''SESSION_USER'') = ''SYSADM''');
END;
/

注意:

次の新機能は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。

次の例に、パブリック・スタンドアロン・ファンクションOLS_LABEL_DOMINATESを使用して、hr_ols_pol Oracle Label Securityポリシーのセッション・ラベルがhsラベルより優位にあるか同等であるかを確認するルール式の作成方法を示します。値0は、falseである場合を示します。(同等であるかどうかをチェックするには、1を示します。)

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name  => 'Check OLS Factor',
rule_expr  => 'OLS_LABEL_DOMINATES(''hr_ols_pol'', ''hs'') = 1');
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);

パラメータ

表14-4 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)では無効になります。デフォルト値はDBMS_MACUTL.G_YESです。

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     => DBMS_MACUTL.G_RULESET_EVAL_ANY,
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;
/

関連項目:

例19-2

DELETE_RULEプロシージャ

DELETE_RULEプロシージャはルールを削除します。

構文

DBMS_MACADM.DELETE_RULE(
rule_name IN VARCHAR2);

パラメータ

表14-5 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);

パラメータ

表14-6 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);

パラメータ

表14-7 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);

パラメータ

表14-8 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

新しいルール名(大/小文字混在で最大128文字)。

例

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);

パラメータ

表14-9 RENAME_RULE_SETのパラメータ

パラメータ

説明

rule_set_name

現在のルール・セット名。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「DVSYS.DBA_DV_RULE_SETビュー」で説明されているDVSYS.DBA_DV_RULE_SETビューに問い合せます。

new_name

新しいルール・セット名(大/小文字混在で最大128文字)。空白を使用できます。

例

BEGIN
DBMS_MACADM.RENAME_RULE_SET(
rule_set_name => 'Limit_DBA_Access',
new_name      => 'Limit Sector 2 Access');
END;
/

UPDATE_RULEプロシージャ

UPDATE_RULEプロシージャはルールを更新します。

構文

DBMS_MACADM.UPDATE_RULE(
rule_name  IN VARCHAR2,
rule_expr  IN VARCHAR2);

パラメータ

表14-10 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);

パラメータ

表14-11 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_EVAL_ANY,
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;
/

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

Oracle Database Vaultには、ルール・セットが保護するSQL文を検査するために、ルール・セットで使用するファンクションが用意されています。

たとえば、コマンド・ルールでルール・セットによりSELECT ON HR.EMPLOYEESを保護する場合、ルール式でこれらのファンクションを使用して、より詳細な情報に基づいた判断を下すことができます。

表14-12にデフォルトのルール・ファンクションを示します。

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

ルール・セット・ファンクション

説明

DVSYS.DV_SYSEVENTファンクション

ルール・セットを起動するシステム・イベントを返します。

DVSYS.DV_LOGIN_USERファンクション

ログイン・ユーザー名を返します。

DVSYS.DV_INSTANCE_NUMファンクション

データベース・インスタンス番号を返します。

DVSYS.DV_DATABASE_NAMEファンクション

データベース名を返します。

DVSYS.DV_DICT_OBJ_TYPEファンクション

データベース操作が発生したディクショナリ・オブジェクトのタイプ(表、プロシージャ、ビューなど)を返します。

DVSYS.DV_DICT_OBJ_OWNERファンクション

データベース操作が発生したディクショナリ・オブジェクトの所有者を返します。

DVSYS.DV_DICT_OBJ_NAMEファンクション

データベース操作が発生したディクショナリ・オブジェクトの名前を返します。

DVSYS.DV_SQL_TEXTファンクション

操作で使用されるデータベース文のSQLテキストの最初の4000文字を返します。

DVSYS.DV_SYSEVENTファンクション

DV_SYSEVENTファンクションは、ルール・セットを起動するシステム・イベントを返します。

イベント名は、SQL文の構文のものと同じで、INSERTやCREATEなどです。戻り型はVARCHAR2です。

構文

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;
/

DVSYS.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;
/

DVSYS.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;
/

DVSYS.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;
/

DVSYS.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;
/

DVSYS.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;
/

DVSYS.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;
/

DVSYS.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;
/

15 Oracle Database Vaultコマンド・ルールのAPI

DBMS_MACADM PL/SQLパッケージは、コマンド・ルールを設定するプロシージャを提供します。

表15-1に、DBMS_MACADMパッケージ内のプロシージャを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。

表15-1 DBMS_MACADMのコマンド・ルール構成プロシージャ

プロシージャ

説明

CREATE_COMMAND_RULEプロシージャ

コマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

DELETE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を削除します。

UPDATE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を更新します。

関連項目:

- コマンド・ルールの詳細は、「コマンド・ルールの構成」を参照してください

- コマンド・ルール・プロシージャで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

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);

パラメータ

表15-2 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);

パラメータ

表15-3 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);

パラメータ

表15-4 UPDATE_COMMAND_RULEパラメータ

パラメータ

説明

command

保護するSQL文。

次の項目も参照してください。

- 使用可能なSQL文のリストは、「コマンド・ルールで保護できるSQL文」を参照してください

- 既存のコマンド・ルールのリスト方法は、「DVSYS.DBA_DV_COMMAND_RULEビュー」を参照してください

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

rule_set_name

このコマンド・ルールに関連付けるルール・セットの名前。

現行のデータベース・インスタンスで既存のルール・セットを検索するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている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;
/

16 Oracle Database VaultファクタのAPI

DBMS_MACADM PL/SQLパッケージには、ファクタに関連するOracle Database Vaultルール・プロシージャとファンクションが含まれており、DVFにはファクタを管理するファンクションが含まれています。

内容は次のとおりです。

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

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

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

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

DBMS_MACADM PL/SQLパッケージは、ファクタを設定するためのプロシージャとファンクションを提供します。

表16-1に、これらのプロシージャとファンクションを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャとファンクションを使用できます。

表16-1 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プロシージャ

ファクタ・アイデンティティの信頼レベルを更新します。

関連項目:

- ファクタの詳細は、「ファクタの構成」を参照してください

- ファクタのプロシージャおよびファンクションで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

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);

パラメータ

表16-2 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ポリシーおよびラベルを確認するには、「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);

パラメータ

表16-3 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ビュー」で説明されている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);

パラメータ

表16-4 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);

パラメータ

表16-5 CHANGE_IDENTITY_VALUEパラメータ

パラメータ

説明

factor_name

ファクタ名。

既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

value

アイデンティティに関連付けられている現在の値。

現行のデータベース・インスタンスで各ファクタの既存のアイデンティティを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されている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に使われます。

これは、ドメイン・ファクタ・アイデンティティに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);

パラメータ

表16-6 CREATE_DOMAIN_IDENTITYのパラメータ

パラメータ

説明

domain_name

ホストを追加するドメインの名前。

分散データベース・システムのネットワーク構造内でデータベースの論理的な場所を確認するには、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されるOracle Real Application Clustersホスト名。

データベースのホスト名を確認するには、「Oracle Database VaultのDVF 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);

パラメータ

表16-7 CREATE_FACTORのパラメータ

パラメータ

説明

factor_name

ファクタ名(空白を使用せず、大/小文字混在で最大128文字)。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

factor_type_name

ファクタのタイプ(空白を使用せず、大/小文字混在で最大128文字)。

既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDBA_DV_FACTOR_TYPEビューに問い合せます。

description

ファクタの目的の説明(大/小文字混在で最大1024文字)。

rule_set_name

ファクタ・アイデンティティを設定する時期および方法の制御にルール・セットを使用する場合のルール・セット名。

既存のルール・セットを検索するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている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: 子ファクタ・アイデンティティのラベルからファクタ・アイデンティティ・ラベルを導出します。

詳細は、「ファクタのOracle Label Securityラベル付け情報の設定」を参照してください。

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);

パラメータ

表16-8 CREATE_FACTOR_TYPEのパラメータ

パラメータ

説明

name

ファクタ・タイプ名(空白を使用せず、大/小文字混在で最大128文字)。

既存のファクタ・タイプを検索するには、「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);

パラメータ

表16-9 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);

パラメータ

表16-10 CREATE_IDENTITY_MAPのパラメータ

パラメータ

説明

identity_factor_name

アイデンティティ・マップの対象のファクタ。

現行のデータベース・インスタンスで既存のファクタを検索するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている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);

パラメータ

表16-11 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);

パラメータ

表16-12 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);

パラメータ

表16-13 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);

パラメータ

表16-14 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);

パラメータ

表16-15 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ビューに問い合せます。

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);

パラメータ

表16-16 DROP_DOMAIN_IDENTITYパラメータ

パラメータ

説明

domain_name

ホストが追加されたドメインの名前。

DB_DOMAIN初期化パラメータで指定されたデータベースのドメインを確認するには、「F$DATABASE_DOMAINファンクション」で説明されているDVF.F$DATABASE_DOMAINファンクションを実行します。

domain_host

ドメインに追加されたOracle Real Application Clustersホスト名。

指定されたデータベースのホスト名を確認するには、「F$DATABASE_NAMEファンクション」で説明されている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;

パラメータ

表16-17 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;

パラメータ

表16-18 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);

パラメータ

表16-19 RENAME_FACTORのパラメータ

パラメータ

説明

factor_name

現在のファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.DBA_DV_FACTORビューに問い合せます。

new_factor_name

新しいファクタ名(空白を使用せず、大/小文字混在で最大128文字)。

例

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);

パラメータ

表16-20 RENAME_FACTOR_TYPEのパラメータ

パラメータ

説明

old_name

現在のファクタ・タイプ名。

現行のデータベース・インスタンスで既存のファクタ・タイプを検索するには、「DVSYS.DBA_DV_FACTOR_TYPEビュー」で説明されているDVSYS.DBA_DV_FACTOR_TYPEビューに問い合せます。

new_name

新しいファクタ・タイプ名(空白を使用せず、大/小文字混在で最大128文字)。

例

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);

パラメータ

表16-21 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

ファクタ・アイデンティティを設定する時期および方法の制御に使用されるルール・セットの名前。

既存のルール・セットを検索するには、「Oracle Database Vaultのデータ・ディクショナリ・ビュー」で説明されている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データ・ディクショナリ・ビューに問い合せることで確認できます。

詳細は、「ファクタのOracle Label Securityラベル付け情報の設定」を参照してください。

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);

パラメータ

表16-22 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);

パラメータ

表16-23 UPDATE_IDENTITYのパラメータ

パラメータ

説明

factor_name

ファクタ名。

現行のデータベース・インスタンスで既存のファクタを検索するには、「DVSYS.DBA_DV_FACTORビュー」で説明されているDVSYS.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;
/

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

Oracle Database Vaultには一連の手続き型インタフェースが用意されており、様々なDatabase Vaultセキュリティ・オプションの管理およびDatabase Vaultセキュリティの実施の管理に使用できます。

また、レルム違反およびコマンド認可のDDLコマンドを検証するためのロジックを公開するプロシージャおよびファンクションもあります。その他に、ファクタの値をたとえばWebアプリケーションなどから設定する(関連付けられたルール・セットがTrueに評価される場合)、セッションまたは特定のファクタ・アイデンティティに対する信頼レベルを取得する、あるいはファクタ・アイデンティティのラベルを取得するためのプロシージャおよびファンクションが用意されています。これらのプロシージャおよびファンクションは、データベース管理者がすべてのDVSYSパッケージ・プロシージャに対するEXECUTE権限を一般のデータベース・アカウント群に付与しないように提供されています。プロシージャおよびファンクションは、必要な最小限のメソッドのみを公開します。これらのファンクションおよびプロシージャはすべて、必要とするアプリケーションでパブリックに使用できます。

Oracle Database Vault ランタイムPL/SQLプロシージャおよびファンクションに、ファクタのデフォルトのランタイムPL/SQLプロシージャおよびファンクションを示します。

表16-24 ランタイムのPL/SQLプロシージャおよびファンクション

プロシージャまたはファンクション

パラメータ

DVSYS.SET_FACTORプロシージャ

ファクタを設定します。

DVSYS.GET_FACTORファンクション

ファクタを取得します。

DVSYS.GET_TRUST_LEVELファンクション

ファクタに割り当てられた信頼レベルを取得します。

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYファンクション

指定されたファクタおよびアイデンティティの信頼レベルを取得します。

DVSYS.ROLE_IS_ENABLEDファンクション

指定されたデータベース・ロールが有効になっているかどうかを確認します。

DVSYS.GET_FACTOR_LABELファンクション

ファクタにラベルが割り当てられている場合、指定されたOracle Label Securityポリシーのために、指定されたファクタのラベルを取得します。

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

Oracle Database Vaultには一連の手続き型インタフェースが用意されており、様々なDatabase Vaultセキュリティ・オプションの管理およびDatabase Vaultセキュリティの実施の管理に使用できます。

また、レルム違反およびコマンド認可のDDLコマンドを検証するためのロジックを公開するプロシージャおよびファンクションもあります。その他に、ファクタの値をたとえばWebアプリケーションなどから設定する(関連付けられたルール・セットがTrueに評価される場合)、セッションまたは特定のファクタ・アイデンティティに対する信頼レベルを取得する、あるいはファクタ・アイデンティティのラベルを取得するためのプロシージャおよびファンクションが用意されています。これらのプロシージャおよびファンクションは、データベース管理者がすべてのDVSYSパッケージ・プロシージャに対するEXECUTE権限を一般のデータベース・アカウント群に付与しないように提供されています。プロシージャおよびファンクションは、必要な最小限のメソッドのみを公開します。これらのファンクションおよびプロシージャはすべて、必要とするアプリケーションでパブリックに使用できます。

表16-25に、ファクタのデフォルトのランタイムのPL/SQLプロシージャおよびファンクションを示します。

表16-25 ランタイムのPL/SQLプロシージャおよびファンクション

プロシージャまたはファンクション

パラメータ

SET_FACTORプロシージャ

ファクタを設定します。

GET_FACTORファンクション

ファクタを取得します。

GET_TRUST_LEVELファンクション

ファクタに割り当てられた信頼レベルを取得します。

GET_TRUST_LEVEL_FOR_IDENTITYファンクション

指定されたファクタおよびアイデンティティの信頼レベルを取得します。

ROLE_IS_ENABLEDファンクション

指定されたデータベース・ロールが有効になっているかどうかを確認します。

GET_FACTOR_LABELファンクション

ファクタにラベルが割り当てられている場合、指定されたOracle Label Securityポリシーのために、指定されたファクタのラベルを取得します。

DVSYS.SET_FACTORプロシージャ

DVSYS.SET_FACTORプロシージャは、ファクタ・アイデンティティを動的に設定する必要があるアプリケーションに公開できます。

パッケージ・プロシージャDBMS_MACADM.SET_FACTORをラップします。割当て用のルール・セットがファクタに関連付けられていて、ルール・セットがtrueを返した場合に、値が設定されます。通常のルール・セット処理が行われ、ファクタ値(アイデンティティ)の検証メソッドがコールされます。このプロシージャは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.SET_FACTOR(
p_factor IN VARCHAR2,
p_value  IN VARCHAR2);

パラメータ

表16-26 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'');

DVSYS.GET_FACTORファンクション

DVSYS.GET_FACTORファンクションは、パブリック・ファクタ・ファンクションによるファクタのアイデンティティの解決を可能にするために、DVFスキーマに公開できます。戻り型はVARCHAR2です。

このファンクションにより、DVFスキーマのF$ファンクションが有効になります。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.GET_FACTOR(
p_factor IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表16-27 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;
/

DVSYS.GET_TRUST_LEVELファンクション

DVSYS.GET_TRUST_LEVELファンクションは、リクエストされたファクタの現行セッションのアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。

このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。

構文

DVSYS.GET_TRUST_LEVEL(
p_factor IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表16-28 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;
/

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYファンクション

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYファンクションは、リクエストされたファクタおよびアイデンティティの信頼レベルを返します。戻り型はVARCHAR2です。

このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。使用可能な信頼レベルのリストは、「ファクタ・アイデンティティの作成および構成」を参照してください。

構文

DVSYS.GET_TRUST_LEVEL_FOR_IDENTITY(
p_factor   IN VARCHAR2,
p_identity IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表16-29 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;
/

DVSYS.ROLE_IS_ENABLEDファンクション

DVSYS.ROLE_IS_ENABLEDファンクションは、データベース・ロールが有効であるかどうかを示すブール値を返します。戻り型はBOOLEANです。

このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.ROLE_IS_ENABLED(
p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表16-30 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;
/

DVSYS.GET_FACTOR_LABELファンクション

DVSYS.GET_FACTOR_LABELファンクションは、指定されたファクタに指定されたOracle Label Securityポリシー用のラベルが割り当てられている場合に、そのラベルを返します。戻り型はVARCHAR2です。

ポリシーがOracle Label Securityを使用して構成されている場合は、ポリシーの最大セッション・ラベルとマージされるラベルを返します。このファンクションは、一般のデータベース・アカウント群で使用(実行)できます。

構文

DVSYS.GET_FACTOR_LABEL(
p_factor      IN VARCHAR2,
p_policy_name IN VARCHAR2)
RETURN VARCHAR2;

パラメータ

表16-31 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のDVF PL/SQLファクタ・ファンクション

DBMS_MACADM PL/SQLパッケージを使用して様々なファクタを管理する際、Oracle Database VaultによってDVFスキーマ・ファンクションが維持されます。

DVSYSスキーマから提供されるファンクションおよびプロシージャに加え、DVFスキーマにはシステムに定義されているファクタごとに1つのファンクションが含まれます。

その後、ファンクションは一般のデータベース・アカウント群でPL/SQLファンクションおよび標準SQLを介して使用できます。これにより、ファクタはOracle Label Security、Oracle Virtual Private Database(VPD)などで使用できるようになります。

通常、これらのファンクションをルール式に組み込むことができます。次に例を示します。

その後、ファンクションは一般のデータベース・アカウント群で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
------------------------------------------------
LEO_DVOWNER

ファクタ自体の名前は、大/小文字を区別しません。たとえば、次の文は同じ結果を返します。

select dvf.f$session_user from dual;

SELECT DVF.F$SESSION_USER FROM DUAL;

Oracle Database VaultのDVF PL/SQLファクタ・ファンクションに、デフォルト・ファクタ・ファンクションがリストされています。

表16-32 インストールされる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ファンクション

現行ユーザーが認証されたデータベース・ユーザー名を返します。

Oracle Database VaultのDVF PL/SQLファクタ・ファンクションについて

DBMS_MACADM PL/SQLパッケージを使用して様々なファクタを管理する際、Oracle Database VaultによってDVFスキーマ・ファンクションが維持されます。

その後、ファンクションは一般のデータベース・アカウント群で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
------------------------------------------------
LEO_DVOWNER

ファクタ自体の名前は、大/小文字を区別しません。たとえば、次の文は同じ結果を返します。

select dvf.f$session_user from dual;

SELECT DVF.F$SESSION_USER FROM DUAL;

表16-33にデフォルトのファクタ・ファンクションを示します。

表16-33 インストールされる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;

パラメータ

ありません

例

次の例では、ルール作成文でDVF.F$CLIENT_IPを使用する方法を示します。入力できるのは、IPアドレスの範囲ではなく、1つのIPアドレスのみであることに注意してください。

BEGIN
DBMS_MACADM.CREATE_RULE(
rule_name => 'Check Client IP Address',
rule_expr => 'DVF.F$CLIENT_IP = ''192.0.2.10''');
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;
/

17 Oracle Database Vaultセキュア・アプリケーション・ロールのAPI

DBMS_MACADMおよびDBMS_MACSEC_ROLES PL/SQLパッケージは、Database Vaultセキュア・アプリケーション・ロールを管理します。

内容は次のとおりです。

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

- DBMS_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション

関連項目:

- セキュア・アプリケーション・ロールの詳細は、「Oracle Database Vaultのセキュア・アプリケーション・ロールの構成」を参照してください

- セキュア・アプリケーション・ロールのプロシージャおよびファンクションで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

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

DBMS_MACADMパッケージを使用すると、Oracle Database Vaultのセキュア・アプリケーション・ロールの作成、削除、名前変更および更新を行うことができます。

表17-1に、これらのプロシージャを示します。DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみがこれらのプロシージャを使用できます。

表17-1 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);

パラメータ

表17-2 CREATE_ROLEのパラメータ

パラメータ

説明

role_name

ロール名(空白を使用せず、最大128文字)。マルチテナント環境では、ロール名の先頭にc##またはC##を付加します。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

enabled

DBMS_MACUTL.G_YES(Yes)を選択するとロールが有効化できるようになり、DBMS_MACUTL.G_NO(No)を選択するとロールを有効化できなくなります。デフォルト値はDBMS_MACUTL.G_YESです。

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);

パラメータ

表17-3 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);

パラメータ

表17-4 RENAME_ROLEのパラメータ

パラメータ

説明

role_name

現在のロール名。

現行のデータベース・インスタンスで既存のセキュア・アプリケーション・ロールを検索するには、「DVSYS.DBA_DV_ROLEビュー」で説明されているDVSYS.DBA_DV_ROLEビューに問い合せます。

new_role_name

ロール名(空白を使用せず、最大128文字)。この名前が、『Oracle Database SQL言語リファレンス』で説明されているロール作成の標準のOracleネーミング規則に準拠していることを確認してください。マルチテナント環境では、ロール名の先頭にc##またはC##を付加します。

例

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);

パラメータ

表17-5 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_MACSEC_ROLESセキュア・アプリケーション・ロールのプロシージャおよびファンクション

DBMS_MACSEC_ROLESパッケージは、ユーザーの権限をチェックして、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。

DBMS_MACSEC_ROLESパッケージは、すべてのユーザーが使用できます。

表17-6に、DBMS_MACSEC_ROLESパッケージのファンクションおよびプロシージャを示します。

表17-6 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セキュア・アプリケーション・ロールを使用する権限があるかどうかをチェックします。

認可は、ロールに関連付けられたルール・セットのチェックにより決定されます。戻り型はBOOLEANです。

構文

DBMS_MACSEC_ROLES.CAN_SET_ROLE(
p_role IN VARCHAR2)
RETURN BOOLEAN;

パラメータ

表17-7 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プロシージャは、指定されたロールのSET ROLE PL/SQL文を発行します。

このプロシージャのチェック・プロセスには、Oracle Database Vaultのセキュア・アプリケーション・ロールと通常のOracle Databaseロールの両方が含まれています。

このプロシージャは、ロールに関連付けられているルール・セットがtrueと評価される場合にのみ、Oracle Database Vaultセキュア・アプリケーション・ロールを設定します。SET ROLEの発行前に、CAN_SET_ROLEメソッドがコールされ、ロールに関連付けられたルール・セットがチェックされます。監査などのランタイムのルール・セットの動作、障害処理およびイベント処理が、このプロセス中に発生します。

SET_ROLEプロシージャは、一般のデータベース・アカウント群で使用できます。

構文

DBMS_MACSEC_ROLES.SET_ROLE(
p_role IN VARCHAR2);

パラメータ

表17-8 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など)。

18 Oracle Database Vault Oracle Label SecurityのAPI

DBMS_MACADM PL/SQLパッケージを使用すると、Oracle Database VaultでOracle Label Securityラベルおよびポリシーを管理できます。

表18-1に、DV_OWNERロールまたはDV_ADMINロールを付与されているユーザーのみが使用できるプロシージャを示します。

表18-1 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セッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

関連項目:

- ファクタの詳細は、「Oracle Database Vaultとその他のOracle製品の統合」を参照してください

- OLS_LABEL_DOMINATESファンクションを使用して現行セッション・ラベルの優位性をチェックするルール式の作成方法の例は、「CREATE_RULEプロシージャ」を参照してください

- Oracle Label Securityポリシーのプロシージャで使用できる一連の汎用ユーティリティ・プロシージャについては、「Oracle Database VaultユーティリティのAPI」を参照してください

CREATE_MAC_POLICYプロシージャ

CREATE_MAC_POLICYプロシージャは、ファクタのラベルまたはOracle Label Securityセッション・ラベルを算出する際に、ラベルをマージするアルゴリズムを指定します。

構文

DBMS_MACADM.CREATE_MAC_POLICY(
policy_name  IN VARCHAR2,
algorithm    IN VARCHAR2);

パラメータ

表18-2 CREATE_MAC_POLICYのパラメータ

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。表18-3に示されている、目的のマージ・アルゴリズムに対応するコードを入力します。たとえば、「最大レベル/論理和/論理和」マージ・アルゴリズムを選択する場合は、HUUと入力します。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

表18-3 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);

パラメータ

表18-4 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ビューを使用します。

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);

パラメータ

表18-5 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);

パラメータ

表18-6 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);

パラメータ

表18-7 DELETE_POLICY_LABELパラメータ

パラメータ

説明

identity_factor_name

ラベルを付けたファクタの名前。

現行のデータベース・インスタンスでOracle Label Securityポリシーに関連付けられている既存のファクタを検索するには、「DVSYS.DBA_DV_MAC_POLICY_FACTORビュー」で説明されているDVSYS.DBA_DV_MAC_POLICY_FACTORビューに問い合せます。

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);

パラメータ

表18-8 UPDATE_MAC_POLICY

パラメータ

説明

policy_name

既存のポリシーの名前。

現行のデータベース・インスタンスで既存のポリシーを検索するには、「DVSYS.DBA_DV_MAC_POLICYビュー」で説明されているDVSYS.DBA_DV_MAC_POLICYビューに問い合せます。

algorithm

Oracle Label Securityで2つのラベルをマージしている場合のマージ・アルゴリズム。使用可能なアルゴリズムのリストは、表18-3を参照してください。

ラベルマージ・アルゴリズムの詳細は、『Oracle Label Security管理者ガイド』を参照してください。

例

BEGIN
DBMS_MACADM.UPDATE_MAC_POLICY(
policy_name  => 'Access Locations',
algorithm    => 'LUI');
END;
/

19 Oracle Database VaultユーティリティのAPI

Oracle Database Vaultは、DBMS_MACUTL PL/SQLパッケージの一連のユーティリティのAPIを提供します。

内容は次のとおりです。

- DBMS_MACUTLの定数

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

DBMS_MACUTLの定数

DBMS_MACUTL PL/SQLパッケージで使用できる、一連の定数を使用できます。

内容は次のとおりです。

- DBMS_MACUTLの定数のリスト

- 例: DBMS_MACUTLの定数を使用したレルムの作成

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

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

DBMS_MACUTLの定数のリスト

DBMS_MACUTL PL/SQLパッケージには、Oracle Database Vault PL/SQLパッケージに使用する定数(フィールド)が用意されています。

表19-1に、DBMS_MACUTLパッケージの定数(フィールド)の説明をまとめています。

これらの定数の多くは、Oracle Database Vaultパッケージに同等のものがあります。たとえば、複数のプロシージャで使用可能なenabledパラメータでは、Y(Yes)または定数G_YESのいずれも使用できます。どちらを選択するかは個人の好みの問題です。どちらも結果は同じです。

表19-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の定数を使用したレルムの作成

定数は、Oracle Database Vaultでのオブジェクト作成時に、単純なYesまたはNoの設定への回答に使用できます。

例19-1は、レルム作成時にG_YES定数およびG_REALM_AUDIT_FAIL DBMS_MACUTL定数を使用する方法を示しています。

例19-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;
/

例: DBMS_MACUTLの定数を使用したルール・セットの作成

定数を使用することにより、使用する監査のタイプや失敗オプションなどのオプション設定が可能です。

例19-2は、ルール・セット作成時に複数のDBMS_MACUTLの定数を使用する方法を示しています。

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

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     => 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;
/

例: DBMS_MACUTLの定数を使用したファクタの作成

定数は、アイデンティティやラベリングなど、ファクタ固有の情報の設定に使用できます。

例19-3は、ファクタ作成時に、定数を使用する方法を示しています。

例19-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パッケージのプロシージャおよびファンクション

DBMS_MACUTL PL/SQLパッケージでは、時間値、またはユーザーに適切な権限があるかどうかを知るなどのタスクを実行できます。

表19-2に、DBMS_MACUTL PL/SQLパッケージのプロシージャおよびファンクションを示します。この項では、両方が使用されている例を示します。

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

プロシージャまたはファンクション

説明

CHECK_DVSYS_DML_ALLOWEDプロシージャ

指定のユーザーがDMLコマンドを発行してDVSYSオブジェクトにアクセスできるかどうかを確認します。

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_OBJECT_PRIVILEGEファンクション

ユーザーまたはロールが、オブジェクト権限の付与によってオブジェクトにアクセスできるかどうかを確認します。

USER_HAS_ROLEファンクション

ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックします。

USER_HAS_ROLE_VARCHARファンクション

ユーザーがロール権限を直接保持するのか間接的に(他のロールを介して)保持するのかをチェックします。

USER_HAS_SYSTEM_PRIVILEGEファンクション

ユーザーがシステム権限を直接保持するのか間接的に(ロールを介して)保持するのかをチェックします。

CHECK_DVSYS_DML_ALLOWEDプロシージャ

CHECK_DVSYS_DML_ALLOWEDプロシージャは、ユーザーがData Modification Language(DML)のコマンドを発行してDVSYSオブジェクトにアクセスできるかどうかを確認します。

構文

DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED(
p_user IN VARCHAR2 DEFAULT USER);

パラメータ

表19-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

DV_OWNERロールを持つユーザーleo_dvownerが、チェックに合格します。

EXEC DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWED('leo_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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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;

パラメータ

表19-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がインストールされているかどうかを示す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がインストールされているかどうかを示すBOOLEAN値を返します。

Oracle Label Securityがインストールされている場合、IS_OLS_INSTALLED_VARCHARはYを返します。

構文

DBMS_MACUTL.IS_OLS_INSTALLED_VARCHAR()
RETURN VARCHAR2;

パラメータ

ありません

例

例については、「IS_OLS_INSTALLEDファンクション」を参照してください。

USER_HAS_OBJECT_PRIVILEGEファンクション

USER_HAS_OBJECT_PRIVILEGEファンクションは、ユーザーまたはロールが、指定された1つのオブジェクト権限の付与によってオブジェクトにアクセスできるかどうかを示すBOOLEAN値を返します。

ユーザーやロールにオブジェクト権限がある場合、USER_HAS_OBJECT_PRIVILEGEはTRUEを返します。

構文

DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGE(
p_user          VARCHAR2,
p_object_owner  VARCHAR2,
p_object_name   VARCHAR2,
p_privilege     VARCHAR2)
RETURNS BOOLEAN;

パラメータ

表19-14 USER_HAS_OBJECT_PRIVILEGEのパラメータ

パラメータ

説明

p_user

チェックするユーザーまたはロール。

既存のユーザーを検索するには、次のビューに問い合せます。

- DBA_USERS: 現在のデータベース・インスタンスで使用可能なユーザーを検索します。『Oracle Databaseリファレンス』を参照してください。

- DBA_ROLES: 現行のデータベース・インスタンスで使用可能なロールを検索します。『Oracle Databaseリファレンス』を参照してください。

- DVA_DV_REALM_AUTH: 特定のユーザーまたはロールの認可を検索します。「DVSYS.DBA_DV_REALM_AUTHビュー」を参照してください。

- DVSYS.DBA_DV_ROLE: 権限管理で使用されている既存のセキュア・アプリケーション・ロールを検索します。「DVSYS.DBA_DV_ROLEビュー」を参照してください。

p_object_owner

スキーマなどのオブジェクト所有者。

使用可能なユーザーを検索するには、『Oracle Databaseリファレンス』で説明されているDBA_USERSビューに問い合せます。

特定のユーザーの認可を検索するには、DVA_DV_REALM_AUTHビューに問い合せます。

p_object_name

オブジェクト名。p_object_ownerパラメータで指定されているスキーマ内の表など。

使用可能なオブジェクトを検索するには、『Oracle Databaseリファレンス』で説明されているALL_OBJECTSビューに問い合せます。

既存のレルムで保護されるオブジェクトを検索するには、DVSYS.DBA_DV_REALM_OBJECTビューに問い合せます。

p_privilege

UPDATEなどのオブジェクト権限。

PUBLIC権限を除外したデータベース・アカウントの権限を検索するには、DVSYS.DBA_DV_USER_PRIVSビューに問い合せます。

データベース・アカウントのすべての権限を検索するには、DVSYS.DBA_DV_USER_PRIVS_ALLビューに問い合せます。

例

SET SERVEROUTPUT ON
BEGIN
IF DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGE(
'SECTOR2_APP_MGR', 'OE', 'ORDERS', 'UPDATE')
THEN DBMS_OUTPUT.PUT_LINE('SECTOR2_APP_MGR has the UPDATE privilege for the OE.ORDERS table');
ELSE
DBMS_OUTPUT.PUT_LINE('SECTOR2_APP_MGR does not have the UPDATE privilege for the OE.ORDERS table.');
END IF;
END;
/

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;

パラメータ

表19-15 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: 特定のユーザーまたはロールの認可を検索します。「Oracle Database Vaultのデータ・ディクショナリ・ビュー」を参照してください。

例

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;

パラメータ

表19-16 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;

パラメータ

表19-17 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;
/

20 Oracle Database Vaultの一般管理API

DBMS_MACADM PL/SQLパッケージ・プロシージャおよびDVSYS.CONFIGURE_DVスタンドアロン・プロシージャは、一般的なメンテナンス・タスクを実行します。

内容は次のとおりです。

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

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

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

DBMS_MACADM PL/SQLパッケージの一般システム・メンテナンスのプロシージャは、ユーザーの認可またはOracle Database Vaultへの新しい言語の追加などのタスクを実行します。

表20-1に、これらのプロシージャを示します。

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

プロシージャ

説明

ADD_NLS_DATAプロシージャ

Oracle Database Vaultに新しい言語を追加します。

AUTHORIZE_DATAPUMP_USERプロシージャ

Oracle Database Vaultが有効な場合に、Oracle Data Pump操作を実行する権限をユーザーに付与します。

AUTHORIZE_DDLプロシージャ

指定したスキーマに対してデータ定義言語(DDL)文を実行する認可をユーザーに付与します。

AUTHORIZE_PROXY_USERプロシージャ

他のユーザー・アカウントをプロキシする認可をプロキシ・ユーザーに付与します。

AUTHORIZE_SCHEDULER_USERプロシージャ

Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。

AUTHORIZE_TTS_USERプロシージャ

Oracle Database Vaultが有効な場合に、表領域に対してOracle Data Pumpトランスポータブル表領域操作を実行するようにユーザーを認可します。

UNAUTHORIZE_DATAPUMP_USERプロシージャ

DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_DDLプロシージャ

DBMS_MACDM.AUTHORIZE_DDLプロシージャを使用してDDL文を実行する認可を付与されたユーザーから認可を取り消します。

UNAUTHORIZE_PROXY_USERプロシージャ

DBMS_MACADM.AUTHORIZE_PROXY_USERプロシージャによってプロキシの認可を付与されたユーザーから認可を取り消します。

UNAUTHORIZE_SCHEDULER_USERプロシージャ

DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_TTS_USERプロシージャ

Oracle Database Vaultが有効な場合に、表領域に対してOracle Data Pumpトランスポータブル表領域操作を実行する認可を付与されたユーザーから認可を取り消します。

DISABLE_DVプロシージャ

Oracle Database Vaultを無効にします。

DISABLE_DV_DICTIONARY_ACCTSプロシージャ

ユーザーがDVSYSやDFVスキーマ・アカウントにログインできないようにします。

DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ

DV_PATCH_ADMINロールを付与されたユーザーによるアクションのレルム、コマンド・ルールおよびルール・セットの監査を無効にします。

DISABLE_ORADEBUGプロシージャ

Oracle Database Vault環境でORADEBUGユーティリティの使用を無効にします。

ENABLE_DVプロシージャ

Oracle Database Vaultを有効にします。

ENABLE_DV_DICTIONARY_ACCTSプロシージャ

ユーザーがDVSYSやDFVスキーマ・アカウントにログインできるようにします。

ENABLE_DV_PATCH_ADMIN_AUDITプロシージャ

DV_PATCH_ADMINロールを付与されたユーザーによるアクションのレルム、コマンド・ルールおよびルール・セットの監査を有効にします。

ENABLE_ORADEBUGプロシージャ

Oracle Database Vault環境でORADEBUGユーティリティの使用を有効にします。

ADD_NLS_DATAプロシージャ

ADD_NLS_DATAプロシージャは、Oracle Database Vaultに新しい言語を追加します。

構文

DBMS_MACADM.ADD_NLS_DATA(
language      IN VARCHAR );

パラメータ

表20-2 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を使用するために必要なその他の認可のレベルなど、使用方法に関するすべての情報については、「Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_DATAPUMP_USER(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL,
table_name     IN VARCHAR2 DEFAULT NULL);

パラメータ

表20-3 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ロールが付与されていることを確認します。

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_DDLプロシージャ

AUTHORIZE_DDLプロシージャは、指定したスキーマに対してデータ定義言語(DDL)文を実行する認可をユーザーに付与します。

この認可を付与されているユーザーの情報を検索するには、DVSYS.DBA_DV_DDL_AUTHデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.AUTHORIZE_DDL(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2);

パラメータ

表20-4 AUTHORIZE_DDL

パラメータ

説明

user_name

DDL認可を付与するユーザーの名前。

schema_name

ユーザーがDDL文を実行するデータベース・スキーマの名前。すべてのスキーマを指定するには%を入力します。

例

次の例では、ユーザーpsmithはすべてのスキーマでDDL文を実行できます。

EXEC DBMS_MACADM.AUTHORIZE_DDL('psmith', '%');

この例では、ユーザーpsmithはHRスキーマでのみDDL文を実行できます。

EXEC DBMS_MACADM.AUTHORIZE_DDL('psmith', 'HR');

AUTHORIZE_PROXY_USERプロシージャ

AUTHORIZE_PROXY_USERプロシージャは、プロキシ・ユーザーにデータベースへのアクセスが認可されている場合、他のユーザー・アカウントをプロキシする権限をプロキシ・ユーザーに付与します。

例えば、CREATE SESSION権限は、データベースに関する有効な認可です。

この認可を付与されているユーザーの情報を検索するには、DVSYS.DBA_DV_PROXY_AUTHビューに問い合せます。

構文

DBMS_MACADM.AUTHORIZE_PROXY_USER(
proxy_user   IN VARCHAR2,
user_name    IN VARCHAR2);

パラメータ

表20-5 AUTHORIZE_PROXY_USER

パラメータ

説明

proxy_user

プロキシ・ユーザーの名前。

user_name

proxy_userユーザーによってプロキシされるデータベース・ユーザーの名前。すべてのユーザーを指定するには%を入力します。

例

次の例では、プロキシ・ユーザーprestonはすべてのユーザーをプロキシできます。

EXEC DBMS_MACADM.AUTHORIZE_PROXY_USER('preston', '%');

この例では、プロキシ・ユーザーprestonはデータベース・ユーザーdkentのみをプロキシできます。

EXEC DBMS_MACADM.AUTHORIZE_PROXY_USER('preston', 'dkent');

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でのOracle Schedulerの使用」を参照してください。

構文

DBMS_MACADM.AUTHORIZE_SCHEDULER_USER(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2 DEFAULT NULL);

パラメータ

表20-6 AUTHORIZE_SCHEDULER_USER

パラメータ

説明

user_name

権限を付与するユーザーの名前。

ジョブのスケジュール権限を持つユーザーのリストを検索するには、DBA_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。「ジョブ・スケジュール管理者へのOracle Database Vaultに対する権限の付与」の手順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');

AUTHORIZE_TTS_USERプロシージャ

AUTHORIZE_TTS_USERプロシージャは、Oracle Database Vaultが有効な場合に、表領域に対してOracle Data Pumpトランスポータブル表領域操作を実行するようにユーザーを認可します。

EXPDPとIMPDPの両方のユーティリティに適用されます。

Oracle Database Vault環境でOracle Data Pumpを使用してトランスポータブル操作を実行するために必要なその他の認可レベルなど、使用方法に関するすべての情報は、「Database VaultにおけるOracle Data Pumpの通常操作をユーザーに認可」に記載されています。

構文

DBMS_MACADM.AUTHORIZE_TTS_USER(
uname      IN VARCHAR2,
tsname     IN VARCHAR2);

パラメータ

表20-7 AUTHORIZE_TTS_USER

パラメータ

説明

uname

Oracle Data Pumpトランスポータブル表領域操作を実行するために認可するユーザーの名前。

ユーザーとその現在の権限のリストを検索するには、DBA_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。

tsname

unameユーザーがトランスポータブル表領域操作を実行する表領域の名前。

表領域のリストを検索するには、DBA_TABLESPACESデータ・ディクショナリ・ビューに問い合せます。

例

EXEC DBMS_MACADM.AUTHORIZE_TTS_USER('PSMITH', 'HR_TS');

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);

パラメータ

表20-8 UNAUTHORIZE_DATAPUMP_USER

パラメータ

説明

user_name

権限を取り消すOracle Data Pumpユーザーの名前。

AUTHORIZE_DATAPUMP_USERプロシージャのユーザーと認可のリストを検索するには、次のようにDVSYS.DVSYS.DBA_DV_DATAPUMP_AUTHデータ・ディクショナリ・ビューに問い合せます。

SELECT * FROM DVSYS.DBA_DV_DATAPUMP_AUTH;

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_DDLプロシージャ

UNAUTHORIZE_DDLプロシージャは、DBMS_MACDM.AUTHORIZE_DDLプロシージャを使用してDDL文を実行する認可を付与されたユーザーから認可を取り消します。

この認可を付与されているユーザーの情報を検索するには、DVSYS.DBA_DV_DDL_AUTHデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.UNAUTHORIZE_DDL(
user_name      IN VARCHAR2,
schema_name    IN VARCHAR2);

パラメータ

表20-9 UNAUTHORIZE_DDL

パラメータ

説明

user_name

DDL認可を取り消すユーザーの名前。

schema_name

ユーザーがDDL文を実行するデータベース・スキーマの名前。すべてのスキーマを指定するには%を入力します。

例

次の例では、すべてのスキーマについて、DDL文実行の認可をpsmithユーザーから取り消します。

EXEC DBMS_MACADM.UNAUTHORIZE_DDL('psmith', '%');

この例では、HRスキーマについてのみ、DDL文実行の認可をpsmithユーザーから取り消します。

EXEC DBMS_MACADM.UNAUTHORIZE_DDL('psmith', 'HR');

UNAUTHORIZE_PROXY_USERプロシージャ

UNAUTHORIZE_PROXY_USERプロシージャは、DBMS_MACADM.AUTHORIZE_PROXY_USERプロシージャによってプロキシの認可を付与されたユーザーから認可を取り消します。

構文

DBMS_MACADM.UNAUTHORIZE_PROXY_USER(
proxy_user   IN VARCHAR2,
user_name    IN VARCHAR2);

パラメータ

表20-10 UNAUTHORIZE_PROXY_USER

パラメータ

説明

proxy_user

プロキシ・ユーザーの名前。

user_name

proxy_userユーザーによってプロキシされたデータベース・ユーザーの名前。すべてのユーザーを指定するには%を入力します。

例

次の例では、すべてのユーザーをプロキシするプロキシの認可をユーザーprestonから取り消します。

DBMS_MACADM.UNAUTHORIZE_PROXY_USER('preston', '%');

この例では、データベース・ユーザーpsmithのみをプロキシするプロキシ認可をユーザーprestonから取り消します。

EXEC DBMS_MACADM.UNAUTHORIZE_PROXY_USER('preston', 'psmith');

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);

パラメータ

表20-11 UNAUTHORIZE_SCHEDULER_USER

パラメータ

説明

user_name

権限を取り消す、ジョブ・スケジュール・ユーザーの名前。

AUTHORIZE_SCHEDULER_USERプロシージャのユーザーと認可のリストを検索するには、次のようにDVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューに問い合せます。

SELECT * FROM DVSYS.DBA_DV_JOB_AUTH;

schema_name

ユーザーにジョブ・スケジュール権限が付与されているデータベース・スキーマの名前。

例

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR');

EXEC DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USER('JOB_MGR', 'HR');

UNAUTHORIZE_TTS_USERプロシージャ

UNAUTHORIZE_TTS_USERプロシージャは、Oracle Data Pumpトランスポータブル表領域の操作を実行する権限を与えられた板認可ユーザーのリストから、指定されたユーザーを削除します。

構文

DBMS_MACADM.UNAUTHORIZE_TTS_USER
uname      IN VARCHAR2,
tsname     IN VARCHAR2);

パラメータ

表20-12 UNAUTHORIZE_TTS_USER

パラメータ

説明

uname

Oracle Data Pumpトランスポータブル表領域操作を実行する認可対象から削除するユーザーの名前。

ユーザーとその現在の権限のリストを検索するには、DBA_SYS_PRIVSデータ・ディクショナリ・ビューに問い合せます。

tsname

トランスポータブル表領域操作で使用される表領域の名前。

表領域のリストを検索するには、DBA_TABLESPACESデータ・ディクショナリ・ビューに問い合せます。

例

EXEC DBMS_MACADM.UNAUTHORIZE_TTS_USER('PSMITH', 'HR_TS');

DISABLE_DVプロシージャ

DISABLE_DVプロシージャは、Oracle Database Vaultを無効にします。

このプロシージャの実行後、データベースを再起動する必要があります。

構文

DBMS_MACADM.DISABLE_DV;

パラメータ

ありません

例

EXEC DBMS_MACADM.DISABLE_DV;

関連項目:

Database Vaultが有効かどうかを把握する方法など、Database Vaultの有効化と無効化の詳細は、「Oracle Database Vaultの無効化と有効化」を参照してください

DISABLE_DV_DICTIONARY_ACCTSプロシージャ

DISABLE_DV_DICTIONARY_ACCTSプロシージャでは、どのユーザーもDVSYSまたはDVFスキーマ・ユーザーとしてデータベースにログインできません。

これらの2つのアカウントはデフォルトでロックされます。DV_OWNERロールを付与されているユーザーのみがこのプロシージャを実行できます。ユーザーがDVSYSおよびDVFにログインできるかどうかのステータスを確認するには、DVSYS.DBA_DV_DICTIONARY_ACCTSデータ・ディクショナリ・ビューに問い合せます。セキュリティをさらに強化するには、このプロシージャを実行して、DVSYSおよびDVFスキーマの保護を改善します。無効化はすぐに行われるため、このプロシージャの実行後にデータベースを再起動する必要はありません。

構文

DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTS;

パラメータ

ありません

例

EXEC DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTS;

関連項目:

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

DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ

DISABLE_DV_PATCH_ADMIN_AUDITプロシージャは、DV_PATCH_ADMINロールを付与されたユーザーによるアクションのレルム、コマンド・ルールおよびルール・セットの監査を無効にします。

このプロシージャは、失敗したアクションではなく、このユーザーの成功したアクションを無効にします。DV_PATCH_ADMINユーザーでデータベース・パッチ操作が完了した後、このプロシージャを実行する必要があります。監査が有効になっているかどうかを判断するには、DBA_DV_PATCH_AUDITデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.DISABLE_DV_PATCH_ADMIN_AUDIT;

パラメータ

ありません

例

EXEC DBMS_MACADM.DISABLE_DV_PATCH_ADMIN_AUDIT;

関連項目:

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

- ENABLE_DV_PATCH_ADMIN_AUDITプロシージャ

DISABLE_ORADEBUGプロシージャ

DISABLE_ORADEBUGプロシージャは、Oracle Database Vault環境でORADEBUGユーティリティの使用を無効にします。

無効化はすぐに行われるため、このプロシージャの実行後にデータベースを再起動する必要はありません。ORADEBUGユーティリティをDatabase Vaultで利用できるかどうかのステータスを確認するには、DVYS.DBA_DV_ORADEBUGデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.DISABLE_ORADEBUG;

パラメータ

ありません

例

EXEC DBMS_MACADM.DISABLE_ORADEBUG;

関連項目:

Oracle Database Vault環境でのORADEBUGユーティリティの使用

ENABLE_DVプロシージャ

ENABLE_DVプロシージャは、Oracle Database VaultおよびOracle Label Securityを有効にします。

このプロシージャの実行後、データベースを再起動する必要があります。

構文

DBMS_MACADM.ENABLE_DV;

パラメータ

ありません

例

EXEC DBMS_MACADM.ENABLE_DV;

関連項目:

Database Vaultが有効かどうかを把握する方法など、Database Vaultの有効化と無効化の詳細は、「Oracle Database Vaultの無効化と有効化」 を参照してください

ENABLE_DV_PATCH_ADMIN_AUDITプロシージャ

ENABLE_DV_PATCH_ADMIN_AUDITプロシージャは、DV_PATCH_ADMINロールを持つユーザーによるアクションのレルム、コマンド・ルールおよびルール・セットの監査を有効にします。

このプロシージャはパッチのアップグレード時にこれらのユーザーのアクションを監査するように設計されています。この監査が有効かどうかを確認するには、DVSYS.DBA_DV_PATCH_AUDITデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.ENABLE_DV_PATCH_ADMIN_AUDIT;

パラメータ

ありません

例

EXEC DBMS_MACADM.ENABLE_DV_PATCH_ADMIN_AUDIT;

関連項目:

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

- DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ

ENABLE_DV_DICTIONARY_ACCTSプロシージャ

ENABLE_DV_DICTIONARY_ACCTSプロシージャにより、ユーザーはDVSYSまたはDVFユーザーとしてデータベースにログインできます。

DVSYSアカウントとDVFアカウントは、デフォルトでロックされています。

DV_OWNERロールを付与されているユーザーのみがこのプロシージャを実行できます。ユーザーがDVSYSおよびDVFにログインできるかどうかのステータスを確認するには、DVSYS.DBA_DV_DICTIONARY_ACCTSデータ・ディクショナリ・ビューに問い合せます。セキュリティをさらに強化するには、DVSYSおよびDVFスキーマの保護を改善する必要がある場合にこのプロシージャを実行するのみです。有効化はすぐに行われるため、このプロシージャの実行後にデータベースを再起動する必要はありません。

構文

DBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTS;

パラメータ

ありません

例

EXEC DBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTS;

関連項目:

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

ENABLE_ORADEBUGプロシージャ

ENABLE_ORADEBUGプロシージャは、Oracle Database Vault環境でORADEBUGユーティリティの使用を有効にします。

有効化はすぐに行われるため、このプロシージャの実行後にデータベースを再起動する必要はありません。ORADEBUGユーティリティをDatabase Vaultで利用できるかどうかのステータスを確認するには、DVYS.DBA_DV_ORADEBUGデータ・ディクショナリ・ビューに問い合せます。

構文

DBMS_MACADM.ENABLE_ORADEBUG;

パラメータ

ありません

例

EXEC DBMS_MACADM.ENABLE_ORADEBUG;

関連項目:

Oracle Database Vault環境でのORADEBUGユーティリティの使用

DVSYS.CONFIGURE_DV一般システム・メンテナンスのプロシージャ

DVSYS.CONFIGURE_DVプロシージャは、最初の2つのOracle Databaseユーザー・アカウントを構成します。このアカウントには、DV_OWNERロールとDV_ACCTMGRロールがそれぞれ付与されます。

この構成のステータスは、DVSYS.DBA_DV_STATUSデータ・ディクショナリ・ビューを問い合せることで確認できます。DVSYS.CONFIGURE_DVプロシージャを実行する前に、2つのユーザー・アカウントを作成し、そのアカウントにCREATE SESSION権限を付与します。アカウントはローカルまたは共通のいずれかになります。共通のユーザー・アカウントを作成する場合、これらのユーザーに付与されるDatabase Vaultロールは、現在のプラガブル・データベース(PDB)にのみ適用されます。CONFIGURE_DVプロシージャに対してこれらのユーザー・アカウントを参照します。

Oracle Database VaultをOracle Databaseに登録する準備ができたら、DVSYS.CONFIGURE_DVプロシージャを一度実行するのみで構いません。このプロシージャの実行後、utlrp.sqlスクリプトとDBMS_MACADM.ENABLE_DVを順に実行して、登録プロセスを完了する必要があります。セキュリティを強化するために、ここで作成する2つのアカウントをバックアップ・アカウントとして使用し、毎日使用するアカウントを追加で作成することをお薦めします。詳細は、「バックアップOracle Database Vaultアカウント」を参照してください。

DVSYS.CONFIGURE_DVプロシージャを実行すると、DVSYSスキーマで表やパッケージの欠落などの問題が確認されます。問題が見つかった場合、ORA-47500「Database Vaultを構成できません。」エラーが生じます。このエラーが生じた場合、Oracle Database Vaultを削除して再インストールします。詳細は、次の各項を参照してください。

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

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

同時に、DVSYS.CONFIGURE_DVプロシージャ、DBMS_MACADM.ENABLE_DVプロシージャ、およびutlrp.sqlスクリプトは、Oracle Database Configuration Assistant(DBCA)を使用してOracle Database VaultをOracle Databaseに登録する場合の代替となるコマンドラインになるように設計されています。

DVSYS.CONFIGURE_DVプロシージャは、ユーザーSYSとして実行しなければなりません。使用するプロセスについては、「Oracle DatabaseへのOracle Database Vaultの登録」を参照してください。

構文

DVSYS.CONFIGURE_DV
dvowner_uname         IN VARCHAR2,
dvacctmgr_uname       IN VARCHAR2;

パラメータ

表20-13 CONFIGURE_DV

パラメータ

説明

dvowner_uname

Database Vault所有者になるユーザーの名前。このユーザーにはDV_OWNERロールが付与されます。

dvacctmgr_uname

Database Vaultアカウント・マネージャになるユーザーの名前。このユーザーにはDV_ACCTMGRロールが付与されます。この設定を省略した場合、dvowner_unameパラメータで指定されるユーザーがDatabase Vaultアカウント・マネージャになり、このユーザーにDV_ACCTMGRロールが付与されます。

例

CREATE USER dbv_owner IDENTIFIED BY password CONTAINER = CURRENT;
CREATE USER dbv_acctmgr IDENTIFIED BY password CONTAINER = CURRENT;
GRANT CREATE SESSION TO dbv_owner, dbv_acctmgr;

BEGIN
DVSYS.CONFIGURE_DV (
dvowner_uname         => 'dbv_owner',
dvacctmgr_uname       => 'dbv_acctmgr';
END;
/

21 Oracle Database VaultのAPIリファレンス

Oracle Database Vaultには、PL/SQLパッケージとスタンドアロン・プロシージャの両方に豊富なAPIセットが用意されています。

内容は次のとおりです。

- DBMS_MACADM PL/SQLパッケージの内容

- DBMS_MACSEC_ROLES PL/SQLパッケージの内容

- DBMS_MACUTL PL/SQLパッケージの内容

- CONFIGURE_DV PL/SQLプロシージャ

- DVF PL/SQLインタフェースの内容

DBMS_MACADM PL/SQLパッケージの内容

DBMS_MACADMパッケージを使用すると、レルム、ファクタ、ルール・セット、コマンド・ルール、セキュア・アプリケーション・ロール、およびOracle Label Securityポリシーを構成することができます。

DBMS_MACADMパッケージは、DV_ADMINロールまたはDV_OWNERロールを付与されているユーザーのみが使用できます。

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

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMPLSQLPACKAGECONTENTS-A8294FDCは、DBMS_MACADMパッケージ内のレルム・プロシージャを示します。

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

プロシージャ

説明

ADD_AUTH_TO_REALMプロシージャ

所有者または参加者としてレルムにアクセスする権限をユーザーまたはロールに付与します。

ADD_OBJECT_TO_REALMプロシージャ

レルム保護に一連のオブジェクトを登録します。

CREATE_REALMプロシージャ

レルムを作成します。

DELETE_AUTH_FROM_REALMプロシージャ

レルムにアクセスするためのユーザーまたはロールの認可を削除します。

DELETE_OBJECT_FROM_REALMプロシージャ

レルム保護から一連のオブジェクトを削除します。

DELETE_REALMプロシージャ

レルム(認可されるユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。

DELETE_REALM_CASCADEプロシージャ

レルム(認可されるユーザーと保護対象オブジェクトを指定するレルム関連Database Vault構成情報を含む)を削除します。

RENAME_REALMプロシージャ

レルムの名前を変更します。名前の変更は、そのレルムが使用されているすべての箇所に反映されます。

UPDATE_REALMプロシージャ

レルムを更新します。

UPDATE_REALM_AUTHプロシージャ

レルムにアクセスするためのユーザーまたはロールの認可を更新します。

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

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMPLSQLPACKAGECONTENTS-07CF0396は、DBMS_MACADMパッケージ内のレルム・プロシージャを示します。

表21-2 DBMS_MACADMのルール・セット・プロシージャとルール・プロシージャ

プロシージャ

説明

CREATE_RULE_SETプロシージャ

ルール・セットを作成します。

RENAME_RULE_SETプロシージャ

ルール・セットの名前を変更します。名前の変更は、そのルール・セットが使用されているすべての箇所に反映されます。

DELETE_RULE_FROM_RULE_SETプロシージャ

ルールをルール・セットから削除します。

DELETE_RULE_SETプロシージャ

ルール・セットを削除します。

UPDATE_RULE_SETプロシージャ

ルール・セットを更新します。

CREATE_RULEプロシージャ

ルールを作成します。

ADD_RULE_TO_RULE_SETプロシージャ

ルールをルール・セットに追加します。

DELETE_RULEプロシージャ

ルールを削除します。

RENAME_RULEプロシージャ

ルールの名前を変更します。名前の変更は、そのルールが使用されているすべての箇所に反映されます。

UPDATE_RULEプロシージャ

ルールを更新します。

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

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMCOMMANDRULEPROCEDURES-07D09C6Bは、DBMS_MACADMパッケージ内のコマンド・ルール・プロシージャを示します。

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

プロシージャ

説明

CREATE_COMMAND_RULEプロシージャ

コマンド・ルールを作成し、ルール・セットに関連付けて、ルール・セットによるコマンド・ルールのルール・チェックが有効化されるようにします。

DELETE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を削除します。

UPDATE_COMMAND_RULEプロシージャ

コマンド・ルールの宣言を更新します。

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

DBMS_MACADMパッケージ内のファクタ・プロシージャおよびファンクションを示します。

表21-4 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プロシージャ

ファクタ・アイデンティティの信頼レベルを更新します。

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

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMSECUREAPPLICATIONROLEPRO-07D16FE7は、DBMS_MACADMパッケージ内のセキュア・アプリケーション・ロール・プロシージャを示します。

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

プロシージャ

説明

CREATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを作成します。

DELETE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを削除します。

RENAME_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールの名前を変更します。名前の変更は、そのロールが使用されているすべての箇所に反映されます。

UPDATE_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールを更新します。

DBMS_MACADMのOracle Label Securityプロシージャ

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMORACLELABELSECURITYPROCE-07D1BB5Bは、DBMS_MACADMパッケージ内のOracle Label Securityプロシージャを示します。

表21-6 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セッション・ラベルを算出する際にラベルのマージに使用されるアルゴリズムを指定します。

DBMS_MACADMの一般管理プロシージャ

apis_ref.htm#GUID-1977D714-6136-49C1-B3FB-31C6D3B45BD4__DBMS_MACADMGENERALADMINISTRATIVEPRO-07D340B0は、DBMS_MACADMパッケージ内の一般管理プロシージャを示します。

表21-7 DBMS_MACADMの一般管理プロシージャ

プロシージャ

説明

ADD_NLS_DATAプロシージャ

Oracle Database Vaultに新しい言語を追加します。

AUTHORIZE_DATAPUMP_USERプロシージャ

Oracle Database Vaultが有効な場合に、Oracle Data Pump操作を実行する権限をユーザーに付与します。

AUTHORIZE_DDLプロシージャ

データ定義言語(DDL)文を実行する認可をユーザーに付与します。

AUTHORIZE_PROXY_USERプロシージャ

他のユーザー・アカウントをプロキシする認可をプロキシ・ユーザーに付与します。

AUTHORIZE_SCHEDULER_USERプロシージャ

Oracle Database Vaultが有効な場合に、データベース・ジョブをスケジュールする権限をユーザーに付与します。

AUTHORIZE_TTS_USERプロシージャ

Oracle Database Vaultが有効な場合に、表領域に対してOracle Data Pumpトランスポータブル表領域操作を実行するようにユーザーを認可します。

UNAUTHORIZE_DATAPUMP_USERプロシージャ

DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_DDLプロシージャ

DBMS_MACDM.AUTHORIZE_DDLプロシージャを使用してDDL文を実行する認可を付与されたユーザーから認可を取り消します。

UNAUTHORIZE_PROXY_USERプロシージャ

DBMS_MACADM.AUTHORIZE_PROXY_USERプロシージャによってプロキシの認可を付与されたユーザーから認可を取り消します。

UNAUTHORIZE_SCHEDULER_USERプロシージャ

DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャによって付与された権限を取り消します。

UNAUTHORIZE_TTS_USERプロシージャ

Oracle Database Vaultが有効な場合に、表領域に対してOracle Data Pumpトランスポータブル表領域操作を実行する認可を付与されたユーザーから認可を取り消します。

DISABLE_DVプロシージャ

Oracle Database Vaultを無効にします。

DISABLE_DV_DICTIONARY_ACCTSプロシージャ

ユーザーがDVSYSやDFVスキーマ・アカウントにログインできないようにします。

DISABLE_DV_PATCH_ADMIN

DV_PATCH_ADMINユーザーの監査を無効にします。

DISABLE_ORADEBUGプロシージャ

Oracle Database Vault環境でORADEBUGユーティリティの使用を無効にします。

ENABLE_DVプロシージャ

Oracle Database Vaultを有効にします。

ENABLE_DV_DICTIONARY_ACCTSプロシージャ

ユーザーがDVSYSやDFVスキーマ・アカウントにログインできるようにします。

ENABLE_DV_PATCH_ADMIN

DV_PATCH_ADMINユーザーの監査を有効にします。

ENABLE_ORADEBUGプロシージャ

Oracle Database Vault環境でORADEBUGユーティリティの使用を有効にします。

関連項目:

- Oracle Database VaultレルムのAPI

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

- Oracle Database Vaultコマンド・ルールのAPI

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

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

- Oracle Database Vault Oracle Label SecurityのAPI

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

DBMS_MACSEC_ROLES PL/SQLパッケージの内容

DBMS_MACSEC_ROLESパッケージを使用すると、Oracle Database Vaultセキュア・アプリケーション・ロールのチェックと設定を行うことができます。

このパッケージは、一般のデータベース・アカウント群で使用できます。

表21-8に、DBMS_MACSEC_ROLESパッケージの内容を示します。

表21-8 DBMS_MACSEC_ROLES PL/SQLパッケージの内容

プロシージャまたはファンクション

説明

CAN_SET_ROLEファンクション

メソッドを起動するユーザーに、指定されたOracle Database Vaultセキュア・アプリケーション・ロールを使用する権限が付与されているかどうかをチェックします。BOOLEAN値を返します。

SET_ROLEプロシージャ

Oracle Database Vaultセキュア・アプリケーション・ロールに対してSET ROLE文を発行します。

DBMS_MACUTL PL/SQLパッケージの内容

DBMS_MACUTL PL/SQLパッケージは、エラー処理など、他のOracle Database Vaultのパッケージで共通に使用される定数およびユーティリティ・メソッドを定義します。

このパッケージは、一般のデータベース・アカウント群で実行できます。このパッケージを使用すると、セキュリティ開発者は、スクリプト化された構成ファイルで定数を利用できます。また、USER_HAS_ROLEなどのユーティリティ・メソッドは、Oracle Database Vaultルールで使用することも可能です。

表21-9に、DBMS_MACUTLパッケージの内容を示します。

表21-9 DBMS_MACUTL PL/SQLパッケージの内容

プロシージャまたはファンクション

説明

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ファンクション

ユーザーがシステム権限を直接保持するのか間接的に(ロールを介して)保持するのかをチェックします。

CONFIGURE_DV PL/SQLプロシージャ

CONFIGURE_DVは、最初の2つのOracle Databaseユーザー・アカウントを構成します。このアカウントには、DV_OWNERロールとDV_ACCTMGRロールがそれぞれ付与されます。

関連項目:

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

- ユーザーを登録するためのこのプロシージャの使用方法については、「Oracle DatabaseへのOracle Database Vaultの登録」を参照してください

DVF PL/SQLインタフェースの内容

DVFスキーマにより、一連のファクタ関連PL/SQLファンクションが提供されます。

その後、ファンクションは一般のデータベース・アカウント群でPL/SQLファンクションおよび標準SQLを介して使用できます。

表21-10に、DVFファクタのファンクションを示します。

表21-10 DVF PL/SQLインタフェースの内容

ファンクション

説明

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

現行ユーザーが認証されたデータベース・ユーザー名を返します。

関連項目:

これらのファンクションの詳細は、「Oracle Database VaultのDVF PL/SQLファクタ・ファンクション」を参照してください

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

Database Vault固有のデータ・ディクショナリ・ビューに問い合せることで、Oracle Database Vaultの構成設定に関する情報を検索できます。

内容は次のとおりです。

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

- DVSYS.DBA_DV_CODEビュー

- DVSYS.DBA_DV_COMMAND_RULEビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

- DVSYS.DBA_DV_DDL_AUTHビュー

- DVSYS.DBA_DV_DICTIONARY_ACCTSビュー

- 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_JOB_AUTHビュー

- DVSYS.DBA_DV_MAC_POLICYビュー

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

- DVSYS.DBA_DV_ORADEBUGビュー

- DVSYS.DBA_DV_PATCH_ADMIN_AUDITビュー

- DVSYS.DBA_DV_POLICY_LABELビュー

- DVSYS.DBA_DV_PROXY_AUTHビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_REALMビュー

- DVSYS.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_STATUSビュー

- DVSYS.DBA_DV_TTS_AUTHビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー

- DVSYS.DV$CONFIGURATION_AUDITビュー

- DVSYS.DV$ENFORCEMENT_AUDITビュー

- SYS.DV$CONFIGURATION_AUDITビュー

- SYS.DV$ENFORCEMENT_AUDITビュー

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

Oracle Database Vaultには、DV_SECANALYSTロールまたはDV_ADMINロールを介してアクセスできる一連のDBAスタイルのデータ・ディクショナリ・ビューが用意されています。

これらのビューは、DVSYSスキーマおよびLBACSYSスキーマの様々な基礎となるOracle Database Vaultの表に、存在する可能性がある主キーおよび外部キーの列を公開せずにアクセスできます。これらのビューは、コア表に格納されているコードまたは関連表のコードに対するラベルを取得しなければならない結合を実行する必要なしに、データベース管理ユーザーがOracle Database Vault構成の状態についてレポートを作成するためのものです。

関連項目:

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(128)

NOT NULL

表22-1に示されているコード・グループのいずれかを表示します。

CODE

VARCHAR(128)

NOT NULL

ブール・コードが使用されます。Y(YES)またはN(NO)のいずれかです。

VALUE

VARCHAR(4000)

NULL

ブール値が使用されます。ブール・コードがYの場合はTrueで、ブール・コードがNの場合はFalseです。

LANGUAGE

VARCHAR(3)

NOT NULL

このOracle Database Vaultインストールの言語。

サポートされる言語は次のとおりです。

- en: 英語

- de: ドイツ語

- es: スペイン語

- fr: フランス語

- it: イタリア語

- ja: 日本語

- ko: 韓国語

- pt_BR: ポルトガル語(ブラジル)

- zh_CN: 簡体字中国語

- zh_TW: 繁体字中国語

DESCRIPTION

VARCHAR(1024)

NULL

コード・グループの簡単な説明。

表22-1では、DVSYS.DBA_DV_CODEデータ・ディクショナリ・ビューのCODE_GROUP列で使用可能な値を示しています。

表22-1 DVSYS.DBA_DV_CODEビューのCODE_GROUPの値

CODE_GROUP名

説明

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マージ・アルゴリズム・コードのリストは、表18-3を参照してください。

OPERATORS

アイデンティティ・マップに使用されるブール演算子

REALM_AUDIT

レルム・アクセスまたはレルム違反を監査するためのオプション

REALM_OPTION

レルムの所有権のオプション

RULESET_AUDIT

ルール・セットの実行またはルール・セット・エラーを監査するためのオプション

RULESET_EVALUATE

関連付けられたルールのすべてがtrueか、関連付けられたルールのいずれかがtrueかによって、ルール・セットの成功または失敗を決定するためのオプション

RULESET_EVENT

ルール・セットが成功または失敗と評価される場合にカスタム・イベント・ハンドラを起動するためのオプション

RULESET_FAIL

ルール・セットの失敗のランタイム表示を決定するためのオプション

DVSYS.DBA_DV_COMMAND_RULEビュー

DVSYS.DBA_DV_COMMAND_RULEデータ・ディクショナリ・ビューには、SQL文のコマンド・ルール保護が表示されます。

コマンド・ルールの詳細は、「コマンド・ルールの構成」を参照してください。

次に例を示します。

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_DDL_AUTHビュー

DVSYS.DBA_DV_DDLデータ・ディクショナリ・ビューでは、DBMS_MACADM.AUTHORIZE_DDLプロシージャで指定されたユーザーとスキーマが表示されます。

このプロシージャにより、データ定義言語(DDL)文を実行する認可がユーザーに付与されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_DDL_AUTH WHERE GRANTEE = 'psmith';

次のような出力が表示されます。

GRANTEE SCHEMA
------- ------
PSMITH  HR

列

データ型

NULL

説明

GRANTEE

VARCHAR2(128)

NOT NULL

DDL認可を付与されたユーザーの名前。

SCHEMA

VARCHAR2(128)

NOT NULL

ユーザーGRANTEEがDDL操作の実行を認可されるスキーマの名前。

関連項目:

- AUTHORIZE_DDLプロシージャ

- UNAUTHORIZE_DDLプロシージャ

DVSYS.DBA_DV_DICTIONARY_ACCTSビュー

DVSYS.DBA_DV_DICTIONARY_ACCTSデータ・ディクショナリ・ビューでは、ユーザーがDVSYSスキーマ・アカウントとDVFスキーマ・アカウントに直接ログインできるかどうかが示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_DICTIONARY_ACCTS;

次のような出力が表示されます。

STATE
-------
ENABLED

列

データ型

NULL

説明

STATE

VARCHAR2(8)

NOT NULL

ユーザーがDVSYSスキーマとDVFスキーマに直接ログインできるかどうかについて説明します。可能な値は次のとおりです。

- ENABLEDは、ユーザーがDVSYSスキーマとDVFスキーマに直接ログインできることを示します。

- DISABLEDは、ユーザーがDVSYSスキーマとDVFスキーマに直接ログインできないことを示します。

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(128)

NOT NULL

親ファクタの名前

CHILD_FACTOR_NAME

VARCHAR(128)

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(128)

NOT NULL

ファクタ・タイプの名前。

DESCRIPTION

VARCHAR(1024)

NULL

ファクタ・タイプの説明。

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(128)

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(128)

NOT NULL

アイデンティティ・マップの対象のファクタ。

IDENTITY_VALUE

VARCHAR(1024)

NOT NULL

アイデンティティ・マップの評価がTRUEの場合は、ファクタで想定される値。

OPERATION_CODE

VARCHAR(128)

NOT NULL

OPERATION_VALUE列における操作の説明的な名前。

OPERATION_VALUE

VARCHAR(4000)

NULL

アイデンティティ・マップの関係演算子(たとえば、<、>、=など)。

OPERAND1

VARCHAR(1024)

NULL

関係演算子の左オペランド。入力する下限値を表します。

OPERAND2

VARCHAR(1024)

NULL

関係演算子の右オペランド。入力する上限値を表します。

PARENT_FACTOR_NAME

VARCHAR(128)

NULL

マップが関連する親ファクタ・リンク。

CHILD_FACTOR_NAME

VARCHAR(128)

NULL

マップが関連する子ファクタ・リンク。

LABEL_IND

VARCHAR(1)

NULL

親ファクタにリンクされた子ファクタが、Oracle Label Security統合での親ファクタのラベルに含まれるかどうかを示します。可能な値は次のとおりです。

- Y(YES)

- N(NO)

DVSYS.DBA_DV_JOB_AUTHビュー

DVSYS.DBA_DV_JOB_AUTHデータ・ディクショナリ・ビューでは、Oracle Database Vault環境でOracle Schedulerを使用するための認可が表示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_JOB_AUTH WHERE GRANTEE = 'PRESTON';

次のような出力が表示されます。

GRANTEE SCHEMA
------- ------
PRESTON OE

列

データ型

NULL

説明

GRANTEE

VARCHAR2(128)

NOT NULL

Oracle Scheduler認可を付与されたユーザーの名前。

SCHEMA

VARCHAR2(128)

NOT NULL

ユーザーGRANTEEがOracle Scheduler操作の実行を認可されるスキーマの名前。

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(128)

NOT NULL

ポリシーに使用されるマージ・アルゴリズム・コード。アルゴリズム・コードのリストは、表18-3を参照してください。

ALGORITHM_MEANING

VARCHAR(4000)

NULL

ALGORITHM_CODE列の対応する値にテキスト説明が提供されます。アルゴリズム・コードの説明のリストは、表18-3を参照してください。

ERROR_LABEL

VARCHAR(4000)

NULL

初期化エラーに対して指定されたラベル。セッションの初期化中に構成エラーまたはランタイム・エラーが発生すると設定されます。

DVSYS.DBA_DV_MAC_POLICY_FACTORビュー

DVSYS.DBA_DV_MAC_POLICYデータ・ディクショナリ・ビューでは、Oracle Label Securityポリシーに関連付けられているファクタが表示されます。

このビューを使用して、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(128)

NOT NULL

ファクタの名前

MAC_POLICY_NAME

VARCHAR(30)

NOT NULL

このファクタに関連付けられているOracle Label Securityポリシーの名前

DVSYS.DBA_DV_ORADEBUGビュー

DVSYS.DBA_DV_ORADEBUGデータ・ディクショナリ・ビューは、ユーザーがOracle Database Vault環境でORADEBUGユーティリティを使用できるかどうかを示します。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_ORADEBUG;

次のような出力が表示されます。

STATE
--------
DISABLED

列

データ型

NULL

説明

STATE

VARCHAR2(8)

NOT NULL

Database Vaultが有効な環境でORADEBUGユーティリティを使用できるかどうかについて説明します。可能な値は次のとおりです。

- ENABLEDは、ユーザーがORADEBUGユーティリティを実行できることを示します。

- DISABLEDは、ユーザーがORADEBUGユーティリティを実行できないことを示します。

DVSYS.DBA_DV_PATCH_ADMIN_AUDITビュー

DVSYS.DBA_DV_PATCH_ADMIN_AUDITデータ・ディクショナリ・ビューには、DV_ADMIN_PATCHロールを持つユーザーに対して監査が有効か無効かが示されます。

DBMS_MACADM.ENABLE_DV_PATCH_ADMIN_AUDITプロシージャは、このタイプの監査を有効にします。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_PATCH_ADMIN_AUDIT;

次のような出力が表示されます。

STATE
--------
DISABLED

列

データ型

NULL

説明

STATE

VARCHAR2(8)

NOT NULL

DV_ADMIN_PATCHロールのユーザーに対して監査が有効か無効かについて説明します。可能な値は次のとおりです。

- ENABLEDは、監査が有効になっていることを示します。

- DISABLEDは、監査が無効になっていることを示します。

関連項目:

- ENABLE_DV_PATCH_ADMIN_AUDITプロシージャ

- DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ

DVSYS.DBA_DV_POLICY_LABELビュー

DVSYS.DBA_DV_POLICY_LABELデータ・ディクショナリ・ビューでは、各ポリシーの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(128)

NOT NULL

ファクタ識別子に関連付けられているファクタの名前。

POLICY_NAME

VARCHAR(30)

NOT NULL

このファクタに関連付けられているOracle Label Securityポリシーの名前。

LABEL

VARCHAR(4000)

NOT NULL

ポリシーに関連付けられているOracle Label Securityラベルの名前。

DVSYS.DBA_DV_PROXY_AUTHビュー

DVSYS.DBA_DV_PROXY_AUTHデータ・ディクショナリ・ビューでは、DBMS_MACADM.AUTHORIZE_PROXY_USERプロシージャで指定されたプロキシ・ユーザーとスキーマが表示されます。

このプロシージャは、他のユーザー・アカウントをプロキシする認可をプロキシ・ユーザーに付与します。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_DDL_AUTH WHERE GRANTEE = 'PRESTON';

次のような出力が表示されます。

GRANTEE SCHEMA
------- ------
PRESTON DKENT

列

データ型

NULL

説明

GRANTEE

VARCHAR2(128)

NOT NULL

プロキシ・ユーザーの名前

SCHEMA

VARCHAR2(128)

NOT NULL

GRANTEEユーザーによってプロキシされるスキーマの名前。

関連項目:

- AUTHORIZE_PROXY_USERプロシージャ

- UNAUTHORIZE_PROXY_USERプロシージャ

DVSYS.DBA_DV_PUB_PRIVSビュー

DVSYS.DBA_DV_PUB_PRIVSデータ・ディクショナリ・ビューには、Oracle Database Vault Administratorで使用される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(128)

NOT NULL

現在のデータベース・インスタンス内のデータベース・スキーマ。

ACCESS_TYPE

VARCHAR(128)

NULL

USERNAME列に表示されたユーザーに付与されているアクセス・タイプ(PUBLICなど)。

PRIVILEGE

VARCHAR(40)

NOT NULL

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(128)

NOT NULL

USERNAMEのユーザーが権限を付与されているデータベース・スキーマの所有者。

OBJECT_NAME

VARCHAR(128)

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.DV$REALMビュー

DVSYS.DV$REALMデータ・ディクショナリ・ビューには、現行のデータベース・インスタンスで作成されたレルムが表示されます。

また、レルムの作成者や更新者、レルムの作成日や更新日などの情報も示します。

次に例を示します。

SELECT NAME, CREATED_BY, TYPE FROM DVSYS.DV$REALM WHERE NAME LIKE 'Statistics';

次のような出力が表示されます。

NAME                         CREATED_BY TYPE
---------------------------- ---------- -----
Performance Statistics Realm JGODFREY   2

関連するビュー

- DVSYS.DBA_DV_REALMビュー

列

データ型

NULL

説明

ID#

NUMBER

NOT NULL

レルムのID番号

NAME

VARCHAR2(128)

NOT NULL

レルムの名前

DESCRIPTION

VARCHAR2(1024)

NULL

レルムの説明

AUDIT_OPTIONS

NUMBER

NOT NULL

レルムに設定された監査オプション。可能な値については、表13-10の「audit_options」を参照してください。

ENABLED

VARCHAR2(1)

NOT NULL

レルムが有効かどうか。可能な値については、表13-10の「enabled」を参照してください。

REALM_TYPE

NUMBER

NULL

レルムのタイプ: 通常のレルムと必須レルムのどちらになるか。可能な値については、表13-10の「realm_type」を参照してください。

VERSION

NUMBER

NULL

レルムが作成されたOracle Database Vaultのバージョン

CREATED_BY

VARCHAR2(128)

NULL

レルムを作成したユーザー

CREATE_DATE

DATE

NULL

レルムの作成日。

UPDATED_BY

VARCHAR2(128)

NULL

レルムを最後に更新したユーザー

UPDATE_DATE

DATE

NULL

レルムが最後に更新された日付

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)

NULL

認可の前にチェックするルール・セット。ルール・セットの評価がTRUEの場合は、認可が許可されます。

AUTH_OPTIONS

VARCHAR(4000)

NULL

レルム認可のタイプ。「参加者」または「所有者」のいずれかです。

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'

特定のルールを使用するルール・セットを検索する場合は、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(128)

NOT NULL

ルール・セットの名前。

DESCRIPTION

VARCHAR(1024)

NULL

ルール・セットの説明。

ENABLED

VARCHAR(1)

NOT NULL

ルール・セットが有効になっているかどうかを示します。Y(YES)の場合、ルール・セットは有効になり、N(NO)の場合、ルール・セットは無効になります。

EVAL_OPTIONS_MEANING

VARCHAR(4000)

NULL

複数のルールが含まれるルール・セットの場合、評価されるルールの数が決まります。可能な値は次のとおりです。

- すべてTrue: ルール・セット自体がTRUEと評価されるために、ルール・セットのルールはすべてTrueと評価される必要があります。

- いずれかTrue: ルール・セット自体がTRUEと評価されるために、少なくともルール・セットの1つのルールがTrueと評価される必要があります。

AUDIT_OPTIONS

NUMBER

NOT NULL

監査が使用される時期を示します。可能な値は次のとおりです。

- 0: 監査なし

- 1: 失敗時に監査

- 2: 成功時に監査

- 3: 失敗時と成功時の両方に監査

FAIL_OPTIONS_MEANING

VARCHAR(4000)

NULL

ルール・セットに対して監査レコードが作成される時期が決定されます。可能な値は次のとおりです。

- エラー・メッセージを表示しない。

- Show Error Message

FAIL_MESSAGE

VARCHAR(80)

NULL

FAIL_CODE列に表示された失敗コードに関連付けられている失敗に対するエラー・メッセージ。

FAIL_CODE

VARCHAR(10)

NULL

FAIL_MESSAGE列に表示されたメッセージに関連付けられているエラー・メッセージ番号。考えられる値の範囲は、-20000から-20999と20000から20999です。

HANDLER_OPTIONS

NUMBER

NOT NULL

エラー処理の使用方法が決まります。可能な値は次のとおりです。

- 0: エラー処理を無効にします。

- 1: ルール・セット失敗時にハンドラをコールします。

- 2: ルール・セット成功時にハンドラをコールします。

HANDLER

VARCHAR(1024)

NULL

カスタム・イベント・ハンドラ・ロジックを定義するPL/SQLファンクションまたはプロシージャの名前。

IS_STATIC

VARCHAR2(5)

NULL

ユーザー・セッション中にルール・セットが評価される頻度を示します。可能な値は次のとおりです。

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

NULL

ルールが有効になっているか無効になっているかを示します。Y(YES)の場合、ルール・セットは有効になり、N(NO)の場合、ルール・セットは無効になります。

RULE_ORDER

NUMBER

NOT NULL

ルール・セット内でルールが使用される順序。このリリースには適用されません。

DVSYS.DBA_DV_STATUSビュー

DVSYS.DBA_DV_STATUSデータ・ディクショナリ・ビューには、有効化され構成されているOracle Database Vaultのステータスが示されます。

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_STATUS;

次のような出力が表示されます。

NAME                 STATUS
-------------------- ------
DV_CONFIGURE_STATUS  TRUE
DV_ENABLE_STATUS     TRUE

列

データ型

NULL

説明

NAME

VARCHAR2(19)

NOT NULL

次の設定のいずれかを示します。

- DV_CONFIGURE_STATUSは、Oracle Database Vaultが構成されているかどうか、つまり、DVSYS.CONFIGURE_DVプロシージャが使用されたかどうかを示します。

- DV_ENABLE_STATUSは、Oracle Database Vaultが有効になっているかどうか、つまり、DBMS_MACADM.ENABLE_DVプロシージャが使用されたかどうかを示します。

STATUS

VARCHAR2(64)

NOT NULL

TRUEはOracle Database Vaultが構成され有効になっていることを意味し、FALSEはそうでないことを意味します。

DVSYS.DBA_DV_TTS_AUTHビュー

DVSYS.DBA_DV_TTS_AUTHデータ・ディクショナリ・ビューには、Oracle Data Pumpのトランスポータブル操作を実行するための権限をDBMS_MACADM.AUTHORIZE_TTS_USERプロシージャによって与えられたユーザーが示されます。

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

次に例を示します。

SELECT * FROM DVSYS.DBA_DV_TTS_AUTH;

次のような出力が表示されます。

GRANTEE  TSNAME
-------- --------
DB_MGR   HR_TS

関連するビュー

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー

列

データ型

NULL

説明

GRANTEE

VARCHAR(128)

NOT NULL

トランスポータブル表領域の権限を付与されたユーザーの名前

TSNAME

VARCHAR(128)

NOT NULL

GRANTEEのユーザーが権限を付与されているトランスポータブル表領域の名前

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(128)

NOT NULL

権限が定義されているデータベース・スキーマ・アカウントの名前。

ACCESS_TYPE

VARCHAR(128)

NULL

USERNAME列に表示されたデータベース・ユーザー・アカウントがデータベースへのアクセスに使用するロール。Oracle Database Vaultアカウントには直接アクセス権があります。

PRIVILEGE

VARCHAR(40)

NOT NULL

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(128)

NOT NULL

データベース・ユーザー・アカウントの名前。

OBJECT_NAME

VARCHAR(128)

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
------------------- ------------ -----------------
bea_DVACCTMGR  CONNECT      CREATE_SESSION
LEO_DVOWNER      DIRECT       CREATE PROCEDURE
...

関連するビュー

- DVSYS.DBA_DV_PUB_PRIVSビュー

- DVSYS.DBA_DV_ROLEビュー

- DVSYS.DBA_DV_USER_PRIVSビュー

列

データ型

NULL

説明

USERNAME

VARCHAR(128)

NULL

権限が定義されているデータベース・スキーマ・アカウントの名前。

ACCESS_TYPE

VARCHAR(128)

NULL

USERNAME列に表示されたデータベース・ユーザー・アカウントがデータベースへのアクセスに使用するロール。Oracle Database Vaultアカウントには直接アクセス権があります。

PRIVILEGE

VARCHAR(40)

NULL

USERNAME列に表示されたユーザーに付与されている権限。

OWNER

VARCHAR(128)

NULL

データベース・ユーザー・アカウントの名前。

OBJECT_NAME

VARCHAR(128)

NULL

権限の定義に使用されるPL/SQLファンクションまたはプロシージャの名前。

DVSYS.DV$CONFIGURATION_AUDITビュー

DVSYS.DV$CONFIGURATION_AUDITデータ・ディクショナリ・ビューは、表DVSYS.AUDIT_TRAIL$の監査レコードを取得します。

このビューには、レルム、ルール、ルール・セット、ファクタ、その他のOracle Database Vaultポリシー構成アクティビティに対して行われた構成変更の成功および失敗に関連するレコードが含まれます。

次に例を示します。

SELECT USERNAME, ACTION_NAME FROM DVSYS.DV$CONFIGURATION_AUDIT
WHERE USERNAME = 'PSMITH';

次のような出力が表示されます。

USERNAME   ACTION_NAME
---------- ---------------------
PSMITH     Realm Creation Audit
PSMITH     Rule Set Update Audit

関連するビュー

- SYS.DV$CONFIGURATION_AUDITビュー

列

データ型

NULL

説明

ID#

NUMBER

NOT NULL

監査レコードごとの数値識別子。

OS_USERNAME

VARCHAR(255)

NULL

アクションが監査対象となったユーザーのオペレーティング・システムのログイン・ユーザー名。

USERNAME

VARCHAR(128)

NULL

アクションが監査対象となったデータベース・ユーザーの名前。

USERHOST

VARCHAR2(128)

NULL

クライアント・コンピュータ名。

TERMINAL

VARCHAR2(30)

NULL

ユーザーの端末に対する識別子。

TIMESTAMP

DATA

NULL

監査証跡エントリの作成日時(ローカル・データベース・セッションのタイムゾーン)。

OWNER

VARCHAR2(128)

NULL

アクションの影響を受けるオブジェクトの作成者、常時DVSYS(DVSYSでオブジェクトが作成されるため)

OBJ_NAME

VARCHAR2(128)

NULL

アクションの影響を受けるオブジェクトの名前。想定値は次のとおりです。

- ROLE$

- REALM$

- CODE$

- FACTOR$

ACTION

NUMBER

NOT NULL

数値のアクション・タイプ・コード。アクション・タイプに対応する名前は、ACTION_NAME列に示されます。使用可能なアクションのリストは、表22-2を参照してください。

ACTION_NAME

VARCHAR2(128)

NULL

ACTION列の数値コードに対応するアクション・タイプの名前。使用可能なアクションのリストは、表22-2を参照してください。

ACTION_OBJECT_ID

NUMBER

NULL

OBJ_NAMEに指定された表のレコードの一意の識別子

ACTION_OBJECT_NAME

VARCHAR2(128)

NULL

OBJ_NAMEに指定された表のレコードの一意の名前または固有のキー

ACTION_COMMAND

VARCHAR2(4000)

NULL

実行された結果、監査イベントがトリガーされたコマンド・プロシージャのSQLテキスト。

AUDIT_OPTION

VARCHAR2(4000)

NULL

結果として監査イベントがトリガーされたレコードに指定されたすべての監査オプションのラベル。たとえば、失敗またはNULLになったときに監査することになっているファクタ設定操作では、これら2つのオプションを指します。

RULE_SET_ID

NUMBER

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の識別子。

RULE_SET_NAME

VARCHAR2(128)

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の名前。

RULE_ID

NUMBER

NULL

未使用

RULE_NAME

VARCHAR2(128)

NULL

未使用

FACTOR_CONTEXT

VARCHAR2(4000)

NULL

監査イベントがトリガーされた時点での、現行セッションに対するすべてのファクタ識別子を含むXML文書。

COMMENT_TEXT

VARCHAR2(4000)

NULL

監査対象となった文の詳細を示す、監査証跡エントリについてのテキスト・コメント。

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

NULL

UTC(協定世界時)タイムゾーンの、監査証跡エントリの作成時のタイムスタンプ(エントリに対するユーザー・ログインのタイムスタンプ)。

PROXY_SESSIONID

NUMBER

NULL

エンタープライズ・ユーザーがプロキシ機構を介してログインした場合の、プロキシ・セッションのシリアル番号

GLOBAL_UID

VARCHAR2(32)

NULL

ユーザーがエンタープライズ・ユーザーとしてログインした場合の、ユーザーのグローバル・ユーザー識別子。

INSTANCE_NUMBER

NUMBER

NULL

INSTANCE_NUMBER初期化パラメータによって指定されるインスタンス番号

OS_PROCESS

VARCHAR2(16)

NULL

Oracleプロセスのオペレーティング・システム・プロセス識別子

CREATED_BY

VARCHAR2(128)

NULL

アクションが監査対象となったユーザーのデータベースのログイン・ユーザー名。

CREATE_DATE

DATE

NULL

SYSDATEの日付を基にした、アクションが発生した日付。

UPDATED_BY

VARCHAR2(128)

NULL

CREATED_BY列の値と同じ。

UPDATE_DATE

DATE

NULL

UPDATED_BY列の値と同じ。

GRANTEE

VARCHAR2(128)

NULL

Database Vaultで保護されるロール、レルム認可、コマンドルール認可、ジョブ・スケジューラ認可またはOracle Data Pump認可が付与されているユーザーのユーザーID

ENABLED_STATUS

VARCHAR2(1)

NULL

構成が有効だったかどうかを示します。

表22-2では、DVSYS.DV$CONFIGURATION_AUDITビューのACTION列で使用可能な値を示しています。

表22-2 DVSYS.DV$CONFIGURATION_AUDITビューのACTIONの値

アクション・タイプ・コード

アクション名

20001

DV強制有効化の監査

20002

DV強制無効化の監査

20003

レルム作成の監査

20004

レルム更新の監査

20005

レルム名変更の監査

20006

レルム削除の監査

20007

レルム認可追加の監査

20008

レルム認可削除の監査

20009

レルム認可更新の監査

20010

レルム・オブジェクト追加の監査

20011

レルム・オブジェクト更新の監査

20012

レルム・オブジェクト削除の監査

20013

イベント有効化の監査

20014

イベント無効化の監査

20015

ルール・セット作成の監査

20016

ルール・セット更新の監査

20017

ルール・セット名変更の監査

20018

ルール・セット削除の監査

20019

ルール・セットへのルール追加の監査

20020

ルール・セットからのルール削除の監査

20021

ルール作成の監査

20022

ルール更新の監査

20023

ルール名変更の監査

20024

ルール削除の監査

20025

CommandRule作成の監査

20026

CommandRule更新の監査

20027

CommandRule削除の監査

20028

データポンプ・ユーザー認可の監査

20029

データポンプ・ユーザー認可解除の監査

20030

ジョブ・ユーザー認可の監査

20031

ジョブ・ユーザー認可解除の監査

20032

Factor_Type作成の監査

20033

Factor_Type削除の監査

20034

Factor_Type更新の監査

20035

Factor_Type名変更の監査

20036

ファクタ作成の監査

20037

G_FACTOR_DELETION_AUDIT_CODE

20038

ファクタ更新の監査

20039

ファクタ名変更の監査

20040

ファクタ・リンク追加の監査

20041

ファクタ・リンク削除の監査

20042

ポリシー・ファクタ追加の監査

20043

ポリシー・ファクタ削除の監査

20044

アイデンティティ作成の監査

20045

アイデンティティ削除の監査

20046

アイデンティティ更新の監査

20047

アイデンティティ・ファクタ変更の監査

20048

アイデンティティ値変更の監査

20049

アイデンティティ・マップ作成の監査

20050

アイデンティティ・マップ削除の監査

20051

ポリシー・ラベル作成の監査

20052

ポリシー・ラベル削除の監査

20053

MACポリシー作成の監査

20054

マップ・ポリシー更新の監査

20055

マップ・ポリシー削除の監査

20056

ロール作成の監査

20057

ロール削除の監査

20058

ロール更新の監査

20059

ロール名変更の監査

20060

ドメイン・アイデンティティ作成の監査

20061

ドメイン・アイデンティティ削除の監査

20062

Oradebug有効化の監査

20063

Oradebug無効化の監査

20064

プロキシ・ユーザー認可の監査

20065

プロキシ・ユーザー認可解除の監査

20066

DVディクショナリ・アカウント有効化の監査

20067

DVディクショナリ・アカウント無効化の監査

20068

DDL認可の監査

20069

DDL認可解除の監査

20070

TTS認可の監査

20071

TTS認可解除の監査

20072

PREPROCESSOR認可の監査

20073

PREPROCESSOR認可解除の監査

20074

ポリシー作成の監査

20075

ポリシー説明更新の監査

20076

ポリシー状態更新の監査

20077

ポリシー名変更の監査

20078

ポリシー削除の監査

20079

ポリシーへのレルム追加の監査

20080

ポリシーからのレルム削除の監査

20081

ポリシーへのコマンド・ルール追加の監査

20082

ポリシーからのコマンド・ルール削除の監査

20083

ポリシー所有者追加の監査

20084

ポリシー所有者削除の監査

20085

メンテナンス認可の監査

20086

メンテナンス認可解除の監査

DVSYS.DV$ENFORCEMENT_AUDITビュー

DVSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューでは、DVSYS.AUDIT_TRAIL$表の強制関連監査の詳細が提供されます。

コマンド・ルール、レルムおよびファクタに関するユーザー違反を取得します。

次に例を示します。

SELECT USERNAME, ACTION_COMMMAND FROM DVSYS.DV$ENFORCEMENT_AUDIT
WHERE OWNER = 'HR';

次のような出力が表示されます。

USERNAME    ACTION_COMMMAND
----------- ------------------------------
PSMITH      CREATE_REALM

関連するビュー

- SYS.DV$ENFORCEMENT_AUDITビュー

列

データ型

NULL

説明

ID#

NUMBER

NOT NULL

監査レコードごとの数値識別子。

OS_USERNAME

VARCHAR(255)

NULL

アクションが監査対象となったユーザーのオペレーティング・システムのログイン・ユーザー名。

USERNAME

VARCHAR(128)

NULL

アクションが監査対象となったデータベース・ユーザーの名前。

USERHOST

VARCHAR(255)

NULL

クライアント・コンピュータ名。

TERMINAL

VARCHAR(255)

NULL

ユーザーの端末に対する識別子。

TIMESTAMP

DATE

NULL

監査証跡エントリの作成日時(ローカル・データベース・セッションのタイムゾーン)。

OWNER

VARCHAR(128)

NULL

アクションの影響を受けるオブジェクトの作成者、常時DVSYS(DVSYSでオブジェクトが作成されるため)

OBJ_NAME

VARCHAR(128)

NULL

アクションの影響を受けるオブジェクトの名前。想定値は次のとおりです。

- ROLE$

- REALM$

- CODE$

- FACTOR$

ACTION

NUMBER

NOT NULL

数値のアクション・タイプ・コード。アクション・タイプに対応する名前は、ACTION_NAME列に示されます。使用可能なアクションのリストは、表22-3を参照してください。

ACTION_NAME

VARCHAR(128)

NULL

ACTION列の数値コードに対応するアクション・タイプの名前

ACTION_OBJECT_ID

NUMBER

NULL

OBJ_NAMEに指定された表のレコードの一意の識別子

ACTION_OBJECT_NAME

VARCHAR(128)

NULL

OBJ_NAMEに指定された表のレコードの一意の名前または固有のキー

ACTION_COMMAND

VARCHAR2(4000)

NULL

実行された結果、監査イベントがトリガーされたコマンド・プロシージャのSQLテキスト。

AUDIT_OPTION

VARCHAR2(4000)

NULL

結果として監査イベントがトリガーされたレコードに指定されたすべての監査オプションのラベル。たとえば、失敗またはNULLになったときに監査することになっているファクタ設定操作では、これら2つのオプションを指します。

RULE_SET_ID

NUMBER

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の識別子。

RULE_SET_NAME

VARCHAR(128)

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の名前。

RULE_ID

NUMBER

NULL

未使用

RULE_NAME

VARCHAR2(128)

NULL

未使用

FACTOR_CONTEXT

VARCHAR2(4000)

NULL

監査イベントがトリガーされた時点での、現行セッションに対するすべてのファクタ識別子を含むXML文書。

COMMENT_TEXT

VARCHAR2(4000)

NULL

監査対象となった文の詳細を示す、監査証跡エントリについてのテキスト・コメント。

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

NULL

UTC(協定世界時)タイムゾーンの、監査証跡エントリの作成時のタイムスタンプ(エントリに対するユーザー・ログインのタイムスタンプ)。

PROXY_SESSIONID

NUMBER

NULL

エンタープライズ・ユーザーがプロキシ機構を介してログインした場合の、プロキシ・セッションのシリアル番号

GLOBAL_UID

VARCHAR2(32)

NULL

ユーザーがエンタープライズ・ユーザーとしてログインした場合の、ユーザーのグローバル・ユーザー識別子。

INSTANCE_NUMBER

NUMBER

NULL

INSTANCE_NUMBER初期化パラメータによって指定されるインスタンス番号

OS_PROCESS

VARCHAR2(16)

NULL

Oracleプロセスのオペレーティング・システム・プロセス識別子

CREATED_BY

VARCHAR2(128)

NULL

アクションが監査対象となったユーザーのデータベースのログイン・ユーザー名。

CREATE_DATE

DATE

NULL

SYSDATEの日付を基にした、アクションが発生した日付。

UPDATED_BY

VARCHAR2(128)

NULL

CREATED_BY列の値と同じ。

UPDATE_DATE

DATE

NULL

UPDATED_BY列の値と同じ。

次の表では、DVSYS.DV$ENFORCEMENT_AUDITビューのACTION列で使用される値を示します。

表22-3 DVSYS.DV$ENFORCEMENT_AUDITビューのACTIONの値

アクション・タイプ・コード

アクション名

10000

ファクタ評価の監査

10001

ファクタ割当ての監査

10002

ファクタ式の監査

10003

レルム違反の監査

10004

レルム認可の監査

10005

コマンド認可の監査

10006

セキュア・ロールの監査

10007

セッション初期化の監査

10008

セキュア・コマンド認可の監査

10009

OLSセッション初期化の監査

10010

OLSラベル・アップグレード試行の監査

10011

コマンド失敗の監査

SYS.DV$CONFIGURATION_AUDITビュー

SYS.DV$CONFIGURATION_AUDITビューは、統合監査証跡のDatabase Vault監査レコードを取得する点を除き、DVSYS.DV$CONFIGURATION_AUDITビューとほぼ同じです。

関連項目:

DVSYS.DV$CONFIGURATION_AUDITビュー

SYS.DV$ENFORCEMENT_AUDITビュー

SYS.DV$ENFORCEMENT_AUDITビューは、統合監査証跡のDatabase Vault監査レコードを取得する点を除き、DVSYS.DV$ENFORCEMENT_AUDITビューとほぼ同じです。

関連項目:

DVSYS.DV$ENFORCEMENT_AUDITビュー

23 Oracle Database Vaultの監視

Database Vault構成への違反のチェックおよびポリシーの変更の追跡を行うことにより、Oracle Database Vaultを監視できます。

内容は次のとおりです。

- セキュリティ違反未遂の監視

- セキュリティ・ポリシー変更の監視

セキュリティ違反未遂の監視

定期的にOracle Database Vault構成に対する違反をチェックする必要があります。

内容は次のとおりです。

- セキュリティ違反未遂の監視について

- Oracle Database Vault Administratorによるセキュリティ違反の監視

セキュリティ違反未遂の監視について

レルム違反やコマンド・ルール違反などのセキュリティ違反をチェックできます。

この機能を使用すると、違反をコミットしたユーザーの名前、コミットしたアクションおよびアクティビティのタイムスタンプなどのデータが表示されます。

これらのイベントを表示する前に、データベースを統合監査に移行していない場合は、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。統合監査を使用するようにデータベースを移行した場合、追加の設定を構成する必要はありません。セキュリティ違反を確認する準備ができました。

Oracle Database Vault Administratorによるセキュリティ違反の監視

適切なロールを付与されているユーザーは、Oracle Database Vault Administratorを使用してセキュリティ違反を監視できます。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「ホーム」ページの「レポート」で、「違反未遂」を選択します。

3. 「違反未遂レポート」ページで、期間とその他のフィルタ設定を設定して取得するデータを定義し、「実行」をクリックします。

次のページのようなレポートが表示されます。

4. 終了するには、「OK」をクリックします。

セキュリティ・ポリシー変更の監視

定期的にOracle Database Vault構成に対する変更をチェックする必要があります。

内容は次のとおりです。

- セキュリティ・ポリシー変更の監視について

- Oracle Database Vaultによるカテゴリ別のセキュリティ・ポリシー変更の監視

セキュリティ・ポリシー変更の監視について

Oracle Database Vault AdministratorのDatabase Vaultポリシー変更レポートは、セキュリティ設定に加えられた変更を追跡します。

次に示すカテゴリについて、ポリシー変更数を確認できます。これらのカテゴリは、任意の環境のデータベース・セキュリティ・ポリシー(つまり構成)を反映します。セキュリティに関連した何かが変更された場合は、グラフや表を使用して掘り下げ、調査する必要がある予期しない変更を発見できます。

これらのイベントを表示する前に、データベースを統合監査に移行していない場合は、AUDIT_TRAIL初期化パラメータがDBまたはDB, EXTENDEDに設定されていることを確認する必要があります。統合監査を使用するようにデータベースを移行した場合、追加の設定を構成する必要はありません。Database Vaultポリシーの変更があるかどうかを確認する準備ができました。

- 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文に対する変更を示します。

Oracle Database Vaultによるカテゴリ別のセキュリティ・ポリシー変更の監視

適切なロールを付与されているユーザーは、Oracle Database Vault Administratorを使用してカテゴリ別にセキュリティ・ポリシーの変更を監視できます。

1. DV_OWNER、DV_ADMIN、DV_MONITORまたはDV_SECANALYSTロールを付与されているユーザーとして、Cloud ControlからOracle Database Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「ホーム」ページの「レポート」で、「Database Vaultポリシー変更」を選択します。

3. 「違反未遂レポート」ページで、期間とその他のフィルタ設定を設定して取得するデータを定義し、「実行」をクリックします。

次のページのようなレポートが表示されます。

4. 終了するには、「OK」をクリックします。

24 Oracle Database Vaultレポート

Oracle Database Vaultには、Database Vaultの構成設定などのアクティビティを追跡するレポートが用意されています。

内容は次のとおりです。

- Oracle Database Vaultレポートについて

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

- Oracle Database Vaultレポートの実行

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

- Oracle Database Vaultの監査レポート

- Oracle Database Vaultの一般セキュリティ・レポート

関連項目:

- Enterprise Manager Cloud ControlにおけるOracle Database Vault固有レポート

- Database Vaultアクティビティを追跡できるその他の方法については、「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レポートの実行

適切なロールを付与されているユーザーは、Database Vault AdministratorからOracle Database Vaultレポートを実行できます。

1. DV_OWNER、DV_ADMINまたはDV_SECANALYSTロールを付与されているユーザーとして、Cloud ControlからDatabase Vault Administratorにログインします。

ログイン方法については、「Oracle Database Vaultへのログイン」で説明します。

2. 「ホーム」ページの「レポート」で、「Database Vaultレポート」を選択します。

次のようなページが表示されます。

3. 左側で、目的のレポートのカテゴリを選択します。

- Database Vault構成の問題

- Database Vault強制監査レポート

- Database Vault構成変更

4. 「レポート」ページで、レポートを含むカテゴリを展開します。

たとえば、「ルール・セット構成の問題」レポートを検索するには、「Database Vault構成の問題」を展開する必要があります。

5. レポート(「ルール・セット構成の問題」など)を選択します。

レポートが右ペインに表示されます。

6. オプションで、「検索」フィールドを使用してレポートを絞り込みます。

たとえば、特定のルール・セットを含むレポート済インシデントを検索できます。「検索」フィールドの内容は、レポートによって異なります。

7. レポートの表示が完了したら、「OK」ボタンをクリックします。

Oracle 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ラベル)が削除されていて、すでに存在しない。

- アイデンティティに対してマップが存在しない。

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

「セキュア・アプリケーション構成の問題」レポートは、Database Vaultのセキュア・アプリケーション・ロールの構成に関する問題を示します。

これらの問題は次のとおりです。

- データベース・ロールが存在しない。この状況は、データベース・ロールが削除された場合に発生する可能性があります。

- ロールのルール・セットが無効である。

- ロールのルール・セットが不完全である。

Oracle 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監査証跡」レポートは、コア・アクセス・セキュリティ・セッション初期化の操作によって生成される監査レコードを示します。

アクセス・セキュリティ・セッションの初期化に失敗したインスタンスを監査できます。次のデータが表示されます。

データA-R

データR-U

アカウント

ルール・セット

コマンド

タイムスタンプ

インスタンス番号

ルール・セット

オブジェクト名

ユーザー・ホスト

リターン・コード

-

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

「セキュア・アプリケーション・ロールの監査」レポートは、Oracle Database Vaultのセキュア・アプリケーション・ロールを有効にする操作によって生成される監査レコードを示します。

関連項目:
Oracle Database Vaultのセキュア・アプリケーション・ロールの構成

Oracle Database Vaultの一般セキュリティ・レポート

一般的なセキュリティ・レポートは、PUBLICに関連したオブジェクト権限やデータベース・アカウントまたはロールに付与された権限などの情報を追跡します。

内容は次のとおりです。

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

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

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

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

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

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

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

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

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

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

オブジェクト権限レポートは、PUBLICの影響を受ける権限、直接オブジェクト権限およびオブジェクトの依存性を追跡します。

内容は次のとおりです。

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

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

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

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

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

「PUBLICでのオブジェクト・アクセス」レポートには、PUBLICにアクセス権が付与されているすべてのオブジェクトがリストされます。

「レポート・パラメータ」ページで指定されたデータベース・アカウントについて、PUBLICへのオブジェクト付与によるすべてのオブジェクト・アクセスの詳細を示します。レポート・パラメータ・ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタ処理できます。

注意:

このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。

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

「PUBLIC以外でのオブジェクト・アクセス」レポートは、「レポート・パラメータ」ページのデータベース・アカウントが使用したオブジェクト・アクセスを記述します。

このレポートは、直接またはロール経由でアカウントに付与された権限をチェックしますが、PUBLICへの権限付与は除外されます。

「レポート・パラメータ」ページでは、権限、オブジェクト所有者またはオブジェクト名に基づいて結果をフィルタにかけることができます。

注意:

このレポートは、デフォルトを選択すると非常に大きなサイズになることがあります。

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

「直接オブジェクト権限」レポートは、非システム・データベース・アカウントに付与された直接オブジェクト権限を示します。

次のデータベース・アカウントは、このレポートの対象外です。

アカウントC-O

アカウントP-W

CTXSYS

PUBLIC

DMSYS

SYS

DVSYS

SYSMAN

LBACSYS

SYSTEM

MDSYS

WKSYS

ORDSYS

WMSYS

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

「オブジェクトの依存性」レポートは、データベース内におけるプロシージャ、パッケージ、ファンクション、パッケージ本体、トリガ間の依存性を記述します。

このレポートには、データベース・リンクなしで作成されたビューに関する依存性が含まれます。

このレポートは、最低限の権限の原則を使用するセキュリティ・ポリシーを既存のアプリケーション用に開発するために役立ちます。データベース・オブジェクト(UTL_FILEパッケージなど)がPUBLICに付与された権限または他のなんらかのグローバル・ロールを保持する場合、「オブジェクトの依存性」レポートを使用して、そのオブジェクトに依存するアカウントを割り出し、アカウントでオブジェクトをどのように使用しているかを判断できます。レポートを実行するには、依存性を調べるデータベース・アカウントと、そのアカウントが依存するオブジェクトを、レポート・パラメータ・ページに入力します。

「レポート結果」ページには、依存オブジェクトとオブジェクト・タイプの他に、ソース・オブジェクトの名前とタイプが表示されます。このレポートには、機密オブジェクトが使用されている可能性がある場所が示されます。いくつかのアカウントを調べることで、制限付きロールの開発に役立つパターンを発見できることがあります。このような制限付きロールは、広く使用される機密オブジェクトのPUBLICの権限と置換できます。

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

データベース・アカウントのシステム権限レポートは、直接、間接、階層的およびANYシステム権限などのアクティビティを追跡します。

内容は次のとおりです。

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

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

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

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

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

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

「データベース・アカウントごとの直接システム権限」レポートは、レポート・パラメータ・ページで選択されたデータベース・アカウントに直接付与されたシステム権限をリストします。

このレポートは、権限にWITH ADMINオプションが付与されているかどうかも示します。

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

「データベース・アカウントごとの直接および間接システム権限」レポートは、「レポート・パラメータ」ページで選択されたデータベース・アカウントに対するシステム権限を示します。

システム権限は、直接またはWITH ADMINステータスのデータベース・ロールを介して付与されていることがあります。

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

「データベース・アカウントごとの階層システム権限」レポートは、ロールベースのシステム権限および直接システム権限の階層の内訳を示します。

これらの権限は、「レポート・パラメータ」ページで指定されたデータベース・アカウントに対して付与されます。

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

「データベース・アカウントのANYシステム権限」レポートは、指定されたデータベース・アカウントまたはロールに付与されているANYシステム権限を示します。

ANYシステム権限は、とても強力であるため、アカウントおよびロールに慎重に割り当てる必要があります。

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

「権限ごとのシステム権限」レポートは、「レポート・パラメータ」ページで選択されたシステム権限を持つデータベース・アカウントおよびロールをリストします。

権限を制御するもう1つの方法は、権限分析ポリシーの作成による権限使用の分析です。

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

機密オブジェクト・レポートは、SYSスキーマ・オブジェクトのEXECUTE権限の付与や機密オブジェクトへのアクセスなどのアクティビティを追跡します。

内容は次のとおりです。

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

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

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

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

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

「強力なSYSパッケージに対するEXECUTE権限」レポートは、強力なシステム・パッケージに関するEXECUTE権限を持つデータベース・アカウントとロールを示します。

たとえば、これらのタイプのパッケージは、オペレーティング・システム・リソースへアクセスするために使用できます。

次のシステムPL/SQLパッケージが対象となります。

パッケージD-D

パッケージD-U

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

-

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

「機密オブジェクトへのアクセス」レポートは、機密情報で構成されたシステム表またはビューに対してオブジェクト権限を持つデータベース・アカウントおよびロールを示します。

このレポートには、次のシステム表およびビューが含まれます。

表/ビューA-O

表/ビューP-S

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が所有するパッケージに対してEXECUTE権限を持つデータベース・アカウントおよびロールを示します。

このレポートは、どの権限をPUBLICまたはその他のアカウントやロールから取り消すことができるかの判断に使用できます。これにより、最低限の権限の原則を使用するセキュリティ・ポリシーの全体的な実装の一部としての脆弱性が軽減されます。

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

「SYSDBA/SYSOPER権限を持つアカウント」レポートは、SYS権限が付与された接続の権限を持つデータベース・アカウントを示します。

このレポートは、そのアカウントが外部パスワードを使用するかどうかも示します。ただし、このレポートには、SYSDBAになり得るオペレーティング・システム・ユーザーは含まれないことに注意してください。

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

権限管理サマリー・レポートは、権限受領者、所有者および権限別の権限配布を追跡します。

内容は次のとおりです。

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

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

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

関連項目:

これらのレポートに表示された件数の基になっている値を調べるには、「DVSYS.DBA_DV_PUB_PRIVSビュー」を参照してください

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

「権限受領者ごとの権限の配布」レポートは、データベース・アカウントまたはロールに付与された権限の総数を示します。

このレポートを使用すると、強力な権限を持つ可能性のあるアカウントおよびロールを認識できます。

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

「権限受領者、所有者ごとの権限の配布」レポートは、オブジェクトの権限受領者および所有者に基づいた権限の総数を示します。

このレポートを使用すると、強力な権限を持つ可能性のあるアカウントまたはロールを認識できます。このレポートは、潜在的な侵入者または内部関係者によって、攻撃または侵害するためのアカウントとして強力な権限を持つアカウントが狙われていると疑われる場合に使用できます。たとえば、侵入者がパスワードを推測することでアカウントを侵害できる場合、侵入者はすでに保持している権限よりも多くの権限を入手できます。

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

「権限受領者、所有者、権限ごとの権限の配布」レポートは、権限、権限受領者、およびオブジェクト所有者に基づく権限の総数を示します。

このレポートを使用すると、強力な権限を持つ可能性のあるアカウントまたはロールを認識できます。

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

強力なデータベース・アカウントおよびロールのレポートは、WITH ADMIN権限などの強力な権限を付与されたユーザーに関する情報を追跡します。

内容は次のとおりです。

- 「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ロールは、不正に利用される可能性のある特権ロールです。時間を節約し、アカウントに本当に必要な最小権限を判断しないで済むように、このロールがデータベース・アカウントに付与されることはよくあります。このレポートは、最低限の権限の原則を使用するポリシーを、既存のデータベースに適用する際に役立ちます。

どのユーザーに特権ロールを付与するかを決定するためのガイドラインは、「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によって保護される表の機密情報にアクセスするターゲットを示すため、どうしても必要な場合にかぎり付与すべき強力なシステム権限です。「Oracle Database Vaultの監査」で説明するように監査ポリシーを使用すると、この権限の使用を監査できます。

「BECOME USER」レポート

「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のインストール時に指定されます。

データベースを保護するために、このレポートに含まれるアカウントのパスワードをデフォルト以外の複雑なパスワードに変更する必要があります。

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

「データベース・アカウントのステータス」レポートは、既存のデータベース・アカウントをリストします。

このレポートにはアカウントごとにアカウント・ステータスが示されるため、ロックする必要があるアカウントを特定するために役立ちます。ロック日および有効日は、パスワード・エイジングの結果としてアカウントがロックされたかどうかの判断に役立つ情報となります。特殊なパスワードおよびリソース・セキュア・プロファイルが使用されている場合は、それらを使用していないアカウントを特定できます。体系立てて定義されたデフォルト表領域を使用していないアカウントも特定でき、アカウントの一時表領域を割り出すことができます。また、このレポートでは、外部パスワードを使用するアカウントも識別されます。

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

「コア・データベース監査」レポートは、データベース監査証跡レコードをリストします。

このレポートは非統合監査環境に適用されます。

コア・データベース監査レポートは、「Oracle Database Vaultの監査」で定義されている監査ポリシーに対する監査レコード、およびユーザーが定義した監査文に対して生成された監査レコードを返します。

このレポートには、データベース初期化パラメータAUDIT_TRAILがDBに設定されている場合(統合監査は無効になっている)に取得される監査レコードのみが表示されます。

関連項目:
AUDIT_TRAIL パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください

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

セキュリティの脆弱性に関するその他のレポートは、Javaポリシーの許可やオペレーティング・システムのディレクトリ・オブジェクトなどのアクティビティに伴って発生する脆弱性を追跡します。

内容は次のとおりです。

- 「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 Vault固有の監査イベント

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

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

Oracle Database Vaultでの監査について

Oracle Database Vaultのすべてのアクティビティは、Database Vault Administratorのアクティビティを含めて監査できます。

オプションで、レルム、ルール・セットおよびファクタに作成する個別のポリシーを監査できます。監査は、ユーザーのアクションの成功(ポリシーによってユーザーがタスクを実現できたかどうか)、またはユーザーのアクションの失敗(ポリシー違反したかどうか)のいずれかを示します。このようなアクションは監査ログに書き込まれます。この内容を確認するには、適切なデータ・ディクショナリ・ビューを問い合せるか、「Oracle Database Vaultレポート」に記載されているレポートを実行します。

Database Vaultへのすべての構成変更については監査が必須となっており、これには、権限が与えられていないユーザーによってDatabase Vaultポリシーの変更が試行されるアクションが含まれます。

新しいデータベースをインストールして、Oracle Database Vaultを使用するようにそのデータベースを構成する場合、デフォルトで混合モード環境(統合監査と事前移行済監査の混合)が使用されます。以前のリリースからアップグレードした場合、Database Vaultは、そのリリースで使用できた監査を使用します。

完全な統合監査環境に移行する前に、監査ポリシーを次のように作成できます。

- Database VaultのAPIの使用: DBMS_MACADM PL/SQLパッケージまたはEnterprise ManagerのDatabase Vaultページを使用します。この場合、監査レコードはDatabase Vault監査証跡に書き込まれます。この証跡は、DVSYS.AUDIT_TRAIL$表に格納されます。これらの監査レコードについて、DVSYS.DV$CONFIGURATION_AUDITビューとDVSYS.DV$ENFORCEMENT_AUDITビューに問い合せることができます。

- 統合監査ポリシーのSQL文の使用: これらの文は、CREATE AUDIT POLICY、ALTER AUDIT POLICY、DROP AUDIT POLICY、AUDITおよびNO AUDIT文です。これらは統合監査証跡に書き込まれます。この証跡は、UNIFIED_AUDIT_TRAIL、SYS.DV$CONFIGURATION_AUDITおよびSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューで取得されます。

統合監査に移行する場合、Database VaultのAPIの監査機能は、無効となります。「Oracle Database Vault監査証跡のアーカイブおよびパージ」の説明に従い、これらの監査レコードをアーカイブおよびパージする必要があります。それ以降、統合監査ポリシーのPL/SQL文によってDatabase Vault監査ポリシーを管理できます。

記述した内容を除き、この章の残りの項では、Database Vault監査の非統合または混合モードの監査環境での動作について説明します。

関連項目:

- Oracle Database Vaultでの統合環境の動作と統合監査ポリシーの作成方法の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください

- Oracle Database Vault監査証跡レコードの書式

- Database Vault統合監査に固有の次のデータ・ディクショナリ・ビュー。
DVSYS.DV$CONFIGURATION_AUDITビュー

DVSYS.DV$ENFORCEMENT_AUDITビュー

- 統合監査にデータベースを移行する場合は、『Oracle Databaseアップグレード・ガイド』を参照してください

Oracle Database Vault環境での統合監査証跡の保護

デフォルトでは、統合監査証跡を含むAUDSYSスキーマはレルムで保護されません。

AUDSYSスキーマにレルムは必要ありません。このスキーマに含まれる情報は内部用であり、他のデータベース・オブジェクト(表やビュー)をスキーマで表示できるのと同じように表示することはできないからです。統合監査証跡を保護するには、AUDIT_ADMINロールとAUDIT_VIEWERロールの周囲にレルムを作成します。こうすると、これらのロールを付与できるユーザーを制御できます。

関連項目:

レルムの作成

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

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コンポーネントによって最大セッション・ラベルを超えるラベルの設定が妨げられているセッションのインスタンスを監査します。

関連項目:

- ファクタの詳細は、ファクタの監査オプションの設定を参照してください

- レルム認可について

- 監査レポートの表示の詳細は、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またはDV_MONITORロールが付与されているユーザーは、DVYS.AUDIT_TRAIL$表に直接問い合せることができます。

表A-1では、監査証跡の書式を説明しています。DVSYS.AUDIT_TRAIL$表を使用するカスタム・レポートの作成を予定している場合、これらの書式を理解する必要があります。

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

列

データ型

NULL

説明

ID#

NUMBER

NOT NULL

監査レコードごとの数値識別子。

OS_USERNAME

VARCHAR2(255)

NULL

アクションが監査対象となったユーザーのオペレーティング・システムのログイン・ユーザー名。

USERNAME

VARCHAR2(30)

NULL

アクションが監査対象となったデータベース・ユーザーの名前。

USERHOST

VARCHAR2(128)

NULL

クライアント・コンピュータ名。

TERMINAL

VARCHAR2(255)

NULL

ユーザーの端末に対する識別子。

TIMESTAMP

DATE

NULL

監査証跡エントリの作成日時(ローカル・データベース・セッションのタイムゾーン)。

OWNER

VARCHAR2(30)

NULL

アクションの影響を受けるオブジェクトの作成者、常時DVSYS(DVSYSでオブジェクトが作成されるため)

OBJ_NAME

VARCHAR2(128)

NULL

アクションの影響を受けるオブジェクトの名前。想定値は次のとおりです。

- ROLE$

- REALM$

- CODE$

- FACTOR$

ACTION

NUMBER

NOT NULL

数値のアクション・タイプ・コード。アクション・タイプに対応する名前は、ACTION_NAME列に示されます。予想されるACTIONとACTION_NAMEの値のリストについては、表22-2を参照してください。

ACTION_NAME

VARCHAR2(128)

NULL

ACTION列の数値コードに対応するアクション・タイプの名前

ACTION_OBJECT_ID

NUMBER

NULL

OBJ_NAMEに指定された表のレコードの一意の識別子。レルムの場合、このフィールドには、「失敗時に監査」監査オプションのあるすべてのレルムIDのカンマ区切りの値のリストが含まれます。

ACTION_OBJECT_NAME

VARCHAR2(128)

NULL

OBJ_NAMEに指定された表のレコードの一意の名前または固有のキー。レルムの場合、このフィールドには、「失敗時に監査」監査オプションのあるすべてのレルム名のカンマ区切りの値のリストが含まれます。

ACTION_COMMAND

VARCHAR2(4000)

NULL

実行された結果、監査イベントがトリガーされたコマンド・プロシージャのSQLテキスト。

AUDIT_OPTION

VARCHAR2(4000)

NULL

結果として監査イベントがトリガーされたレコードに指定されたすべての監査オプションのラベル。たとえば、失敗またはNULLになったときに監査することになっているファクタ設定操作では、これら2つのオプションを指します。

RULE_SET_ID

NUMBER

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の識別子。

RULE_SET_NAME

VARCHAR2(30)

NULL

実行された結果、監査イベントがトリガーされたルール・セットの一意の名前。

RULE_ID

NUMBER

NULL

未使用

RULE_NAME

VARCHAR2(30)

NULL

未使用

FACTOR_CONTEXT

VARCHAR2(4000)

NULL

監査イベントがトリガーされた時点での、現行セッションに対するすべてのファクタ識別子を含むXML文書。

COMMENT_TEXT

VARCHAR2(4000)

NULL

監査対象となった文の詳細を示す、監査証跡エントリについてのテキスト・コメント。

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

NULL

UTC(協定世界時)タイムゾーンの、監査証跡エントリの作成時のタイムスタンプ(エントリに対するユーザー・ログインのタイムスタンプ)。

PROXY_SESSIONID

NUMBER

NULL

エンタープライズ・ユーザーがプロキシ機構を介してログインした場合の、プロキシ・セッションのシリアル番号

GLOBAL_UID

VARCHAR2(32)

NULL

ユーザーがエンタープライズ・ユーザーとしてログインした場合の、ユーザーのグローバル・ユーザー識別子。

INSTANCE_NUMBER

NUMBER

NULL

INSTANCE_NUMBER初期化パラメータによって指定されるインスタンス番号

OS_PROCESS

VARCHAR2(16)

NULL

Oracleプロセスのオペレーティング・システム・プロセス識別子

CREATED_BY

VARCHAR2(30)

NULL

アクションが監査対象となったユーザーのデータベースのログイン・ユーザー名。

CREATE_DATE

DATE

NULL

SYSDATEの日付を基にした、アクションが発生した日付。

UPDATED_BY

VARCHAR2(30)

NULL

CREATED_BY列の値と同じ。

UPDATE_DATE

DATE

NULL

UPDATED_BY列の値と同じ。

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

統合監査に移行していない場合、Oracle Database Vault監査証跡を定期的にアーカイブおよびパージする必要があります。

内容は次のとおりです。

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

- Oracle Database Vault監査証跡のアーカイブ

- Oracle Database Vault監査証跡のパージ

Oracle Database Vault監査証跡のアーカイブおよびパージについて

非統合監査環境では、表DVSYS.AUDIT_TRAIL$をダンプ・ファイルにエクスポートすることによって、Oracle Database Vaultの監査証跡をアーカイブできます。

監査証跡は、大きくなりすぎないように定期的にアーカイブし、パージする必要があります。

統合監査に移行するように選択する場合、移行の完了後、このプロシージャを使用してDatabase Vault監査証跡レコードをアーカイブおよびパージします。統合監査がレコードの収集を開始すると、新しいレコードは、UNIFIED_AUDIT_TRAIL、SYS.DV$CONFIGURATION_AUDITおよびSYS.DV$ENFORCEMENT_AUDITデータ・ディクショナリ・ビューの表示に利用できます。

Oracle Database Vault監査証跡のアーカイブ

SQL*PlusおよびOracle Data Pumpを使用すると、Oracle Database Vault監査証跡をアーカイブできます。

1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

sqlplus sys as sysdba
Enter password: password

2. アーカイブを実行するユーザーに適切な権限があることを確認します。
次に例を示します。

GRANT CREATE ANY DIRECTORY, EXP_FULL_DATABASE, UNLIMITED TABLESPACE TO psmith;

3. DV_OWNERまたはDV_AUDIT_CLEANUPロールを付与されているユーザーとして接続します。
次に例を示します。

connect ebrown
Enter password: password

4. Oracle Database Vault監査証跡を、該当するスキーマの新しい表にアーカイブします。
次に例を示します。

CREATE TABLE psmith.dv_audit_trail nologging \
AS SELECT * FROM DVSYS.AUDIT_TRAIL$;

5. スキーマがレルムによってすでに保護されている場合、担当者またはエクスポート操作を実行するユーザーに、Database Vault環境でOracle Data Pumpを使用する適切な認可が付与されていることを確認します。
たとえば、ユーザーpsmithがそのスキーマに対してData Pump操作を実行できるように、このユーザーを認可するとします。

EXEC DBMS_MACADM.AUTHORIZE_DATAPUMP_USER('PSMITH', 'PSMITH');

6. Data Pumpユーザーとして接続します。
次に例を示します。

CONNECT psmith
Enter password: password

7. Database Vault監査証跡用のディレクトリを作成します。

CREATE DIRECTORY dv_audit_dir AS 'dv_audit_trail_directory';

8. SQL*Plusを終了します。

EXIT

9. Data Pumpを使用して、Database Vault監査証跡を、作成したディレクトリ・オブジェクトにエクスポートします。

expdp psmith directory=dv_audit_dir tables=psmith.dv_audit_trail \
dumpfile=dv_audit.dmp log=dv_audit_exp.log

10. DV_OWNERロールを付与されているユーザーとしてSQL*Plusに接続します。

sqlplus ebrown
Enter password: password

11. このようにしなかった場合、Database Vault監査証跡を含むスキーマの周辺にレルムを作成します。

a. レルムを作成します。次に例を示します。

BEGIN
DBMS_MACADM.CREATE_REALM(
realm_name    => 'DV Audit Trail Realm',
description   => 'Realm to protect the DV audit trail',
enabled       => DBMS_MACUTL.G_YES,
audit_options => DBMS_MACUTL.G_REALM_AUDIT_FAIL + DBMS_MACUTL.G_REALM_AUDIT_SUCCESS,
realm_type    => 1);
END;
/

b. 監査証跡を含むスキーマをこのレルムに追加します。次に例を示します。

BEGIN
DBMS_MACADM.ADD_OBJECT_TO_REALM(
realm_name   => 'DV Audit Trail Realm',
object_owner => 'psmith',
object_name  => '%',
object_type  => '%');
END;
/

c. このレルムに対して信頼されるユーザーを認可します。

BEGIN
DBMS_MACADM.ADD_AUTH_TO_REALM(
realm_name  => 'DV Audit Trail Realm',
grantee     => 'PSMITH',
auth_options => DBMS_MACUTL.G_REALM_AUTH_OWNER);
END;
/

関連項目:

- Database Vault環境でのユーザーへのOracle Data Pump権限の付与の詳細は、「Oracle Database VaultでのOracle Data Pumpの使用」を参照してください

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

- Oracle Data Pumpのexpdpユーティリティの詳細は、『Oracle Databaseユーティリティ』を参照してください

- DBMS_MACADMのレルム関連プロシージャの詳細は、「Oracle Database VaultレルムのAPI」を参照してください

Oracle Database Vault監査証跡のパージ

SQL*PlusでOracle Database Vault監査証跡をパージできます。

1. DV_OWNERロールまたはDV_AUDIT_CLEANUPロールを付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus psmith
Enter password: password

DV_OWNERロールとDV_AUDIT_CLEANUPロールでは、その権限受領者はDVSYS.AUDIT_TRAIL$システム表を切り捨てることができない点に注意してください。

ユーザーに付与されているロールを検索するには、DBA_ROLE_PRIVSデータ・ディクショナリ・ビューを問い合せることができます。

2. Database Vault監査証跡をパージします。

DELETE FROM DVSYS.AUDIT_TRAIL$;

関連項目:

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

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

Oracle Database Vaultをインストールすると、データベース内に複数のAUDIT設定が作成されます。

ただし、非統合監査環境でこれらの監査設定を実施にするには、このデータベースで監査を有効にする必要があります。監査が有効かどうかは、SHOW PARAMETERコマンドを使用して、AUDIT_TRAIL初期化パラメータの値を検索することで確認できます。デフォルトでは、監査は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のユーザー監査設定

これらのアカウントの詳細は、表12-2を参照してください。

また、DVSYSスキーマおよびDVFスキーマの詳細は、次の項を参照してください。

- 「DVSYSスキーマ」

- 「DVFスキーマ」

ADMINISTER DATABASE TRIGGER

ALTERオブジェクト

AUDIT SYSTEM

BECOME USER

CLUSTER

COMMENT

CONTEXT

CREATEオブジェクト

DATABASE LINK

DEBUG

DIRECTORY

DROPオブジェクト

EXECUTE LIBRARY (WHENEVER NOT SUCCESSFUL)

EXECUTE PROCEDURE (WHENEVER NOT SUCCESSFUL)

EXEMPT ACCESS POLICY

EXPORT FULL DATABASE

GRANTオブジェクト

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のオプション製品または機能のインストールなどのアクティビティのために、定期的にOracle Database Vaultを無効化してから再有効化する必要があります。

内容は次のとおりです。

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

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

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

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

注意:

- Oracle Database Vaultを無効にする場合、一部の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のオプションの製品または機能(Oracle SpatialやOracle Multimediaなど)のいずれかをDatabase Configuration Assistant(DBCA)を使用してインストールする必要がある場合。

- Oracle Database Vaultの登録時にDV_OWNERおよびDV_ACCTMGRのバックアップ・アカウントを構成しておらず、これらのアカウントが不注意でロックされたかそれらのパスワードを忘れた場合。使用サイトにDV_OWNERユーザーが1人しかおらず、このユーザーが自身のパスワードを失くした場合、担当者はOracle Database Vaultを無効にすることができません。ただし、サイトで唯一のDV_ACCTMGRユーザーがパスワードを失くした場合は、Database Vaultを無効にできます。ベスト・プラクティスとして、DV_OWNERロールとDV_ACCTMGRロールを、新しいまたは既存のユーザー・アカウントに付与し、Database Vaultをバックアップ・アカウントとして登録したときに作成したDatabase Vault所有者およびアカウント・マネージャのアカウントを使用する必要があります。(以後この問題を回避するためのガイドラインについては、「バックアップOracle Database Vaultアカウント」を参照)。

- Oracle Database Configuration Assistant (DBCA)を使ってOracle Internet Directory (OID)を登録したい場合。

手順1: Oracle Database Vaultの無効化

Oracle Database Vaultを無効化した後も、Database Vaultの実行に必要なOracle Label Securityは有効なままです。

1. SQL*Plusでは、Oracle Database所有者(DV_OWNER)アカウントとしてログインしてから、Oracle Database Vaultを無効にします。

sqlplus psmith
Enter password: password

EXEC DBMS_MACADM.DISABLE_DV;

2. マルチテナント環境で、適切なプラガブル・データベース(PDB)に接続します。

次に例を示します。

CONNECT psmith@hrpdb
Enter password: password

利用可能なPDBを検索するには、DBA_PDBSデータ・ディクショナリ・ビューを問い合せます。現在のPDBを確認するには、show con_nameコマンドを実行します。

3. データベースを再起動します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

4. Oracle RACインストールの場合は、データベースがインストールされているノードごとに、これらの手順を繰り返します。

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

この段階では、Oracle Database Vaultは無効になっており、必要な作業を実行できます。

次のようなアクティビティを実行できます。

- Oracle Database VaultのPL/SQLパッケージおよびファンクションを使用します。たとえば、ログインまたはCONNECTルール・セット・エラーを修正するには、DBMS_MACADM PL/SQLパッケージまたはEnterprise Manager Cloud ControlのOracle Database Vaultページを使用します。CONNECTコマンド・ルールでは、DV_OWNERまたはDV_ADMINロールを持つユーザーのデータベースへの接続は阻止できません。このため、Database Vault管理者はDatabase Vaultを無効化することなく、間違って構成された保護を修正できます。

- パスワードの作成または変更、あるいはアカウントのロックおよびロック解除などのタスクを実行するために、SYSTEMアカウントまたはSYSアカウントを使用します。標準のデータベースおよび管理ユーザー・アカウントの変更に加えて、DV_ADMINまたはDV_ACCTMGRロールを付与されているユーザーなど、任意のOracle Database Vault固有のアカウントのパスワードおよびロック・ステータスを変更できます。(以後この問題を回避するためのガイドラインについては、「登録中に作成されるOracle Database Vaultアカウント」でヒントを参照)。

- インストールまたはセキュリティ保護を無効にする必要のあるその他のタスクを実行します。

手順3: Oracle Database Vaultの有効化

SQL*PlusからOracle Database VaultおよびOracle Label Securityを有効にできます。

1. SQL*Plusでは、Oracle Database所有者(DV_OWNER)アカウントとして接続してから、Oracle Database Vaultを有効にします。

CONNECT psmith -- Or, CONNECT psmith@hrpdb for a PDB
Enter password: password

EXEC DBMS_MACADM.ENABLE_DV;

2. Oracle Label Securityが有効がどうかを確認します。

SELECT VALUE FROM V$OPTION WHERE PARAMETER = 'Oracle Label Security';

Database Vaultを使用する前に、Oracle Label Securityを有効にする必要があります。有効でない場合、この問合せからFALSEが返されます。

3. Oracle Label Securityが有効でない場合は、有効にしてください。

CONNECT SYS AS SYSDBA -- Or, CONNECT SYS@hrpdb AS SYSDBA
Enter password: password

EXEC LBACSYS.CONFIGURE_OLS;
EXEC LBACSYS.OLS_ENFORCEMENT.ENABLE_OLS;

4. データベースを再起動します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

5. Oracle RACインストールの場合は、データベースがインストールされているノードごとに、これらの手順を繰り返します。

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

Oracle Database Vaultを登録した後は、Oracle Real Application Clusters (Oracle RAC)ノード上でOracle Database Vaultの構成を行うなどの特別なタスクを実行できます。

内容は次のとおりです。

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

- Oracle Database Vaultへの言語の追加

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

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

関連項目:

マルチテナント・コンテナ・データベース(CDB)を使用している場合は、「スタンドアロンのOracle DatabaseをPDBに変換してCDBにプラグイン」も参照してください

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

Oracle Real Application Clusters (Oracle RAC)インスタンスに対してOracle Database Vaultを構成した後は、各Oracle RACノードを構成する必要があります。

次の手順では、ノードごとに別個のOracleホームがあると仮定します。

1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

sqlplus sys as sysdba
Enter password: password

2. 各Oracle RACノードで次のALTER SYSTEM文を実行します。

ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE; -- For non-unified auditing environments
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 / AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

Oracle Database Vaultへの言語の追加

デフォルトでは、Oracle Database Vaultによって英語表のみがロードされます。

言語を追加するには、追加する新しい言語ごとにDBMS_MACADM.ADD_NLS_DATAプロシージャを実行します。複数の言語をDatabase Vaultに追加できます。

1. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして、データベース・インスタンスにログインします。

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 RACの両方のインストールの場合、Oracle DatabaseインストールからOracle Database Vaultを削除できます。

削除プロセスによって、初期化パラメータ設定(インストール・プロセスで変更された設定であっても)やOracle Label Securityが影響を受けることはありません。

1. SYSDBA管理権限を持つユーザーSYSとして、またはALTER SYSTEMシステム権限を持つユーザーとしてデータベース・インスタンスにログインします。

次に例を示します。

sqlplus psmith -- Or, sqlplus psmith@hrpdb for a pluggable database (PDB)
Enter password: password

2. リサイクルビンが無効になっていることを確認します。

SHOW PARAMETER RECYCLEBIN

3. リサイクルビンがオンの場合は、次のいずれかの文を使用して無効にします。

ALTER SYSTEM SET RECYCLEBIN = OFF;

ALTER SESSION SET recyclebin = OFF SCOPE = SPFILE;

4. DV_OWNERまたはDV_ADMINロールを付与されているユーザーとして接続します。

次に例を示します。

CONNECT leo_dvowner -- Or, CONNECT leo_dvowner@hrpdb
Enter password: password

5. 次のプロシージャを実行してOracle Database Vaultを無効にします。

EXEC DBMS_MACADM.DISABLE_DV;

6. SYSOPER権限を使用してSYSとして接続し、データベースを再起動します。

次に例を示します。

CONNECT SYS AS SYSOPER -- Or, CONNECT SYS@hrpdb AS SYSOPER
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

Oracle RACインストールの場合は、次のように各データベース・インスタンスをシャットダウンしてから再起動します。

$ srvctl stop database -db db_name
$ srvctl start database -db db_name

7. dvremov.sqlスクリプトを実行してOracle Database Vaultを削除します。

次に例を示します。

$ORACLE_HOME/rdbms/admin/dvremov.sql

その後、SQL*Plusにログインして次の文を入力することで、Oracle Database Vaultが本当にアンインストールされたことを二重にチェックできます。

SELECT * FROM V$OPTION WHERE PARAMETER = 'Oracle Database Vault';

Oracle Database Vaultがアンインストールされている場合、次の出力結果が表示されます。

PARAMETER                     VALUE
----------------------------- -----------------------
Oracle Database Vault         FALSE

Oracle Database Vaultの再インストール

Database Configuration Assistantを使用してOracle Database Vaultを再インストールしてから、Database Vaultを登録できます。

1. SYSDBA管理権限を持つユーザーSYSとして、データベース・インスタンスにログインします。

sqlplus sys as sysdba -- Or, sqlplus sys@hrpdb as sysdba
Enter password: password

2. Database Configuration Assistant(DBCA)を開始します。

- UNIX: シェル・ウィンドウで次のコマンドを入力します。

dbca

- Windows: 次のいずれかの方法を使用して、WindowsでDBCAを起動します。

- 「スタート」をクリックし、「プログラム」(または「すべてのプログラム」)、「Oracle - HOME_NAME」、「Configuration and Migration Tools」、および「Database Configuration Assistant」の順に選択します。

- コマンド・プロンプトで次のコマンドを入力します。

dbca

3. DBCAを使用し、新規または既存のデータベースに対してDatabase Vaultを構成します。

DBCAによるデータベースの作成の詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

4. 「Oracle DatabaseへのOracle Database Vaultの登録」の説明に従い、Database Vaultを登録します。

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

すべてのOracle Database製品と同様に、Oracle Database Vaultインストールを適切に保護するためにセキュリティ・ガイドラインに従う必要があります。

内容は次のとおりです。

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

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

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

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

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

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

職務分離のガイドライン

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_ACCTMGRユーザーと、バックアップDV_ACCTMGRユーザーは、Oracle Database Vaultの登録プロセス時に作成されます。安全対策として、プライマリDV_ACCTMGRアカウント所有者が自分のパスワードを忘れた場合や企業を退職した場合に備えて、バックアップ・アカウントを保持し続けます。

- セキュリティ管理。セキュリティ管理では、基本的なセキュリティ・タスクを行います。たとえば、レルムやコマンド・ルールの作成、データベース・ユーザーのアクセスに対するセキュリティ・ポリシーの設定、実行が許可されたジョブに対するデータベース・ユーザーの認可などがあります。セキュリティ管理者は、セキュリティ監査レポートの実行も行います。DV_OWNERおよびDV_ADMINロールにこれらの権限が含まれています。日常使用するプライマリDV_OWNERユーザーと、バックアップDV_OWNERユーザーは、Oracle Database Vaultの登録プロセス時に作成されます。安全対策として、プライマリDV_OWNERアカウント所有者が自分のパスワードを忘れた場合や企業を退職した場合に備えて、バックアップ・ユーザー・アカウントを保持し続ける必要があります。
オプションで、アカウント管理とセキュリティ管理の職責を統合することもできます。

- データベース管理。データベース管理とは、データベース・システムの管理のことで、ビジネス・データへのアクセスのことではありません。次のような操作があります。

- バックアップ操作では、事前定義されたツールを使用してバックアップを実行するための事前定義時刻が必要です。

- チューニングおよび監視操作では、継続したパフォーマンス監視および分析が必要です。

- パッチ適用操作では、パッチが適用されている間のみの一時アクセスが必要です。

職務分離との関連においてデータベース管理アカウントを確認することをお薦めします。様々なデータベース管理者が、様々な権限およびロールを必要とする様々な職務を担当できます。同様に、経験豊かなデータベース管理者ほど、より多くのロールおよび権限がある可能性があります。ユーザーにデフォルトのDBAロールを付与するかわりに、組織での特定の地位および勤続年数にあわせてデータベース管理ロールを調整することを検討してください。名前付きアカウントのみを日常的な活動のために使用することが重要です。SYSなどのアカウント、およびSYSDBA管理権限を使用するアカウントは、特権アカウント管理(PAM)システムで管理され、使用時にチェック(および監査)される必要があります。バックアップOracle Database Vault所有者およびアカウント管理アカウントをPAMシステムで管理する必要もあります。オペレーティング・システム内では、rootおよびoracleアカウントは、強力な権限があるため、チェックアウト・システムによってのみ使用できるようにする必要があります。

データベース・アカウント管理とデータベース・セキュリティ管理のための個別アカウントと、バックアップ操作のためのその他の名前付きアカウントが必要です。監査者は、各職責のための個別のデータベース・アカウントをチェックし、各アカウントのアクションを追跡できます。特定タスクに割り当てられているユーザーの数は、あまり重要ではありません。Oracle Database Vault監査イベントは保護されており、Database Vaultレポートにはすべての違反未遂が表示されます。

関連項目:

- Oracle Database Vaultロールがどのように職務分離を提供するかの詳細は、Oracle Database Vaultロールを参照してください

- デフォルトのOracle Database Vaultアカウントをすべて示すリストは、登録中に作成されるOracle Database Vaultアカウントを参照してください

- バックアップ・アカウントの重要性の詳細は、バックアップOracle Database Vaultアカウントを参照してください

Oracle Database Vaultの職務分離マトリクス

職務分離を適用するには、環境で基本的な管理タスクを実行するユーザーと、その管理タスクの内容を、事前に理解しておく必要があります。

1人のデータベース管理者が新しいデータベース・アカウントのプロビジョニングとアプリケーションのパッチ適用の両方の管理を担当する場合でも、これらの各タスクについて文書化および計画することが重要となります。これらのタイプのタスクに別々の管理アカウントを使用すると、アカウンタビリティが向上し、悪質なユーザーによって単一のアカウントが侵害された場合に関連するリスクが軽減されます。中規模から大規模の組織では、データベース管理者は通常、一般的な管理タスクを実行する必要はありますが、アプリケーションで管理されるビジネス・データにアクセスする必要はありません。職務分離マトリクスを作成すると、Database Vaultデプロイメントを計画する際に役立ちます。必要に応じて、追加タスクおよび関連するユーザーをリストに含めることができます。この情報は、組織の全体的なエンタープライズ・セキュリティ・ドキュメントの一部となります。

表D-1は、職務分離マトリクスの例を示しています。

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

ユーザー、プロセスまたはアプリケーション

アカウントの作成

データベース管理

セキュリティ管理

SYSDBA

バックアップ

チューニング

パッチ適用

監視

JSMITH

あり

なし

なし

なし

なし

なし

なし

SHARDY

なし

なし

なし

なし

なし

なし

あり

PKESTNER

なし

なし

あり

なし

なし

なし

なし

RTYLER

なし

なし

なし

なし

あり

なし

なし

SANDERSON

なし

なし

なし

あり

なし

あり

なし

SYSTEM

なし

なし

なし

なし

可(EBSのパッチ適用の場合)

なし

なし

RMAN

なし

あり

あり

なし

なし

なし

なし

システム管理タスクで、特定のツールおよびプログラムからデータへの一時的なアクセスが必要なこともあります。この場合、Oracle Database Vaultルールおよびルール・セットに、この一時アクセスまたは緊急アクセスに対するプロビジョニングを構築します。

データベース・ユーザーのタスクの識別および文書化

組織で必要となる次のタスク範囲を文書化する必要があります。

これらの範囲は次のとおりです。

- 各管理ユーザーの職責。

- ユーザーが必要とするアクセス権の種類。たとえば、アプリケーション所有者はデータ・アクセス、開発者は開発インスタンスに対するアクセスのみを必要とします。

- ビジネス・データにアクセスせずにシステムを管理する必要のあるユーザー(バックアップ、パッチ適用、チューニングおよび監視操作を実行するユーザーなど)。

- 各タスク・カテゴリの職務(バックアップの必要なファイル、パッチ適用の必要なアプリケーション、監視の正確な対象など)。これらの各タスクの代替ユーザー・アカウントも含まれます。

- 保護が必要なデータベースとアプリケーション。これには、Oracle Applications、パートナ・アプリケーションおよびカスタム・アプリケーションが含まれます。

- ビジネス・データベースへのアクセスを認可する必要のあるユーザー。次のユーザーが含まれます。

- 中間層プロセスを利用するアプリケーション所有者

- アプリケーション・インタフェースを利用するビジネス・ユーザー

- セキュリティ侵害の対処方法など、緊急時のWhat-Ifシナリオ。

- 本番環境でのレポート作成。次の内容が含まれます。

- レポートの実行者

- 実行が必要なレポート

- 各レポートの実行頻度

- 各レポートのコピーの受取りを必要とするユーザー

- 職務分離マトリクス以外に、次のマトリクスの作成があります。

- Oracle Database Vault固有マトリクス。Database Vaultロールを付与されているユーザーの名前およびタスクを含めることができます。

- アプリケーション保護マトリクス。保護対象アプリケーションおよび設定した保護タイプを含めることができます。

表D-2は、OracleがPeopleSoftアプリケーション向けに作成した保護の例を示しています。SYSADM、PSFTDBA、SYSTEMおよびDBAはすべて、適切なルール・セットに対して認可されています。

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

保護タイプ

SYSADM

PSFTDBA

SYSTEM

DBA

PeopleSoftレルム

所有者

所有者

アクセス不可

アクセス不可

SELECTコマンド・ルール

制限なし

制限PSFTDBルール・セット

アクセス不可

アクセス不可

CONNECTコマンド・ルール

PeopleSoftAccessルール・セット

制限なし

制限なし

制限なし

DROP TABLESPACEコマンド・ルール

無効なルール・セット

無効なルール・セット

無効なルール・セット

無効なルール・セット

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

Oracleでは、SYSTEMなどの管理者アカウントのセキュリティ管理用、あるいはSYSDBA管理者権限を有するユーザー用のガイドラインを提供しています。

内容は次のとおりです。

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

- アプリケーション表のSYSTEMスキーマ

- SYSDBA管理権限の制限

- Oracle Database Vaultへのルートおよびオペレーティング・システムのアクセス

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

理想的には、SYSTEMアカウントは、使用中にチェックアウトおよび監査されるバックアップとしてのみ使用可能になる必要があります。

共有アカウントではなく、名前付きアカウントのみが、通常のデータベース管理タスクのために使用される必要があります。これにより、データベース内の管理アクションに対するアカウンタビリティが向上します。

アプリケーション表のSYSTEMスキーマ

SYSTEMスキーマ内にアプリケーション表がある場合は、これらの表に関してレルム権限にSYSTEMアカウントを追加する必要があります。

これにより、これらのアプリケーションが引き続き正常に機能できるようになります。

これらのアプリケーションのセキュリティを向上または微調整するため、SYSTEMアカウントに制限を加えることもできます。たとえば、SYSTEMユーザーのアクセスを特定のIPアドレスに制限するDatabase Vaultルール・セットを作成できます。

SYSDBA管理権限の制限

SYSDBA管理権限を使用するのは、この権限を使って接続することがどうしても必要なユーザーや、アプリケーションがSYSDBAアクセスを必要とする場合だけに限定してください。

たとえば、必須パッチ適用プロセスにはSYSDBAアクセスが必要です。

他のすべてのケースでは、日常的なデータベース管理を実行するための名前付きデータベース・アカウントを作成します。また、OSDBAユーザー・グループのメンバーにはSYSDBA管理権限が付与されます。オペレーティング・システムのrootおよびoracleアカウントの他に、データベースSYSアカウント、およびSYSDBA権限があるアカウントは、特権アカウント管理(PAM)システムで管理され、要求時のみチェックアウトされる必要があります。

関連項目:
SYSDBAアクセスの管理

Oracle Database Vaultへのルートおよびオペレーティング・システムのアクセス

セキュリティ向上のために、ルートおよびオペレーティング・システムの次へのアクセスを注意深く監視する必要があります: Oracle Database Vault。

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_ACCTMGRロールがあるバックアップ・ユーザーを保持し、特権アカウント管理(PAM)システムを使用してこのアカウントを管理します。

DV_OWNERロールがあるユーザーは、このユーザーを変更できません。

DV_ACCTMGRロールがあるすべてのアカウントを失った場合(パスワードの紛失や組織からのユーザーの退職などが原因)、回復できません。必ずバックアップDV_ACCTMGRアカウントをこの目的のために作成するようにしてください。

DV_OWNERロール

オープン

登録時に作成され、レルム、ファクタおよびコマンド・ルールの管理に使用されるロール。このユーザーは、自分自身をレルム認可に追加できます。安全対策として、DV_OWNERロールがあるバックアップ・ユーザーを保持し、特権アカウント管理(PAM)システムを使用してこのアカウントを管理します。

DV_OWNERロールがあるユーザーは、このユーザーを変更できません。

DV_OWNERロールがあるすべてのアカウントを失った場合(パスワードの紛失や組織からのユーザーの退職などが原因)、回復できません。必ずバックアップDV_OWNERアカウントをこの目的のために作成するようにしてください。

SYSDBA権限

有効

Oracle Databaseのインストール時に作成される権限。一部のOracle機能に必要です。

SYSOPER権限

有効

Oracle Databaseのインストール時に作成される権限。データベースの起動および停止。デフォルトではSYSにのみ付与されます。

関連項目:

- DV_OWNERおよびDV_ACCTMGRのバックアップ・アカウントの重要性の詳細は、「バックアップOracle Database Vaultアカウント」を参照してください

- SYSDBAの管理のガイドラインは、「SYSDBAアクセスの管理」を参照してください

- SYSOPERの管理のガイドラインは、「SYSOPERアクセスの管理」を参照してください

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

強力な権限を伴うアカウントやロールは、信頼できる人物だけに制限する必要があります。

内容は次のとおりです。

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

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

- SYSDBAアクセスの管理

- SYSOPERアクセスの管理

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

ルート・ユーザー・アクセス権を持つユーザーは、システムを完全に制御できます。

これらのユーザーが実行できるアクティビティには、次のものがあります。

- 暗号化されていないファイルの読取り

- ファイルの移動および削除

- システムでのプログラムの起動または停止

- Oracle Databaseインストール環境を所有するユーザーを含む任意のユーザーとしてのログイン

Oracle Database Vaultでは、オペレーティング・システム・ルート・アクセスに対して保護されません。rootおよびoracleアカウントを特権アカウント管理(PAM)システムで管理します。これらのアカウントは、特定のタスクに必要な場合のみチェックアウトします。強い権限があるオペレーティング・システム・アカウントが使用されている場合は、キーストローク取得およびビデオ取得まで、監査レベルを高くします。

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

システムにOracleソフトウェア所有者としてのアクセス権を持つユーザーは、Oracleソフトウェアを制御できます。

これらのユーザーが実行できるアクティビティには、次のものがあります。

- 暗号化されていないデータベース・ファイルの読取り

- データベース・ファイルの移動および削除

- システムでのOracleプログラムの起動または停止

Oracle Database Vaultでは、Oracleソフトウェア所有者のオペレーティング・システム・アクセスから保護されません。Oracleソフトウェア所有者アカウントを特権アカウント管理(PAM)システムで管理します。このアカウントは、特定のタスクに必要な場合のみチェックアウトします。強い権限があるオペレーティング・システム・アカウントが使用されている場合は、キーストローク取得およびビデオ取得まで、監査レベルを高くします。

SYSDBAアクセスの管理

通常のデータベース・メンテナンス・タスクではSYSアカウントおよびSYSDBA権限を使用しないようにする必要があります。

かわりに、必要なシステム権限、またはSYSBACKUP、SYSDG、SYSKMなどの特定の管理権限がある名前付きアカウントを使用します。ただし、パッチの実行、データベースのアップグレードまたは問題のトラブルシューティング(たとえば、停止したデータベースへの接続)のためにSYSDBA権限が必要な場合があります。

SYSDBA権限のあるユーザーは、直接的または間接的(たとえば、診断、データベース・アップグレードおよびパッチ適用による)に機密アプリケーション・データにアクセスできるため、SYSDBA権限およびアカウントの使用は厳密に制限する必要があります。強力な権限のあるアカウントのリストには、SYS、およびデータベース内のSYSDBA権限のあるユーザー・アカウント、およびオペレーティング・システム内のrootおよびoracleアカウントが含まれます。データベースおよびオペレーティング・システム内の強力な権限のあるアカウントへのアクセスは、例外ベースである必要があり、ユーザーが、これらのアカウントおよび権限へのアクセスをロック解除するプロセスを経る必要があります。これらのアカウントを特権アカウント管理(PAM)システムで管理することをお薦めします。これらのアカウントは、特定のタスクに必要な場合のみチェックアウトします。強い権限があるオペレーティング・システム・アカウント(rootおよびoracle)およびデータベース・アカウント(SYSアカウントおよびSYSDBA管理権限)が使用されている場合は、キーストローク取得およびビデオ取得まで、監査レベルを高くします。これらの強い権限のあるアカウントがデータベースにアクセスするときには、SYSアカウントを監査してそれらのアクティビティを監視します。

SYSOPERアクセスの管理

デフォルトでは、Oracle Databaseは、SYSOPERアクセスをOSOPERグループのオペレーティング・システム・ユーザーおよびユーザーSYSに限定します。

これによって、SYSOPERがOracleデータ・ディクショナリを直接変更することを防ぎます。SYSOPER権限は、データベース内の制限された権限を持ちますが、このロールを持つユーザーは、Oracleデータベースの起動と停止を行うことができます。SYSOPER権限は、信頼できるユーザーにのみ付与してください。

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

Oracle Database Vaultを本番環境で実行する際は、特定のガイドラインに従う必要があります。

これらのガイドラインは、次のとおりです。

- アプリケーションの全テストを実行して、作成したDatabase Vaultポリシーが予測どおりに機能していることを確認します。

- アプリケーションのパフォーマンスを監視し、必要に応じてルール式を調整します。

- 適切な製品サポートおよびセキュリティ・グループに職責を次のように割り当てます。

- データベース・セキュリティ管理者にセキュリティ職責を割り当てます。

- データベース・アカウント・マネージャにアカウント管理を割り当てます。

- データベース管理者にリソース管理タスクを割り当てます。

- Database Vault APIスクリプトをセキュア・サーバーにバックアップします。

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

PL/SQLパッケージ、権限およびリサイクルビンのセキュリティの考慮事項を認識する必要があります。

内容は次のとおりです。

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

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

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

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

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

注意:

- パッチおよび新規アプリケーションをインストールすると、この項で取り消した権限のうち、Oracleが推奨する一部の権限が再付与されることがあります。パッチおよび新規アプリケーションをインストールした後で、これらの権限を確認し、取り消されたままになっていることを確認してください。

- パッケージに対するEXECUTE権限を取り消した場合は、所有者にパッケージに対するEXECUTEが付与されていることを確認し、パッケージの依存関係を確認し、取消し後に無効なパッケージを再コンパイルしてください。
パッケージにアクセスできるユーザーを確認するには、名前付きデータベース管理者としてデータベース・インスタンスにログインして、次の問い合せを発行します。

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で行われたパッケージへの参照を識別しません。

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

UTL_FILEおよびDBMS_FILE_TRANSFER PL/SQLパッケージへのアクセスを慎重に制限する必要があります。

内容は次のとおりです。

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

- DBMS_FILE_TRANFERパッケージへのアクセスの保護

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

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

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

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_TRANFERパッケージへのアクセスの保護

DBMS_FILE_TRANSFER PL/SQLパッケージへのアクセスを様々な方法で保護できます。

- 次の方法のいずれかを使用して、DBMS_FILE_TRANSFER PL/SQLパッケージを保護します。

- DBMS_FILE_TRANSFERパッケージのEXECUTE権限を取り消し、この権限を必要とする信頼できるユーザーに対してのみEXECUTE権限を付与します。

- コマンド・ルールを作成して、CREATE DATABASE LINKおよびCREATE DIRECTORY SQL文を制御します。Oracle Database Vault Administratorを使用したコマンド・ルール作成の詳細は、"「コマンド・ルールの作成または編集」"を参照してください。

- Oracle Database Vaultコマンド・ルールを作成して、CREATE DATABASE LINKおよびCREATE DIRECTORY文へのアクセスを制限および有効化します。これらの文は、リモート・データベースへの接続を確立するために使用します。

関連項目:

CREATE DATABASE LINK文の使用を保護するために作成できるコマンド・ルールの例は、次の項を参照してください。

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

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

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

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

DBMS_MACADM.CREATE_COMMAND_RULEでは、コマンド・ルールを作成して、CREATE DATABASE LINK SQL文へのアクセスを拒否できます。

例D-1に、CREATE DATABASE LINK権限へのアクセスを拒否するコマンド・ルールの作成方法を示します。

例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へのアクセスを有効にするコマンド・ルールの作成

DBMS_MACADM.UPDATE_COMMAND_RULEプロシージャは、既存のコマンド・ルールを変更するために使用できます。

例D-2に、CREATE DATABASE LINK権限へのアクセスを有効にするコマンド・ルールの作成方法を示します。

有効なユーザーが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;

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

例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を保護スキーマとして保持し続けるために、このスキーマのオブジェクトを削除できません。他のレルムのセキュリティを強化するために、リサイクルビンを無効にする必要があります。

リサイクルビンの内容のチェック

SELECT文を使用すると、リサイクルビンの内容をチェックできます。

- SQL*Plusで、次のようにSELECTを使用して、リサイクルビンの内容をチェックします。

SELECT * FROM RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN;

リサイクルビンの内容のパージ

PURGE SQL文を使用すると、リサイクルビンの内容をパージできます。

- 次のPURGEコマンドを実行して、リサイクルビンの内容をパージします。

PURGE RECYCLEBIN;
PURGE USER_RECYCLEBIN;

リサイクルビンの無効化

Oracle Database Vault環境でリサイクルビンを無効にすると、削除したDatabase Vaultオブジェクトにリサイクルビンが公開されないようにできます。

1. SYSDBA管理権限を持つユーザーSYSとして、またはALTER SYSTEMシステム権限を持つユーザーとしてデータベース・インスタンスにログインします。

sqlplus psmith
Enter password: password

2. リサイクルビンが無効になっていることを確認します。

SHOW PARAMETER RECYCLEBIN

3. リサイクルビンがオンの場合は、次のいずれかの文を使用して無効にします。

ALTER SYSTEM SET RECYCLEBIN = OFF;

ALTER SESSION SET recyclebin = OFF SCOPE = SPFILE;

4. Oracle Databaseを再起動します。

CONNECT SYS AS SYSDBA
Enter password: password

SHUTDOWN IMMEDIATE
STARTUP

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

CREATE ANY JOB権限はDBAロールおよびSCHEDULER_ADMINロールから取り消されています。

使用しているアプリケーションにこの変更による影響がないことを確認してください。

関連項目:
Oracle Database VaultでのOracle Schedulerの使用

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

CREATE EXTERNAL JOB権限は、Oracle Database 10gリリース2 (10.2)で導入されました。

この権限は、データベースの外部のオペレーティング・システムで稼働するジョブを実行するデータベース・ユーザーに必要です。デフォルトでは、CREATE EXTERNAL JOB権限は、CREATE JOB権限が付与されたすべてのユーザーに付与されます。セキュリティを高めるために、この権限を必要としないユーザーからこの権限を取り消し、必要とするユーザーにのみ付与してください。

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

ロールEXECUTE_CATALOG_ROLEには、いくつかのLogMinerパッケージに対するEXECUTE権限がデフォルトでは付与されません。

これらのパッケージは次のとおりです。

- DBMS_LOGMNR

- DBMS_LOGMNR_D

- DBMS_LOGMNR_LOGREP_DICT

- DBMS_LOGMNR_SESSION

使用しているアプリケーションにこの変更による影響がないことを確認してください。

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

強力なALTER SYSTEMおよびALTER SESSIONシステム権限を保護する方法を認識する必要があります。

内容は次のとおりです。

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

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

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文はトレースを有効にできます。)

例: 既存のALTER SYSTEMコマンド・ルールへのルールの追加

ALTER SYSTEM権限のあるユーザーにALTER SYSTEM文を発行できないようにするルールを作成できます。

例D-4に、ALTER SYSTEM権限を持つユーザーがコマンドALTER SYSTEM DUMPを発行できなくなるルールの作成方法を示します。このコマンド・ルールを作成するときに、Oracle Database Vault所有者アカウントとしてデータベース・インスタンスにログインします。

または、Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。詳細は、「ルール・セットに追加するルールの作成」を参照してください。

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

CONNECT bea_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;

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トレース・イベントの無効化

トレース・ファイルを使用した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で追跡できるトレース・イベントと追跡できないイベントのタイプ

トレース・ファイルを使用して、様々な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トレース・イベントの有効化

ALTER SESSIONまたはALTER SYSTEM SQL文を使用して、Oracle Database Vaultトレース・イベントを有効化できます。

内容は次のとおりです。

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

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

- マルチテナント環境でのトレース・イベントの管理

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

ALTER SESSION SET EVENTS SQL文を使用して、現在のデータベース・セッションのトレース・イベントを有効化できます。

1. DV_ADMINロールおよびALTER SESSIONシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus leo_dvowner
Enter password: password
Connected.

2. 「Oracle Database Vaultトレース・イベントのレベル」で説明されているように、ALTER SESSION SET EVENTS SQL文を入力してトレースを低、高または最高に設定します。

- 影響が小さい操作の失敗に対してトレースを有効にするには、次のいずれかの文を入力します。

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';

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

ALTER SYSTEM SET EVENTS SQL文を使用して、現在のデータベース・セッションのDatabase Vaultトレース・イベントを有効化できます。

1. DV_ADMINロールおよびALTER SYSTEMシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus leo_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]"

マルチテナント環境でのトレース・イベントの管理

マルチテナント環境でトレース・イベントの有効化が受ける影響を認識する必要があります。

- 現在のセッションのトレース・イベント: マルチテナント環境で、ルートまたはプラガブル・データベース(PDB)からALTER SESSION SET EVENTS SQL文を実行すると、現在のユーザー・セッションに対するトレースが有効になります。1つのPDBから別のPDBに切り替えた(ALTER SESSION SET CONTAINER文を使用して)場合、切り替え後のPDBに対して引き続きトレースが有効です。マルチテナント・コンテナ・データベース(CDB)におけるトレースの有効化は、単一のPDBに対してはできず、これはすべてのPDBおよびルートに適用されます。PDBを切り替えるには、ALTER SESSION SET CONTAINERシステム権限が必要です。

- すべてのデータベース・セッションのトレース・イベント: マルチテナント環境で、ルートまたは特定のPDBからALTER SYSTEM SET EVENTS文を実行すると、コンテナ・データベースのすべてのPDBに対するトレースが有効になります。

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

LinuxのgrepコマンドやADRコマンド・インタプリタ(ADRCI)コマンドライン・ユーティリティを使用すると、Oracle Database Vaultのトレース・ファイル・データを検索することができます。

内容は次のとおりです。

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

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

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

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

トレース・ファイルのディレクトリの完全な場所は、V$DIAG_INFO動的ビューを問い合せて検索することができます。

- 次のように、V$DIAG_INFO動的ビューに問い合せます。

SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Default Trace File';

次のような出力が表示されます。

VALUE
--------------------------------------------------------------------------------
/u01/app/oracle/product/12.1.0/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コマンドを使用します。

たとえば、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/12.1.0/log/diag/rdbms/orcl/orcl:
*************************************************************************
234 rows fetched

次のADRCIコマンドは、名前にoraという語が含まれているすべてのトレース・ファイルのリストを返します。

adrci> show tracefile %ora%

/u01/app/oracle/product/12.1.0/log/diag/rdbms/orcl/orcl/trace/orcl_ora_18841.trc
/u01/app/oracle/product/12.1.0/log/diag/rdbms/orcl/orcl/trace/orcl_ora_12017.trc
/u01/app/oracle/product/12.1.0/log/diag/rdbms/orcl/orcl/trace/orcl_ora_19372.trc
/u01/app/oracle/product/12.1.0/log/diag/rdbms/orcl/orcl/trace/orcl_ora_12221.trc
/u01/app/oracle/product/12.1.0/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レルム違反を示すトレース・ファイル

トレース・ファイル・データを使用して、低レベルのレルム違反を追跡できます。

例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

例: 高レベルのトレースを有効にしたOracle Database Vault権限

高レベルのトレースが有効になっているトレース・ファイルで、Oracle Database Vault認可を追跡できます。

例E-2に、このタイプのトレース・ファイルの例を示します。

例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トレース・イベントの無効化

Oracle Database Vaultイベントのトレースを無効化できます。

内容は次のとおりです。

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

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

- マルチテナント環境でのトレース・イベントの無効化

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

ALTER SESSION SET EVENTS SQL文を使用して、現在のデータベース・セッションのDatabase Vaultのトレースを無効化できます。

1. DV_ADMINロールおよびALTER SESSIONシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus leo_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';

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

ALTER SYSTEM SET EVENTS SQL文を使用して、すべてのデータベース・セッションのDatabase Vaultトレースを無効化できます。

1. DV_ADMINロールおよびALTER SYSTEMシステム権限を付与されているユーザーとして、データベース・インスタンスにログインします。

次に例を示します。

sqlplus leo_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]"などです。

マルチテナント環境でのトレース・イベントの無効化

マルチテナント環境でトレース・イベントの有効化が受ける影響を認識する必要があります。

- 現在のセッションのトレース・イベント: マルチテナント環境で、ルートまたはPDBからALTER SESSION SET EVENTS SQL文を実行すると、現在のユーザー・セッションに対するトレースが無効になります。1つのPDBから別のPDBに切り替えた(ALTER SESSION SET CONTAINER文を使用して)場合、切り替え後のPDBに対して引き続きトレースが無効です。CDBで、1つのPDBのみに対してトレースを無効にすることはできず、トレースはすべてのPDBとルートに適用されます。PDBを切り替えるには、ALTER SESSION SET CONTAINERシステム権限が必要です。

- すべてのデータベース・セッションのトレース・イベント: マルチテナント環境で、ルートまたは特定のPDBからALTER SYSTEM SET EVENTS文を実行すると、CDBのすべてのPDBに対するトレースが無効になります。

一般的な診断のヒント

Oracleでは、レルム、ファクタおよびルール・セットの問題を診断する一般的なヒントを提供しています。

これらのガイドラインは、次のとおりです。

- レルム保護の場合、コマンドに作用する基礎となるシステム権限またはオブジェクト権限をユーザーが保持している(直接またはロールを介して付与されている)ことを確認します。

- レルム認可が機能しない場合は、アカウントのロールが正しく設定されていることを確認します。

- ファクタおよびルール・セットで使用されるPL/SQL式の場合、これらの式で使用されるPL/SQLパッケージ・ファンクションに対するEXECUTE権限をアカウントに直接付与し、結果が正しいと思われるかどうかを判断します。

- 一般に、監査レポートを使用して問題を診断します。詳細は、「Oracle Database Vaultの監査レポート」を参照してください。

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

Oracle Database Vaultは、レルム、コマンド・ルール、ファクタ、ルール・セット、またはセキュア・アプリケーション・ロールの構成に関する問題をチェックするためのレポートを提供します。

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

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

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

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

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

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

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

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

これらのレポートを実行するには、「Oracle Database Vaultレポートの実行」を参照してください。

Oracle Database Vaultのアカウント・パスワードのリセット

バックアップ・アカウントは、DV_OWNERおよびDV_ACCTMGRロールを付与されたユーザーがパスワードを紛失した場合に、パスワードをリセットする助けとなります。

内容は次のとおりです。

- DV_OWNERユーザー・パスワードのリセット

- DV_ACCTMGRユーザー・パスワードのリセット

DV_OWNERユーザー・パスワードのリセット

DV_OWNERバックアップ・アカウントは、DV_OWNERユーザーのパスワードのリセットに使用できます。

DV_OWNERユーザーのパスワードをリセットするには、このユーザーから一時的にDV_OWNERロールを取り消し、パスワードをリセットしてから、もう一度ユーザーにロールを付与します。

1. DV_OWNERユーザー・アカウントのバックアップ・ユーザーとしてデータベース・インスタンスにログインします。

次に例を示します。

sqlplus dbv_owner_backup
Enter password: password

2. パスワードを紛失したDV_OWNERユーザーからDV_OWNERロールを取り消します。

次に例を示します。

REVOKE DV_OWNER FROM dbv_owner;

3. DV_ACCTMGRロールを付与されているユーザーとして接続します。

次に例を示します。

CONNECT dbv_acctmgr
Enter password: password

4. DV_OWNERユーザーのパスワードをリセットします。

ALTER USER dbv_owner IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

5. バックアップDV_OWNERユーザーとして接続します。

CONNECT dbv_owner_backup
Enter password: password

6. DV_OWNERロールを、元通りグローバルDV_OWNERユーザーに付与します。

GRANT DV_OWNER TO dbv_owner;

注意:

バックアップDV_OWNERアカウントを、もう一度必要になる場合に備えて、必ず安全に格納するようにしてください。

DV_ACCTMGRユーザー・パスワードのリセット

DV_ACCTMGRバックアップ・アカウントは、DV_ACCTMGRユーザーのパスワードのリセットに使用できます。

DV_ACCTMGRユーザーのパスワードをリセットするには、バックアップDV_ACCTMGRアカウントを使用します。

1. DV_ACCTMGRユーザー・アカウントのバックアップ・ユーザーとしてデータベース・インスタンスにログインします。

次に例を示します。

sqlplus dbv_acctmgr_backup
Enter password: password

2. DV_ACCTMGRユーザーのパスワードをリセットします。

次に例を示します。

ALTER USER dbv_acctmgr IDENTIFIED BY password;

passwordを安全なパスワードに置き換えるには、『Oracle Databaseセキュリティ・ガイド』のガイドラインに従ってください。

注意:

バックアップDV_ACCTMGRアカウントを、もう一度必要になる場合に備えて、必ず安全に格納するようにしてください。

索引

A B C D E F G H I J L M N O P Q R S T U V W X

A

- アクセス制御ポリシー

- レポート

- コアDatabase Vault監査レポート 1

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

- アカウント

- 「データベース・アカウント」を参照

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

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

- 非定型ツール

- 使用の回避 1

- 管理者

- Oracle Database VaultでのDBA操作 1

- 異なるタイプの制限 1

- ADRCIユーティリティ

- Database Vault 1

- アラート

- ルール・セットでの電子メール・アラート 1

- Enterprise Manager Cloud Control 1

- ALTER ROLE文

- 監視 1

- ALTER SESSION権限

- トレース・ファイルの有効化 1

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

- ALTER SESSION文

- 権限の管理のガイドライン 1

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

- ALTER SYSTEM権限

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

- ALTER SYSTEM文

- 権限の管理のガイドライン 1

- ALTER USER文

- 監視 1

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

- アプリケーション・セキュリティ

- ユーザーによる権限の使用の確認 1

- AUDIT_SYS_OPERATIONS初期化パラメータ 1

- AUDIT_TRAIL$システム表

- AUDIT_TRAIL初期化パラメータによる影響 1

- アーカイブ 1

- 形式 1

- パージ 1

- 監査

- 概要 1

- Database Vault監査証跡のアーカイブ

- 概要 1

- コア・データベース監査レポート 1

- DBMS_MACUTLフィールド 1

- ファクタ

- オプション 1

- 侵入者

- ファクタの使用 1

- ルール・セットの使用 1

- Oracle Database監査設定 1

- Database Vault監査証跡のパージ

- 概要 1

- レルム

- DBMS_MACUTLフィールド 1

- オプション 1

- レポート 1

- ルール・セット

- DBMS_MACUTLフィールド 1

- オプション 1

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

- 監査レコード 1

- 監査ポリシー

- 概要 1

- 監査イベント

- 概要 1

- カスタム・イベント

- 監査証跡 1

- 追跡するイベント 1

- 変更の監視 1

- 監査ポリシーの変更

- 監視 1

- AUDIT権限 1

- 「AUDIT権限」レポート 1

- 認証

- Authentication_Methodデフォルト・ファクタ 1

- コマンド・ルール 1

- メソッド, DVF.F$AUTHENTICATION_METHODによる確認 1

- レルム・プロシージャ 1

- 認可

- Oracle Data Pumpアクティビティ 1

- レルム 1

- データベース・ジョブのスケジュール 1

B

- バックアップ・アカウント 1

- BECOME USERレポート 1

- BECOME USERシステム権限

- 概要 1

- ブレークグラス・アカウント

- 「バックアップ・アカウント」を参照

C

- カタログベースのロール 1

- CDB

- Oracle Database Vaultでの機能 1

- 権限プロファイル 1

- クライアント

- DVF.F$CLIENT_IPによるIPアドレスの確認 1

- コード・グループ

- DBMS_MACUTLのファンクションを使用した値の取得 1

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

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

- コマンド・ルール

- 概要 1

- 作成 1

- データ・ディクショナリ・ビュー 1

- データ・マスキング 1

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

- 削除 1

- 編集 1

- ファンクション

- DBMS_MACUTL (ユーティリティ) 1

- ガイドライン 1

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

- オブジェクト

- 名前 1

- 所有者 1

- パフォーマンスへの影響 1

- プロシージャ

- DBMS_MACADM (構成) 1

- プロセス・フロー 1

- ポリシーの他のデータベースへの伝播 1

- レポート 1

- ルール・セット

- 選択 1

- 併用 1

- トラブルシューティング

- 監査レポート 1

- チュートリアル 1

- ビュー 1 、 2

- PDB 1

- 法令順守

- Oracle Database Vaultの対応 1

- コンピュータ名

- DVF.F$MACHINEによる確認 1

- Machineデフォルト・ファクタ 1

- 構成

- 変更の監視 1

- ビュー

- DVSYS.DV$CONFIGURATION_AUDIT 1

- DVSYS.DV$ENFORCEMENT_AUDIT 1

- SYS.DV$CONFIGURATION_AUDIT 1

- CONNECTイベント, コマンド・ルールを使用した制御 1

- 接続プーリング

- 不必要に付与された権限の確認 1

- コンテキスト・プロファイル

- 権限分析 1

- コア・データベース

- コアDatabase Vault監査レポートのトラブルシューティング 1

- コア・データベース監査レポート 1

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

- CPU_PER_SESSIONリソース・プロファイル 1

- CREATE ANY JOB権限 1

- CREATE ANY JOB文

- 権限の管理のガイドライン 1

- CREATE EXTERNAL JOB権限 1

- CREATE JOB権限 1

- CREATE JOB文

- 権限の管理のガイドライン 1

- CREATE ROLE文

- 監視 1

- CREATE USER文

- 監視 1

- CTXSYSスキーマ・レルムの保護 1

D

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

- データベース・アカウント

- バックアップDV_OWNERおよびDV_ACCTMGR 1

- Database Vaultアカウントをエンタープライズ・ユーザーとして構成 1

- 権限のカウント 1

- DBSNMP

- パスワードの変更 1

- 付与されたDV_MONITORロール 1

- DVSYS 1

- LBACSYS 1

- 監視 1

- レポート

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

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

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

- 「AUDIT権限」レポート 1

- BECOME USERレポート 1

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

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

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

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

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

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

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

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

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

- OSセキュリティ脆弱性に関する権限 1

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

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

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

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

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

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

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

- WITH GRANT権限レポート 1

- ロックアウトの解決方法 1

- 推奨 1

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

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

- データベース管理操作 1

- データベースのドメイン, Database_Domainデフォルト・ファクタ 1

- データベース・オブジェクト

- Oracle Database Vault 1

- レポート

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

- データベース・オプション, インストール 1

- データベース・ロール

- 概要 1

- 権限のカウント 1

- デフォルトのOracle Database Vault 1

- DV_ACCTMGR

- 概要 1

- DV_ADMIN 1

- DV_AUDIT_CLEANUP 1

- DV_DATAPUMP_NETWORK_LINK 1

- DV_GOLDENGATE_ADMIN 1

- DV_GOLDENGATE_REDO_ACCESS 1

- DV_MONITOR 1

- DV_OWNER 1

- DV_PATCH_ADMIN 1

- DV_PUBLIC 1

- DV_REALM_OWNER 1

- DV_REALM_RESOURCE 1

- DV_SECANALYST 1

- DV_STREAMS_ADMIN 1

- DV_XSTREAM_ADMIN 1

- 有効化, DVSYS.ROLE_IS_ENABLEDを使用して決定 1

- 監視 1

- Oracle Database Vault, デフォルト 1

- レポート

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

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

- 「AUDIT権限」レポート 1

- BECOME USERレポート 1

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

- OSセキュリティ脆弱性に関する権限 1

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

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

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

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

- 職務分離の実施 1

- データベース

- ファクタを使用した定義 1

- ドメイン, Domainデフォルト・ファクタ 1

- イベントの監視 1

- グループ化されたスキーマ

- 「レルム」を参照 1

- ホスト名, Database_Hostnameデフォルト・ファクタ 1

- インスタンス, ファンクションを使用した情報の取得 1

- インスタンス

- Database_Instanceデフォルト・ファクタ 1

- 名前, DVF.F$DATABASE_INSTANCEによる確認 1

- 番号, DVSYS.DV_INSTANCE_NUMによる検出 1

- IPアドレス

- Database_IPデフォルト・ファクタ 1

- DVF.F$DATABASE_IPを使用して取得 1

- イベントの監視 1

- 名前

- Database_Nameデフォルト・ファクタ 1

- DVF.F$DATABASE_NAMEを使用して取得 1

- DVSYS.DV_DATABASE_NAMEを使用して取得 1

- パラメータ

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

- 存在しないロール 1

- スキーマの作成, DVF.F$IDENTIFICATION_TYPEによる確認 1

- スキーマの作成, Identification_Typeデフォルト・ファクタ 1

- ユーザー名, Session_Userデフォルト・ファクタ 1

- データベース・セッション

- 「セッションを許可」デフォルト・ルール・セットを使用した制御 1

- ファクタ評価 1

- セッション・ユーザー名, Proxy_Userデフォルト・ファクタ 1

- Database Vault

- 「Oracle Database Vault」を参照

- Database Vaultアカウント管理レルム 1

- データ定義言語(DDL)

- 文

- コマンド・ルールを使用した制御 1

- データ定義言語(DDL)文

- Database Vaultの認可

- DVSYS.DBA_DV_DDL_AUTHビュー 1

- 付与 1

- 取消し 1

- データ・ディクショナリ・レルム

- データ・マスキング 1

- データ操作言語(DML)

- 文

- DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWEDファンクションによるチェック 1

- コマンド・ルールを使用した制御 1

- データ・マスキング

- 概要 1

- レルムへのユーザーの追加 1

- コマンド・ルールの作成 1

- 考えられるエラー 1

- Oracle Database Vaultが認識するデータ

- 「ファクタ」を参照

- DBA_USERS_WITH_DEFPWDデータ・ディクショナリ・ビュー

- Oracle Database Vaultでのアクセス 1

- DBAロール

- Oracle Database Vaultインストールの影響 1

- DBMS_FILE_TRANSFERパッケージ, 管理のガイドライン 1

- DBMS_MACADM.ADD_AUTH_TO_REALMプロシージャ 1

- DBMS_MACADM.ADD_FACTOR_LINKプロシージャ 1

- DBMS_MACADM.ADD_NLS_DATA

- プロシージャ 1

- DBMS_MACADM.ADD_NLS_DATAプロシージャ 1

- DBMS_MACADM.ADD_OBJECT_TO_REALMプロシージャ 1

- DBMS_MACADM.ADD_POLICY_FACTORプロシージャ 1

- DBMS_MACADM.ADD_RULE_TO_RULE_SETプロシージャ 1

- DBMS_MACADM.AUTHORIZE_DATAPUMP_USERプロシージャ 1 、 2

- DBMS_MACADM.AUTHORIZE_DDLプロシージャ 1

- DBMS_MACADM.AUTHORIZE_PROXY_USERプロシージャ 1

- DBMS_MACADM.AUTHORIZE_SCHEDULER_USERプロシージャ 1

- DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャ 1

- DBMS_MACADM.CHANGE_IDENTITY_FACTORプロシージャ 1

- DBMS_MACADM.CHANGE_IDENTITY_VALUEプロシージャ 1

- DBMS_MACADM.CREATE_COMMAND_RULEプロシージャ 1

- DBMS_MACADM.CREATE_DOMAIN_IDENTITYプロシージャ 1

- DBMS_MACADM.CREATE_FACTOR_TYPEプロシージャ 1

- DBMS_MACADM.CREATE_FACTORプロシージャ 1

- DBMS_MACADM.CREATE_IDENTITY_MAPプロシージャ 1

- DBMS_MACADM.CREATE_IDENTITYプロシージャ 1

- DBMS_MACADM.CREATE_MAC_POLICYプロシージャ 1

- DBMS_MACADM.CREATE_POLICY_LABELプロシージャ 1

- DBMS_MACADM.CREATE_REALMプロシージャ 1

- DBMS_MACADM.CREATE_ROLEプロシージャ 1

- DBMS_MACADM.CREATE_RULE_SETプロシージャ 1

- DBMS_MACADM.CREATE_RULEプロシージャ 1

- DBMS_MACADM.DELETE_AUTH_FROM_REALMプロシージャ 1

- DBMS_MACADM.DELETE_COMMAND_RULEプロシージャ 1

- DBMS_MACADM.DELETE_FACTOR_LINKプロシージャ 1

- DBMS_MACADM.DELETE_FACTOR_TYPEプロシージャ 1

- DBMS_MACADM.DELETE_FACTORプロシージャ 1

- DBMS_MACADM.DELETE_IDENTITY_MAPプロシージャ 1

- DBMS_MACADM.DELETE_IDENTITYプロシージャ 1

- DBMS_MACADM.DELETE_MAC_POLICY_CASCADEプロシージャ 1

- DBMS_MACADM.DELETE_OBJECT_FROM_REALMプロシージャ 1

- DBMS_MACADM.DELETE_POLICY_FACTORプロシージャ 1

- DBMS_MACADM.DELETE_POLICY_LABELプロシージャ 1

- DBMS_MACADM.DELETE_REALM_CASCADEプロシージャ 1

- DBMS_MACADM.DELETE_REALMプロシージャ 1

- DBMS_MACADM.DELETE_ROLEプロシージャ 1

- DBMS_MACADM.DELETE_RULE_FROM_RULE_SETプロシージャ 1

- DBMS_MACADM.DELETE_RULE_SETプロシージャ 1

- DBMS_MACADM.DELETE_RULEプロシージャ 1

- DBMS_MACADM.DISABLE_DV_DICTIONARY_ACCTSプロシージャ 1

- DBMS_MACADM.DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ 1

- DBMS_MACADM.DISABLE_DVプロシージャ 1

- DBMS_MACADM.DISABLE_ORADEBUGプロシージャ 1

- DBMS_MACADM.DROP_DOMAIN_IDENTITYプロシージャ 1

- DBMS_MACADM.ENABLE_DV_DICTIONARY_ACCTSプロシージャ 1

- DBMS_MACADM.ENABLE_DVプロシージャ

- 概要 1

- Database Vaultの登録 1 、 2 、 3

- DBMS_MACADM.ENABLE_ORADEBUGプロシージャ 1

- DBMS_MACADM.ENSABLE_DV_PATCH_ADMIN_AUDITプロシージャ 1

- DBMS_MACADM.GET_INSTANCE_INFOファンクション 1

- DBMS_MACADM.GET_SESSION_INFOファンクション 1

- DBMS_MACADM.RENAME_FACTOR_TYPEプロシージャ 1

- DBMS_MACADM.RENAME_FACTORプロシージャ 1

- DBMS_MACADM.RENAME_REALMプロシージャ 1

- DBMS_MACADM.RENAME_ROLEプロシージャ 1

- DBMS_MACADM.RENAME_RULE_SETプロシージャ 1

- DBMS_MACADM.RENAME_RULEプロシージャ 1

- DBMS_MACADM.UNAUTHORIZE_DDLプロシージャ 1

- DBMS_MACADM.UNAUTHORIZE_PROXY_USERプロシージャ 1

- DBMS_MACADM.UNAUTHORIZE_SCHEDULER_USERプロシージャ 1

- DBMS_MACADM.UNAUTHORIZE_TTS_USERプロシージャ 1

- DBMS_MACADM.UPDATE_COMMAND_RULEプロシージャ 1

- DBMS_MACADM.UPDATE_FACTOR_TYPEプロシージャ 1

- DBMS_MACADM.UPDATE_FACTORプロシージャ 1

- DBMS_MACADM.UPDATE_IDENTITYプロシージャ 1

- DBMS_MACADM.UPDATE_MAC_POLICYプロシージャ 1

- DBMS_MACADM.UPDATE_REALM_AUTHプロシージャ 1

- DBMS_MACADM.UPDATE_REALMプロシージャ 1

- DBMS_MACADM.UPDATE_ROLEプロシージャ 1

- DBMS_MACADM.UPDATE_RULE_SETプロシージャ 1

- DBMS_MACADM.UPDATE_RULEプロシージャ 1

- DBMS_MACADMパッケージ

- 概要 1

- コマンド・ルール・プロシージャ, リスト 1

- ファクタ・プロシージャ, リスト 1

- Oracle Label Securityポリシー・プロシージャ, リスト 1

- レルム・プロシージャ, リスト 1

- ルール・セット・プロシージャ, リスト 1

- セキュア・アプリケーション・ロール・プロシージャ, リスト 1

- DBMS_MACADM PL/SQLパッケージの内容 1

- DBMS_MACSEC_ROLES.CAN_SET_ROLEファンクション 1

- DBMS_MACSEC_ROLES.SET_ROLEプロシージャ 1

- DBMS_MACSEC_ROLESパッケージ

- 概要 1

- ファンクション, リスト 1

- DBMS_MACUTL.CHECK_DVSYS_DML_ALLOWEDプロシージャ 1

- DBMS_MACUTL.GET_CODE_VALUEファンクション 1

- DBMS_MACUTL.GET_DAYファンクション 1

- DBMS_MACUTL.GET_HOURファンクション 1

- DBMS_MACUTL.GET_MINUTEファンクション 1

- DBMS_MACUTL.GET_MONTHファンクション 1

- DBMS_MACUTL.GET_SECONDファンクション 1

- DBMS_MACUTL.GET_YEARファンクション 1

- DBMS_MACUTL.IS_ALPHAファンクション 1

- DBMS_MACUTL.IS_DIGITファンクション 1

- DBMS_MACUTL.IS_DVSYS_OWNERファンクション 1

- DBMS_MACUTL.IS_OLS_INSTALLED_VARCHARファンクション 1

- DBMS_MACUTL.IS_OLS_INSTALLEDファンクション 1

- DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGEファンクション 1

- DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクション 1

- DBMS_MACUTL.USER_HAS_ROLEファンクション 1

- DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクション 1

- DBMS_MACUTLパッケージ

- 概要 1

- 定数(フィールド)

- 例 1

- リスト 1

- プロシージャおよびファンクション, リスト 1

- DBMS_MACUTL PL/SQLパッケージの内容 1

- DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージ 1

- DBSNMPスキーマ・レルムの保護 1

- DBSNMPユーザー・アカウント

- パスワードの変更 1

- 付与されたDV_MONITORロール 1

- アンインストール 1

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

- DELETE_CATALOG_ROLEロール 1

- DoS攻撃

- レポート

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

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

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

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

- 直接システム権限 1

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

- 「無効」デフォルト・ルール・セットを使用したシステム機能の無効化 1

- ドメイン

- ファクタを使用した定義 1

- DVF.F$DATABASE_DOMAINによるデータベースのドメインの確認 1

- DVF.F$DOMAINによる確認 1

- DROP ROLE文

- 監視 1

- DROP USER文

- 監視 1

- デュアル・キー接続, デュアル・キー・セキュリティ

- 「二人制整合性(TPI)」を参照

- DV_ACCTMGRロール

- 概要 1

- バックアップ・アカウント 1

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- レルムの保護 1

- DV_ADMINロール

- 概要 1

- DV_ADMINを付与されたユーザーのパスワードの変更 1

- Database Vaultが無効の場合 1 、 2

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_AUDIT_CLEANUPロール

- 概要 1

- Database Vaultが無効の場合 1 、 2 、 3

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_DATAPUMP_NETWORK_LINKロール

- 概要 1

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_GOLDENDATE_REDOロール

- 関連付けられている権限 1

- DV_GOLDENDGATE_ADMINロール

- Database Vaultが無効の場合 1

- DV_GOLDENGATE_ADMINロール

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_GOLDENGATE_REDO_ACCESSロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- DV_MONITORロール

- 概要 1

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_OWNERロール

- 概要 1

- バックアップ・アカウント 1

- DV_OWNERを付与されたユーザーのパスワードの変更 1

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_PATCH_ADMINロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_PUBLICロール 1

- DV_REALM_OWNERロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_REALM_RESOURCEロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_SECANALYSTロール

- 概要 1

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_STREAMS_ADMINロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DV_XSTREAM_ADMINロール

- Database Vaultが無効の場合 1

- GRANTおよびREVOKE操作が受ける影響 1

- 関連付けられている権限 1

- DVFアカウント

- 監査ポリシー 1

- データベース・アカウント 1

- DVF PL/SQLインタフェースの内容 1

- DVFスキーマ

- 概要 1

- 監査ポリシー 1

- DVSYS.DBA_DV_DICTIONARY_ACCTSビュー 1

- PDB 1

- 保護 1

- レルムの保護 1

- DVSYS.CONFIGURE_DVプロシージャ

- 概要 1

- Database Vaultの登録 1 、 2

- DVSYS.DBA_DV_CODEビュー 1

- DVSYS.DBA_DV_COMMAND_RULEビュー 1 , 2

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー 1

- DVSYS.DBA_DV_DDL_AUTHビュー 1

- DVSYS.DBA_DV_DICTIONARY_ACCTSビュー 1

- DVSYS.DBA_DV_FACTOR_LINK 1

- DVSYS.DBA_DV_FACTOR_LINKビュー 1

- DVSYS.DBA_DV_FACTOR_TYPEビュー 1

- DVSYS.DBA_DV_FACTORビュー 1

- DVSYS.DBA_DV_IDENTITY_MAPビュー 1

- DVSYS.DBA_DV_IDENTITYビュー 1

- DVSYS.DBA_DV_JOB_AUTHビュー 1

- DVSYS.DBA_DV_MAC_POLICY_FACTORビュー 1

- DVSYS.DBA_DV_MAC_POLICYビュー 1

- DVSYS.DBA_DV_ORADEBUGビュー 1

- DVSYS.DBA_DV_PATCH_ADMIN_AUDITビュー 1

- DVSYS.DBA_DV_POLICY_LABELビュー 1

- DVSYS.DBA_DV_PROXY_AUTHビュー 1

- DVSYS.DBA_DV_PUB_PRIVSビュー 1

- DVSYS.DBA_DV_REALM_AUTHビュー 1

- DVSYS.DBA_DV_REALM_OBJECTビュー 1

- DVSYS.DBA_DV_REALMビュー 1

- DVSYS.DBA_DV_ROLEビュー 1

- DVSYS.DBA_DV_RULE_SET_RULEビュー 1

- DVSYS.DBA_DV_RULE_SETビュー 1

- DVSYS.DBA_DV_RULEビュー 1

- DVSYS.DBA_DV_STATUSビュー 1

- DVSYS.DBA_DV_TTS_AUTH view 1

- DVSYS.DBA_DV_USER_PRIVS_ALLビュー 1

- DVSYS.DBA_DV_USER_PRIVSビュー 1

- DVSYS.DV$CONFIGURATION_AUDITビュー 1

- DVSYS.DV$ENFORCEMENT_AUDITビュー 1

- DVSYS.DV$REALMビュー 1

- DVSYSアカウント 1

- DVSYSスキーマ

- 概要 1

- 監査ポリシー 1

- CDB 1

- DV_OWNERロール 1

- DVSYS.DBA_DV_DICTIONARY_ACCTSビュー 1

- PDB 1 、 2

- 保護 1

- レルムの保護 1

E

- ルール・セットでの電子メール・アラート 1

- 「有効」デフォルト・ルール・セットを使用したシステム機能の有効化 1

- 暗号化された情報 1

- エンタープライズのアイデンティティ, Enterprise_Identityデフォルト・ファクタ 1

- Enterprise Manager

- 「Oracle Enterprise Manager」を参照

- エンタープライズ・ユーザー・セキュリティ

- Database Vaultアカウントの構成 1

- エラー

- ファクタのエラー・オプション 1

- イベント・ハンドラ

- ルール・セット 1

- 例

- DBMS_MACUTLの定数 1

- レルム 1

- 職務分離マトリクス 1

- トレース・ファイル 1 、 2 、 3

- EXECUTE_CATALOG_ROLEロール

- Oracle Database Vaultインストールの影響 1

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

- EXEMPT ACCESS POLICYシステム権限 1

- データのエクスポート

- 「Oracle Data Pump」を参照

- 外部ネットワーク・サービス, ファイングレイン・アクセス

- 電子メール・アラートを使用した例 1

F

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

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

- ファクタ

- 概要 1

- 代入

- 無効なルール・セット 1

- 不完全なルール・セット 1

- 検証 1

- 割当て操作 1

- 監査イベント, カスタム 1

- 監査オプション 1

- 子ファクタ

- 概要 1

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

- マッピング 1

- 作成 1

- 名前の作成 1

- データ・ディクショナリ・ビュー 1

- DBMS_MACUTLの定数, 例 1

- デフォルト・ファクタ 1

- 削除 1

- ドメイン, DVF.F$DOMAINによる確認 1

- DVSYS.DBA_DV_FACTORビュー 1

- エラー・オプション 1

- 評価 1

- 評価操作 1

- ファクタとアイデンティティの組合せのマップ 1

- ファクタ・タイプ

- 概要 1

- 選択 1

- 機能 1

- ファンクション

- DBMS_MACUTL (ユーティリティ) 1

- DBMS_MACUTLの定数(フィールド) 1

- ガイドライン 1

- 子ファクタを使用した識別 1

- アイデンティティ

- 概要 1 、 2

- ファクタへの追加 1

- 割当て 1

- 構成 1

- 作成 1

- データベース・セッション 1

- データ・ディクショナリ・ビュー 1

- 削除 1

- エンタープライズ全体のユーザー 1

- ファクタの識別の動作 1

- ラベル 1

- マッピング, 概要 1

- マッピング, 識別 1

- マッピング, 手順 1

- マッピング, チュートリアル 1

- Oracle Label Securityラベル 1

- レポート 1

- 解決 1

- 取得メソッド 1

- 動的に設定 1

- 信頼レベル 1 、 2

- Oracle Label Security 1

- 初期化, コマンド・ルール 1

- 無効な監査オプション 1

- ラベル 1

- ネーミング規則 1

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

- 親ファクタ 1

- パフォーマンスへの影響 1

- プロシージャ

- DBMS_MACADM (構成) 1

- プロセス・フロー 1

- ポリシーの他のデータベースへの伝播 1

- レポート 1

- 取得 1

- DVSYS.GET_FACTORを使用して取得 1

- ルール・セット

- 選択 1

- 設定 1

- DVSYS.SET_FACTORを使用した設定 1

- トラブルシューティング

- 監査レポート 1

- 構成の問題 1

- ヒント 1

- タイプ(ファクタのカテゴリ) 1

- 検証 1

- 値(アイデンティティ) 1

- ビュー

- DVSYS.DBA_DV_FACTOR_LINK 1

- DVSYS.DBA_DV_FACTOR_TYPE 1

- DVSYS.DBA_DV_IDENTITY 1

- DVSYS.DBA_DV_IDENTITY_MAP 1

- DVSYS.DBA_DV_MAC_POLICY_FACTOR 1

- 割当て方法 1

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

- ファンクション

- コマンド・ルール

- DBMS_MACUTL (ユーティリティ) 1

- DVSYSスキーマの有効化 1 , 2

- ファクタ

- DBMS_MACUTL (ユーティリティ) 1

- Oracle Label Securityポリシー

- DBMS_MACADM (構成) 1

- レルム

- DBMS_MACUTL (ユーティリティ) 1

- ルール・セット

- DBMS_MACADM (構成) 1

- DBMS_MACUTL (ユーティリティ) 1

- SQLの検査用のPL/SQLファンクション 1

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

- DBMS_MACADM (構成) 1

- DBMS_MACSEC_ROLES (構成) 1

- DBMS_MACUTL (ユーティリティ) 1

G

- 一般セキュリティ・レポート 1

- GRANT文

- 監視 1

- ガイドライン

- ALTER SESSION権限 1

- ALTER SYSTEM権限 1

- DV_OWNERおよびDV_ACCTMGRバックアップ・アカウント 1

- コマンド・ルール 1

- CREATE ANY JOB権限 1

- CREATE EXTERNAL JOB権限 1

- CREATE JOB権限 1

- DBMS_FILE_TRANSFERパッケージ 1

- ファクタ 1

- 一般的なセキュリティ 1

- LogMinerパッケージ 1

- DV_OWNERおよびDV_ACCTMGRアカウントの管理 1

- オペレーティング・システム・アクセス 1

- Oracleソフトウェア所有者 1

- パフォーマンスへの影響 1

- レルム 1

- リサイクルビン 1

- ルート・アクセス 1

- ルート・ユーザー・アクセス 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- SYSDBAアクセス 1

- SYSDBA権限, 制限 1

- SYSOPERアクセス 1

- SYSTEMスキーマおよびアプリケーション表 1

- SYSTEMユーザー・アカウント 1

- 信頼できるアカウントおよびロール 1

- 本番環境でのDatabase Vaultの使用 1

- UTL_FILEパッケージ 1

H

- ハッカー

- 「セキュリティ攻撃」を参照

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

- ホスト名

- DVF.F$DATABASE_HOSTNAMEによる確認 1

I

- アイデンティティ

- 「ファクタ, アイデンティティ」を参照

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

- IDLE_TIMEリソース・プロファイル 1

- IMP_FULL_DATABASEロール

- Oracle Database Vaultインストールの影響 1

- データのインポート

- 「Oracle Data Pump」を参照

- 不完全なルール・セット

- ロール有効化 1

- 初期化パラメータ

- 「システム・パラメータを許可」デフォルト・ルール・セット 1

- インストール後の変更 1

- Oracle Database Vaultによる変更 1

- レポート 1

- 内部関係者

- 「侵入者」を参照

- インストール

- セキュリティに関する考慮事項 1

- 侵入者

- 権限アカウントの侵害 1

- IPアドレス

- Client_IPデフォルト・ファクタ 1

- ファクタを使用した定義 1

J

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

- ジョブ, スケジュール

- 「Oracle Scheduler」を参照

L

- ラベル

- 概要 1

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

- 言語

- Oracle Database Vaultへの追加 1

- DVF.F$LANGによる確認 1

- DVF.F$LANGUAGEによる確認 1

- 名前

- Langデフォルト・ファクタ 1

- Languageデフォルト・ファクタ 1

- LBACSYSアカウント

- 概要 1

- 監査ポリシー 1

- LBACSYSスキーマ

- 監査ポリシー 1

- レルムの保護 1

- ロックアウトされたアカウント, 解決方法 1

- ログ・ファイル

- Database Vaultのログ・ファイル 1

- ログイン

- レポート, コア・データベース監査レポート 1

- LogMinerパッケージ

- ガイドライン 1

M

- ユーザー・アカウントとプロファイルの管理

- 「アカウント/プロファイルを保守可能」デフォルト・ルール・セット 1

- 各自のアカウントでのユーザー・アカウントとプロファイルの管理, 「自分のアカウントを保守可能」デフォルト・ルール・セット 1

- 必須レルム

- 概要 1

- アイデンティティのマッピング 1

- MDDATAスキーマ・レルムの保護 1

- MDSYSスキーマ・レルムの保護 1

- 監視

- アクティビティ 1

- マルチテナント・コンテナ・データベース

- 「CDB」を参照

- My Oracle Support

- 概要 1

N

- ネーミング規則

- ファクタ 1

- レルム 1

- ルール 1

- ルール・セット 1

- ネットワーク・プロトコル

- DVF.F$NETWORK_PROTOCOLによる確認 1

- ネットワーク・プロトコル, Network_Protocolデフォルト・ファクタ 1

- NOAUDIT文

- 監視 1

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

- 非システム・データベース・アカウント 1

O

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

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

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

- オブジェクト所有者

- 存在しない 1

- レポート

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

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

- オブジェクト

- コマンド・ルールのオブジェクト

- 名前 1

- 所有者 1

- 処理 1

- 動的SQLの使用 1

- 必須レルム 1

- 監視 1

- オブジェクト名

- DVSYS.DV_DICT_OBJ_NAMEによる検出 1

- オブジェクト所有者

- DVSYS.DV_DICT_OBJ_OWNERによる検出 1

- レルム

- オブジェクト名 1

- オブジェクト所有者 1

- オブジェクト・タイプ 1

- 登録用のプロシージャ 1

- レポート

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

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

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

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

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

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

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

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

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

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

- 権限 1

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

- 機密 1

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

- 必須レルムを使用したユーザー・アクセスの制限 1

- タイプ

- DVSYS.DV_DICT_OBJ_TYPEによる検出 1

- ビュー, DVSYS.DBA_DV_REALM_OBJECT 1

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

- オブジェクト・タイプ

- Database Vaultレルム保護のサポート 1

- OEM

- 「Oracle Enterprise Manager (OEM)」を参照

- OEM_MONITORスキーマ・レルムの保護 1

- OLS

- 「Oracle Label Security」を参照

- オペレーティング・システム・アクセス

- Database Vaultでの使用のガイドライン 1

- オペレーティング・システム

- レポート

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

- 「OSセキュリティ脆弱性に関する権限」レポート 1

- 脆弱性 1

- ORA$DEPENDENCYプロファイル 1

- ORA-00942エラー 1

- ORA-01301エラー 1

- ORA-06512エラー 1 、 2

- ORA-24247エラー 1

- ORA-47305エラー 1

- ORA-47400エラー 1 、 2

- ORA-47401エラー 1 、 2

- ORA-47408エラー 1

- ORA-47409エラー 1

- ORA-47500エラー 1

- ORA-47503エラー 1

- ORA-47920エラー 1

- Oracle Database Vault

- 概要 1

- コンポーネント 1 、 2

- アンインストール 1

- 無効化

- 手順 1

- 理由 1

- 有効化

- 手順 1

- その他のOracle製品との統合 1

- Oracle Databaseインストール, 影響 1

- インストール後の手順 1

- 使用権限 1

- 登録

- DBCAの使用 1

- 再インストール 1

- ロール

- 権限 1

- Oracle Database Vault Administrator(DVA)

- Oracle Enterprise Manager Cloud Controlからのログオン 1

- Oracle Database Vault Administratorページ 1

- Oracle Database Vaultレルム 1

- Oracle Database Vault登録

- 概要 1

- 特定のPDBを管理する共通ユーザー 1

- CDBルートを管理する共通ユーザー 1

- 非マルチテナント環境 1

- Database Vault対応データベースへの接続 1

- 構成と有効化の確認 1

- Oracle Data Dictionaryレルム, 非推奨 1

- Oracle Data Guard

- Database Vaultの統合 1

- Oracle Data Pump

- Oracle Database Vault監査証跡のアーカイブ 1

- Database Vaultのトランスポータブル表領域操作の認可 1

- DBMS_MACADM.AUTHORIZE_TTS_USER 1

- DBMS_MACADM.UNAUTHORIZE_TTS_USER 1

- DVSYS.DBA_DV_DATAPUMP_AUTHビュー 1

- DVSYS.DBA_DV_TTS_AUTH view 1

- Database Vaultとともに使用する権限の付与 1

- エクスポートまたはインポートを実行する前のガイドライン 1

- 必要な認可のレベル

- Oracle Data Pumpのみ 1

- トランスポータブル表領域 1

- 認可用のMACADMプロシージャ 1

- レルムの保護 1

- 標準認可の取消し 1

- トランスポータブル表領域権限の取消し 1

- Oracle Database Vaultとの使用 1

- Oracleデフォルト・コンポーネント保護レルム 1

- Oracleデフォルト・スキーマ保護レルム 1

- Oracle Enterprise Manager

- DBSNMPアカウント

- パスワードの変更 1

- 付与されたDV_MONITORロール 1

- Oracle Database Vaultとの使用 1

- Oracle Enterprise Manager Cloud Control

- Database Vaultでの違反試行の監視 1

- Database Vaultポリシーの他のデータベースへの伝播 1

- Oracle Database Vaultの起動 1

- Oracle Enterprise Managerレルム 1

- Oracle Enterprise User Security, Oracle Database Vaultとの統合 1

- Oracle GoldenGate

- Database Vaultロールの使用

- DV_GOLDENGATE_ADMIN 1

- DV_GOLDENGATE_REDO_ACCESS 1

- Oracle Database Vault環境 1

- Oracle Internet Directory, DBCAへの登録 1

- Oracle Internet Directory識別名, Proxy_Enterprise_Identityデフォルト・ファクタ 1

- Oracle Label Security

- ルール式でのOLS_LABEL_DOMINATESファンクションの使用 1

- Oracle Label Security(OLS)

- 監査イベント, カスタム 1

- DBMS_MACUTLファンクションを使用してインストールされているかどうかのチェック 1

- データ・ディクショナリ・ビュー 1

- ファンクション

- DBMS_MACUTL (ユーティリティ) 1

- Database Vaultとの統合方法 1

- 初期化, コマンド・ルール 1

- Oracle Database Vaultとの統合

- 例 1

- 「Label Security統合の監査」レポート 1

- プロシージャ 1

- 要件 1

- ラベル

- 概要 1

- DVSYS.GET_FACTOR_LABELを使用した決定_ 1

- 無効なラベル・アイデンティティ 1

- ポリシー

- 無視するアカウント 1

- ポリシー変更の監視 1

- 存在しない 1

- プロシージャ

- DBMS_MACADM (構成) 1

- レポート 1

- ビュー

- DVSYS.DBA_DV_MAC_POLICY 1

- DVSYS.DBA_DV_MAC_POLICY_FACTOR 1

- DVSYS.DBA_DV_POLICY_LABEL 1

- Oracle MetaLink

- 「My Oracle Support」を参照

- Oracle OLAPレルムの保護 1

- Oracle Real Application Clusters

- RACノードでのDatabase Vaultの構成 1

- Oracle Database Vaultのアンインストール 1

- 複数のファクタ・アイデンティティ 1

- Oracle Recovery Manager(RMAN)

- Oracle Database Vault環境 1

- Oracle Scheduler

- DVSYS.DBA_DV_JOB_AUTHビュー 1

- Oracle Database Vault権限の付与 1

- レルムの保護 1

- Oracle Database Vault権限の取消し 1

- SCHEDULER_ADMINロール, Oracle Database Vaultインストールの影響 1

- Oracle Database Vaultとの使用 1

- Oracleソフトウェア所有者, 管理のガイドライン 1

- Oracle Spatialレルムの保護 1

- Oracle Streams

- Database Vaultロールの使用 1

- Oracleシステム権限およびロール管理レルム 1

- Oracle Textレルムの保護 1

- Oracle Virtual Private Database(VPD)

- 無視するアカウント 1

- ファクタ, 追加 1

- GRANT EXECUTE権限と「VPD管理権限を付与可能」デフォルト・ルール・セット 1

- Oracle Label SecurityでのDatabase Vaultファクタの使用 1

- ORADEBUGユーティリティ

- 概要 1

- DVSYS.DBA_DV_ORADEBUGビュー 1

- Database Vaultで無効にするためのPL/SQLプロシージャ 1

- Database Vaultで有効にするためのPL/SQLプロシージャ 1

- Database Vaultでの使用 1

- OS_ROLES初期化パラメータ 1

- 「OSディレクトリ・オブジェクト」レポート 1

- 「OSセキュリティ脆弱性に関する権限」レポート 1

- OUTlNスキーマ・レルムの保護 1

P

- パラメータ

- インストール後の変更 1

- レポート

- 「セキュリティ関連のデータベース・パラメータ」レポート 1

- 親ファクタ

- 「ファクタ」を参照

- 「パスワード履歴へのアクセス」レポート 1

- パスワード

- 忘れた場合, 解決方法 1

- レポート

- 「データベース・アカウントのデフォルト・パスワード」レポート 1

- 「パスワード履歴へのアクセス」レポート 1

- 「ユーザーまたはパスワード表」レポート 1

- DV_ACCTMGRユーザーのリセット 1

- DV_OWNERユーザーのリセット 1

- パッチ

- DV_PATCH_ADMINユーザーの監査 1

- DBMS_MACADM.DISABLE_DV_PATCH_ADMIN_AUDITプロシージャ 1

- DBMS_MACADM.ENSABLE_DV_PATCH_ADMIN_AUDITプロシージャ 1

- DV_PATCH_ADMINの要件 1

- セキュリティに関する考慮事項 1

- 二人制整合性の使用 1

- PDB

- コマンド・ルール 1

- トレースの無効化

- すべてのデータベース・セッション 1

- 現在のデータベース・セッション 1

- DVFスキーマ 1

- DVSYSスキーマ 1 、 2

- トレースの有効化

- すべてのデータベース・セッション 1

- 現在のデータベース・セッション 1

- Database Vaultが有効になっているPDBをCDBに接続 1

- 権限分析 1

- パフォーマンスへの影響

- コマンド・ルール 1

- レルム 1

- レポート

- 「リソース・プロファイル」レポート 1

- 「システム・リソース制限」レポート 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- ルール・セットの静的評価 1

- パフォーマンス・ツール

- 自動ワークロード・リポジトリ(AWR)

- コマンド・ルール 1

- ファクタ 1

- Oracle Enterprise Manager

- パフォーマンス・ツール 1

- パフォーマンス・ツール

- Cloud Control, レルム 1

- Oracle Enterprise Manager

- レルム 1

- レルム 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- Oracle Enterprise Manager

- コマンド・ルール 1

- ファクタ 1

- パフォーマンス・ツール

- Oracle Enterprise Manager Cloud Control

- コマンド・ルール 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- Oracle Enterprise Manager Cloud Control

- ファクタ 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- TKPROFユーティリティ

- コマンド・ルール 1

- ファクタ 1

- レルム 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- PL/SQL

- パッケージ

- アンラップされた本体 1

- アンラップされたPL/SQLパッケージ本体レポート 1

- PL/SQLファクタ・ファンクション 1

- プラガブル・データベース

- 「PDB」を参照

- ポリシー変更, 監視 1

- インストール後の手順 1

- 権限分析

- 概要 1

- Cloud Controlでのレポートへのアクセス 1

- 利点 1

- CDB 1

- 作成

- 概要 1

- Cloud Control 1

- DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTUREの使用 1

- Cloud Controlでのロールの作成 1

- データ・ディクショナリ・ビュー 1

- DBMS_PRIVILEGE_CAPTURE PL/SQLパッケージ 1

- 無効化

- 概要 1

- Cloud Control 1

- DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTUREの使用 1

- 削除

- 概要 1

- Cloud Control 1

- DBMS_PRIVILEGE_CAPTURE.DROP_CAPTUREの使用 1

- 有効化

- 概要 1

- Cloud Control 1

- DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTUREの使用 1

- 作成と有効化の例 1

- 管理の一般手順 1

- 再付与スクリプトの生成 1

- レポートの生成

- 概要 1

- Cloud Control 1

- DBMS_PRIVILEGE_CAPTURE.GENERATE_REPORTの使用 1

- 取消スクリプトの生成 1

- ログオン・ユーザー 1

- プリコンパイル済データベース・オブジェクト 1

- 取得される権限使用 1

- 使用するための要件 1

- 制限事項 1

- Cloud Controlでの取消しと再付与 1

- スクリプトを使用した取消しと再付与 1

- チュートリアル 1

- ANY権限のチュートリアル 1

- 使用例

- アプリケーション・プールの権限の確認 1

- 過剰な権限を与えられたユーザーの確認 1

- 権限

- DBMS_MACUTL.USER_HAS_OBJECT_PRIVILEGEファンクションによるチェック 1

- 既存のユーザーおよびロール, Database Vaultの影響 1

- 最低限の権限の原則

- 違反 1

- 監視

- GRANT文 1

- REVOKE文 1

- Oracle Database Vaultの制限 1

- 既存のユーザーおよびロールに対して阻止 1

- レポート

- 「DBAロールを持つアカウント」レポート 1

- ALTER SYSTEMまたはALTER SESSIONレポート 1

- 「データベース・アカウントのANYシステム権限」レポート 1

- 「AUDIT権限」レポート 1

- 「カタログ・ロールを持つデータベース・アカウント」レポート 1

- 「データベース・アカウントごとの直接および間接システム権限」レポート 1

- 「データベース・アカウントごとの直接システム権限」レポート 1

- 「データベース・アカウントごとの階層システム権限」レポート 1

- リスト 1

- 「OSディレクトリ・オブジェクト」レポート 1

- 「権限受領者、所有者、権限ごとの権限の配布」レポート 1

- 「権限受領者、所有者ごとの権限の配布」レポート 1

- 「権限受領者ごとの権限の配布」レポート 1

- WITH GRANT権限レポート 1

- 必須レルムを使用したアクセスの制限 1

- ロール

- DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクションによるチェック 1

- システム

- DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクションによるチェック 1

- ビュー

- DVSYS.DBA_DV_PUB_PRIVS 1

- DVSYS.DBA_DV_USER_PRIVS 1

- DVSYS.DBA_DV_USER_PRIVS_ALL 1

- 「権限受領者、所有者、権限ごとの権限の配布」レポート 1

- 「権限受領者、所有者ごとの権限の配布」レポート 1

- 「権限受領者ごとの権限の配布」レポート 1

- 外部パスワードを使用する権限 1

- 問題, 診断 1

- プロシージャ

- コマンド・ルール

- .DBMS_MACADM (構成) 1

- ファクタ

- DBMS_MACADM (構成) 1

- レルム

- DBMS_MACADM (構成) 1

- 本番環境

- 保護に関するガイドライン 1

- プロファイル 1

- プロキシ・ユーザーの認可

- Database Vaultの認可

- DVSYS.DBA_DV_PROXY_AUTHビュー 1

- 付与 1

- 取消し 1

- レルムへのPUBLICアクセス 1

- 「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート 1

- PUBLICユーザー・アカウント

- Oracle Database Vaultインストールの影響 1

Q

- 割当て

- 表領域 1

R

- 「レルムの監査」レポート 1

- 「レルム認可構成の問題」レポート 1

- レルム

- 概要 1

- 権限受領者としてロールを追加 1

- 監査イベント, カスタム 1

- 認証関連プロシージャ 1

- 認可

- レルムで保護されたオブジェクトへのアクセスの有効化 1

- レルム認可の動作 1

- プロセス・フロー 1

- トラブルシューティング 1

- 認可

- 権限受領者 1

- ルール・セット 1

- 作成 1

- 名前の作成 1

- Database Vaultアカウント管理レルム 1

- データ・ディクショナリ・ビュー 1

- データ・マスキング 1

- DBMS_MACUTLの定数, 例 1

- デフォルトのレルム

- リスト 1

- 削除 1

- このリリースでは非推奨 1

- 無効化 1

- DV_REALM_OWNERロール 1

- DV_REALM_RESOURCEロール 1

- その他のOracle Database Vaultコンポーネントへの影響 1

- 有効化 1

- レルムで保護されたオブジェクトへのアクセスの有効化 1

- 例 1

- ファンクション

- DBMS_MACUTL (ユーティリティ) 1

- DBMS_MACUTLの定数(フィールド) 1

- ガイドライン 1

- レルムの動作 1

- 必須レルム 1

- ネーミング規則 1

- オブジェクト関連プロシージャ 1

- オブジェクト・タイプ, サポート 1

- Oracle Database Vaultレルム 1

- Oracleデフォルト・コンポーネント保護レルム 1

- Oracleデフォルト・スキーマ保護レルム 1

- Oracle Enterprise Managerレルム 1

- Oracleシステム権限およびロール管理レルム 1

- パフォーマンスへの影響 1

- プロシージャ

- DBMS_MACADM (構成) 1

- プロセス・フロー 1

- ポリシーの他のデータベースへの伝播 1

- オブジェクトの削除後の保護 1

- PUBLICアクセス 1

- レルム認可

- 概要 1

- レルム・セキュア・オブジェクト

- オブジェクト名 1

- オブジェクト所有者 1

- オブジェクト・タイプ 1

- レルム・セキュア・オブジェクト 1

- レポート 1

- ロール

- DV_REALM_OWNER 1

- DV_REALM_RESOURCE 1

- セキュア・オブジェクト 1

- レルムが保護する領域 1

- トラブルシューティング 1 、 2

- チュートリアル 1

- ビュー

- DV$REALM 1

- DVSYS.DBA_DV_CODE 1

- DVSYS.DBA_DV_REALM 1

- DVSYS.DBA_DV_REALM_AUTH 1

- DVSYS.DBA_DV_REALM_OBJECT 1

- 紛失したパスワードの回復 1 、 2

- RECOVERY_CATALOG_OWNERロール 1

- リサイクルビン, 管理のガイドライン 1

- RECYCLEBIN初期化パラメータ

- Oracle Database Vaultでのデフォルト設定 1

- セキュリティに関する考慮事項 1

- Oracle Database Vaultの登録 1

- Oracle Database Vaultの再インストール 1

- REMOTE_LOGIN_PASSWORDFILE初期化パラメータ 1

- レポート

- 概要 1

- 「機密オブジェクトへのアクセス」レポート 1

- 「DBAロールを持つアカウント」レポート 1

- 「SYSDBA/SYSOPER権限を持つアカウント」レポート 1

- ALTER SYSTEMまたはALTER SESSIONレポート 1

- 「データベース・アカウントのANYシステム権限」レポート 1

- 監査 1

- 「AUDIT権限」レポート 1

- BECOME USERレポート 1

- カテゴリ 1

- 「コマンド・ルールの監査」レポート 1

- 「コマンド・ルール構成の問題」レポート 1

- コア・データベース監査レポート 1

- 「コアDatabase Vault監査証跡」レポート 1

- 「データベース・アカウントのデフォルト・パスワード」レポート 1

- 「データベース・アカウントのステータス」レポート 1

- 「カタログ・ロールを持つデータベース・アカウント」レポート 1

- 「データベース・アカウントごとの直接および間接システム権限」レポート 1

- 「直接オブジェクト権限」レポート 1

- 「データベース・アカウントごとの直接システム権限」レポート 1

- Enterprise Manager Cloud Control 1

- 「強力なSYSパッケージに対するEXECUTE権限」レポート 1

- 「ファクタの監査」レポート 1

- 「ファクタ構成の問題」レポート 1

- アイデンティティのないファクタ 1

- 一般的なセキュリティ 1

- 「データベース・アカウントごとの階層システム権限」レポート 1

- 「アイデンティティ構成の問題」レポート 1

- 「Javaポリシーの付与」レポート 1

- 「Label Security統合の監査」レポート 1

- 「所有者でないオブジェクトのトリガー」レポート 1

- 「PUBLICでのオブジェクト・アクセス」レポート 1

- 「PUBLIC以外でのオブジェクト・アクセス」レポート 1

- 「オブジェクトの依存性」レポート 1

- 「動的SQLに依存するオブジェクト」レポート 1

- 「OSディレクトリ・オブジェクト」レポート 1

- OSセキュリティ脆弱性に関する権限 1

- 「パスワード履歴へのアクセス」レポート 1

- 実行の権限 1

- 権限管理 1

- 「権限受領者、所有者、権限ごとの権限の配布」レポート 1

- 「権限受領者、所有者ごとの権限の配布」レポート 1

- 「権限受領者ごとの権限の配布」レポート 1

- 「SYS PL/SQLプロシージャに対するPUBLIC EXECUTE権限」レポート 1

- 「レルムの監査」レポート 1

- 「レルム認可構成の問題」レポート 1

- 「リソース・プロファイル」レポート 1

- 「指定されたロールを持つロールとアカウント」レポート 1

- 「ルール・セット構成の問題」レポート 1

- 実行 1

- 「セキュア・アプリケーション構成の問題」レポート 1

- 「セキュア・アプリケーション・ロールの監査」レポート 1

- 「セキュリティ・ポリシー除外」レポート 1

- セキュリティ関連のデータベース・パラメータ 1

- セキュリティ脆弱性 1

- 「権限ごとのシステム権限」レポート 1

- 「システム・リソース制限」レポート 1

- 「表領域割当て制限」レポート 1

- アンラップされたPL/SQLパッケージ本体レポート 1

- 「ユーザーまたはパスワード表」レポート 1

- 「WITH ADMIN権限の付与」レポート 1

- WITH GRANT権限レポート 1

- 「リソース・プロファイル」レポート 1

- リソース

- レポート

- 「リソース・プロファイル」レポート 1

- 「システム・リソース制限」レポート 1

- REVOKE文

- 監視 1

- ロール

- 権限受領者としてレルムに追加 1

- カタログベース 1

- Database Vaultのデフォルト・ロール 1

- 権限分析 1

- 権限、DBMS_MACUTL.USER_HAS_ROLE_VARCHARファンクションによるチェック 1

- ロールベースのシステム権限 1

- 不完全なルール・セットでのロール有効化 1

- 「指定されたロールを持つロールとアカウント」レポート 1

- ルート・アクセス

- Database Vaultでの使用のガイドライン 1

- 管理のガイドライン 1

- ルール

- 概要 1

- 作成 1

- 名前の作成 1

- データ・ディクショナリ・ビュー 1

- デフォルト 1

- 削除 1

- ルール・セットからの削除 1

- 既存ルール, ルール・セットへの追加 1

- ネーミング規則 1

- ルール・セット内でのネスト 1

- ルール・セットからの削除 1

- レポート 1

- トラブルシューティング 1

- ビュー

- DVSYS.DBA_DV_RULE 1

- DVSYS.DBA_DV_RULE_SET_RULE 1

- 「ルール・セット構成の問題」レポート 1

- ルール・セット

- 概要 1

- 既存ルールの追加 1

- 監査オプション 1

- コマンド・ルール

- 無効化 1

- 選択 1

- 併用 1

- 作成

- ルール 1

- 名前の作成 1

- データ・ディクショナリ・ビュー 1

- DBMS_MACUTLの定数, 例 1

- デフォルト・ルール 1

- デフォルトのルール・セット 1

- 削除

- ルール 1

- 無効化

- ファクタ割当て 1

- レルム認可 1

- ルールの評価 1

- 評価オプション 1

- イベント・ハンドラ 1

- イベントの起動, DVSYS.DV_SYSEVENTによる検出 1

- ファクタ, 選択 1

- 失敗コード 1

- 失敗メッセージ 1

- ファンクション

- DBMS_MACADM (構成) 1

- DBMS_MACUTL (ユーティリティ) 1

- DBMS_MACUTLの定数(フィールド) 1

- ルールセット用のPL/SQLファンクション 1

- ガイドライン 1

- ルール・セットの動作 1

- 不完全 1

- ネーミング規則 1

- ネストされたルール 1

- パフォーマンスへの影響 1

- プロシージャ

- DBMS_MACADM (構成) 1

- プロセス・フロー 1

- ポリシーの他のデータベースへの伝播 1

- オブジェクトへの参照の削除 1

- レポート 1

- 1人のユーザーが除外されるルール 1

- 静的評価 1

- トラブルシューティング 1 、 2

- ビュー

- DVSYS.DBA_DV_RULE 1

- DVSYS.DBA_DV_RULE_SET 1

- DVSYS.DBA_DV_RULE_SET_RULE 1

- ルール・セット

- 監査イベント, カスタム 1

S

- SCHEDULER_ADMINロール

- Oracle Database Vaultインストールの影響 1

- データベース・ジョブのスケジュール

- CREATE EXTERNAL JOB権限のセキュリティの考慮事項 1

- ジョブのスケジュール

- 「Oracle Scheduler」を参照

- スキーマ

- DVF 1

- DVSYS 1

- 「セキュア・アプリケーション構成の問題」レポート 1

- セキュア・アプリケーション・ロール 1

- 「セキュア・アプリケーション・ロールの監査」レポート 1

- セキュア・アプリケーション・ロール

- 監査イベント, カスタム 1

- 作成 1

- データ・ディクショナリ・ビュー 1

- DBMS_MACSEC_ROLES.SET_ROLEファンクション 1

- 削除 1

- 機能 1

- ファンクション

- DBMS_MACADM (構成) 1

- DBMS_MACSEC_ROLES (構成) 1

- DBMS_MACSEC_ROLESパッケージ 1

- DBMS_MACUTL (ユーティリティ) 1

- DBMS_MACUTLの定数(フィールド) 1

- 管理のガイドライン 1

- 変更 1

- パフォーマンスへの影響 1

- プロシージャ

- DBMS_MACADM (構成) 1

- プロシージャおよびファンクション

- DBMS_MACUTL (ユーティリティ) 1

- ポリシーの他のデータベースへの伝播 1

- レポート

- 「ルール・セット構成の問題」レポート 1

- トラブルシューティング 1

- 監査レポートのトラブルシューティング 1

- チュートリアル 1

- ビュー

- DVSYS.DBA_DV_ROLE 1

- セキュリティ攻撃

- DoS攻撃

- システム・リソース制限の確認 1

- サービス拒否攻撃

- 表領域割当ての確認 1

- 監査証跡の削除 1

- セキュリティ違反の監視 1

- Oracle Database Vaultで権限ユーザー・アカウントの侵害に対処 1

- レポート

- 「AUDIT権限」レポート 1

- 「動的SQLに依存するオブジェクト」レポート 1

- 「権限受領者、所有者ごとの権限の配布」レポート 1

- アンラップされたPL/SQLパッケージ本体レポート 1

- SQLインジェクション攻撃 1

- 追跡

- ファクタ監査 1

- ルール・セット監査 1

- セキュリティ・ポリシー, Oracle Database Vaultの対応 1

- 「セキュリティ・ポリシー除外」レポート 1

- 「セキュリティ関連のデータベース・パラメータ」レポート 1

- セキュリティ違反

- 監視の試行 1

- セキュリティ脆弱性

- Database Vaultの対応 1

- オペレーティング・システム 1

- レポート

- 「セキュリティ関連のデータベース・パラメータ」レポート 1

- オペレーティング・システムのルート・ディレクトリ 1

- SELECT_CATALOG_ROLEロール 1

- 機密オブジェクト・レポート 1

- 職務分離の概念

- 概要 1

- コマンド・ルール 1

- データベース・アカウント 1

- データベース・アカウント, 推奨 1

- データベース・ロール 1

- Database Vaultアカウント・マネージャ・ロール 1

- タスクの文書化 1

- マトリクス例 1

- Oracle Database Vaultの対応 1

- レルム 1

- 権限の制限 1

- ロール 1

- Oracle Database Vault環境でのタスク 1

- セッション

- 監査イベント, カスタム 1

- DBMS_MACUTLフィールド 1

- DVF.F$SESSION_USERによるセッション・ユーザーの確認 1

- セッションに基づくデータの制限 1

- ファンクションを使用した情報の取得 1

- SQL92_SECURITY初期化パラメータ 1

- SQLインジェクション攻撃, 「動的SQLに依存するオブジェクト」レポートによる検出 1

- SQL文

- 保護するデフォルトのコマンド・ルール 1

- SQLテキスト, DVSYS.DV_SQL_TEXTによる検出 1

- サブファクタ

- 「ファクタ」下の「子ファクタ」を参照

- SYS_CONTEXT関数

- 権限分析に使用するBoolean式 1

- SYS.DV$CONFIGURATION_AUDITビュー 1

- SYS.DV$ENFORCEMENT_AUDITビュー 1

- SYSアカウント

- 権限分析 1

- SYSDBAアクセス

- 管理のガイドライン 1

- SYSDBA権限

- 制限, 重要性 1

- SYSOPERアクセス

- 管理のガイドライン 1

- システム機能

- 「無効」ルール・セットによる無効化 1

- 「有効」ルール・セットによる有効化 1

- システム権限

- DBMS_MACUTL.USER_HAS_SYSTEM_PRIVILEGEファンクションによるチェック 1

- レポート

- 「権限ごとのシステム権限」レポート 1

- 「権限ごとのシステム権限」レポート 1

- 「システム・リソース制限」レポート 1

- システム・ルート・アクセス, 管理のガイドライン 1

- SYSTEMスキーマ

- アプリケーション表 1

- レルムの保護 1

- SYSTEMユーザー・アカウント

- Database Vaultでの使用のガイドライン 1

- SYSユーザー・アカウント

- レルム認可への追加 1

T

- 表領域割当て 1

- 「表領域割当て制限」レポート 1

- 時間データ

- DBMS_MACUTLファンクション 1

- トレース・ファイル

- 概要 1

- トレース・ファイル, Oracle Database Vault

- 概要 1

- トレース可能なアクティビティ 1

- ADRCIユーティリティ 1

- トレース・ファイルのディレクトリの場所 1

- すべてのセッションに対する無効化 1

- 現在のセッションに対する無効化 1

- すべてのセッションに対する有効化 1

- 現在のセッションに対する有効化 1

- 例

- レルム違反の最高レベル 1

- 高レベルの権限 1

- 低レベルのレルム違反 1

- トレース・ファイル・ディレクトリの確認 1

- トレース・イベントのレベル 1

- パフォーマンスへの影響 1

- 問合せ

- ADRCIユーティリティ 1

- Linuxのgrepコマンド 1

- 透過的データ暗号化, Oracle Database Vaultとの使用 1

- トランスポータブル表領域

- Database VaultでのOracle Data Pump操作の認可 1

- DBMS_MACADM.AUTHORIZE_TTS_USERプロシージャ 1

- DBMS_MACADM.UNAUTHORIZE_TTS_USERプロシージャ 1

- DVSYS.DBA_DV_TTS_AUTH view 1

- トリガー

- オブジェクト所有者とは異なるアカウント 1

- レポート, 「所有者でないオブジェクトのトリガー」レポート 1

- トラブルシューティング

- アクセス・セキュリティ・セッション 1

- 監査レポート, 使用 1

- ファクタ 1

- 一般的な診断のヒント 1

- ロックアウトされたアカウント 1

- パスワード, 忘れた場合 1

- レルム 1

- ルール 1

- ルール・セット 1

- セキュア・アプリケーション・ロール 1

- 信頼できるユーザー

- 制限する必要のあるアカウントおよびロール 1

- Oracle Database Vaultのデフォルト 1

- 信頼レベル

- 概要 1

- DVSYS.GET_TRUST_LEVEL_FOR_IDENTITYによるアイデンティティの判断 1

- DVSYS.GET_TRUST_LEVELによる判断 1

- ファクタ・アイデンティティ 1

- ファクタ 1

- リクエストされたファクタおよびアイデンティティ 1

- アイデンティティ 1

- 現行セッションのアイデンティティ 1

- チュートリアル

- アクセス, セキュア・アプリケーション・ロールによる付与 1

- 非定型ツールのアクセス, 阻止 1

- 二人制整合性(TPI)の構成 1

- Virtual Private DatabaseおよびOracle Label SecurityでのDatabase Vaultファクタ 1

- ルール・セットでの電子メール・アラート 1

- ファクタ, アイデンティティのマッピング 1

- Oracle Database VaultとOracle Label Securityの統合 1

- 権限分析 1

- ANY権限の権限分析 1

- セッション・データに基づくアクセスの制限 1

- コマンド・ルールによるユーザー・アクティビティの制限 1

- スキーマ, レルムによる保護 1

- 二人制ルール・セキュリティ

- 「二人制整合性(TPI)」を参照

- 二人制整合性(TPI)

- 概要 1

- ルール・セットでの構成 1

U

- 統合監査証跡

- Database Vaultとの連携 1

- レルムによる保護 1

- アンラップされたPL/SQLパッケージ本体レポート 1

- USER_HISTORY$表 1

- 「ユーザーまたはパスワード表」レポート 1

- ユーザー名

- レポート, 「ユーザーまたはパスワード表」レポート 1

- ユーザー

- エンタープライズのアイデンティティ, DVF.F$PROXY_ENTERPRISE_IDENTITYによる確認 1

- エンタープライズ全体のアイデンティティ, DVF.F$ENTERPRISE_IDENTITYによる確認 1

- DVF.F$SESSION_USERによるセッション・ユーザーの確認 1

- ログイン・ユーザー名, DVSYS.DV_LOGIN_USERによる検出 1

- ファクタ・アイデンティティによるアクセスの制限 1

- ユーティリティ・ファンクション

- 「.DBMS_MACUTLパッケージ」を参照

- UTL_FILEオブジェクト 1

- UTL_FILEパッケージ, 管理のガイドライン 1

V

- ビュー

- DVSYS.DBA_DV_CODE 1

- DVSYS.DBA_DV_COMMAND_RULE 1

- DVSYS.DBA_DV_DATAPUMP_AUTH 1

- DVSYS.DBA_DV_DDL_AUTH 1

- DVSYS.DBA_DV_DICTIONARY_ACCTS 1

- DVSYS.DBA_DV_FACTOR 1

- DVSYS.DBA_DV_FACTOR_TYPE 1

- DVSYS.DBA_DV_IDENTITY 1

- DVSYS.DBA_DV_IDENTITY_MAP 1

- DVSYS.DBA_DV_JOB_AUTH 1

- DVSYS.DBA_DV_ORADEBUG 1

- DVSYS.DBA_DV_PATCH_ADMIN_AUDIT 1

- DVSYS.DBA_DV_POLICY_LABEL 1

- DVSYS.DBA_DV_PROXY_AUTH 1

- DVSYS.DBA_DV_PUB_PRIVS 1

- DVSYS.DBA_DV_REALM 1

- DVSYS.DBA_DV_REALM_AUTH 1

- DVSYS.DBA_DV_REALM_OBJECT 1

- DVSYS.DBA_DV_ROLE 1

- DVSYS.DBA_DV_RULE_SET 1

- DVSYS.DBA_DV_RULE_SET_RULE 1

- DVSYS.DBA_DV_STATUS 1

- DVSYS.DBA_DV_TTS_AUTH 1

- DVSYS.DBA_DV_USER_PRIVS 1

- DVSYS.DBA_DV_USER_PRIVS_ALL 1

- DVSYS.DV$CONFIGURATION_AUDIT 1

- DVSYS.DV$ENFORCEMENT_AUDIT 1

- DVSYS.DV$REALM 1

- SYS.DV$CONFIGURATION_AUDIT 1

- SYS.DV$ENFORCEMENT_AUDIT 1

- VPD

- 「Oracle Virtual Private Database (VPD)」を参照

W

- 「WITH ADMIN権限の付与」レポート 1

- WITH ADMINステータス 1 、 2

- WITH GRANT句 1

- WITH GRANT権限レポート 1

X

- XStream

- Database Vaultロールの使用 1

- Oracle Database Vault環境 1

Oracleの法律上の注意点

コピーライト

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およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network 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)を参照してください。