この章の内容は次のとおりです。
Oracle Databaseをインストールしたら、Oracle Database Vaultを登録する(つまり、有効にする)必要があります。Oracle Databaseには、デフォルトでDatabase Vaultが付属していますが、使用するには登録する必要があります。登録プロセスの一部として、Database Vault管理者アカウント作成します。登録プロセスで、Database VaultのDVSYS
スキーマとDVF
スキーマも作成されます。この手順は、単一インスタンスおよびOracle RACインストールの両方に適用されます。Database Vaultがすでに有効かどうかを確認するには、「Oracle Database Vaultが有効か無効かの確認」を参照してください。
Oracle Database Vaultを登録するコンピュータでOracle Enterprise Managerデータベース・コンソールが使用可能になっていることを確認します。
データベース・コンソールのステータスを確認するには、emctl status dbconsole
コマンドを実行します。次に例を示します。
./emctl status dbconsole
データベース、Database Controlコンソール・プロセスおよびリスナーを停止します。
UNIX: SYSOPER
権限を持つユーザーSYS
として接続し、データベースを停止します。次に、コマンドラインからDatabase Controlプロセスとリスナーを停止します。
次に例を示します。
CONNECT sys as sysoper Enter password: password SQL> SHUTDOWN IMMEDIATE SQL> EXIT $ emctl stop dbconsole $ lsnrctl stop [listener_name]
Oracle RACインスタンスの場合は、各データベース・インスタンスを次のように停止します。
$ srvctl stop database -d db_name
Windowsの場合: [コントロール パネル] のサービス・ツールからデータベース、Database Controlコンソール・プロセスおよびリスナーを停止します。Oracle Databaseサービスの名前はOracle
で始まります。
Oracle Database Vaultを次のように有効にします。
UNIXの場合: 次のコマンドを実行します。make
コマンドでは、Oracle Database Vault(dv_on
)とOracle Label Security(lbac_on
)の両方が有効になります。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。
$ cd $ORACLE_HOME/rdbms/lib $ make -f ins_rdbms.mk dv_on lbac_on ioracle
Oracle ExadataストレージにRDSプロトコルを使用する場合は、次のコマンドを使用してDatabase VaultおよびLabel Securityを有効にします。
$ cd $ORACLE_HOME/rdbms/lib $ make –f ins_rdbms.mk dv_on lbac_on ipc_rds ioracle
Windows: ORACLE_BASE\ORACLE_HOME
\bin
ディレクトリで、oradvll.dll.dbl
ファイルの名前をoradvll.dll
に変更します。Oracle Label Securityの実行可能ファイルの名前がoralbacll.dll
になっている(oralbacll.dll.dblや別のバックアップ名ではない)ことを確認します。Database Vaultを使用するには、Oracle Label Securityを有効にする必要があります。
データベースとリスナーを再起動します。(まだDatabase Controlコンソール・プロセスは再起動しないでください。)
UNIXの場合: SYSOPER
権限を持つユーザーSYS
としてSQL*Plusにログインし、データベースを再起動します。次に、コマンドラインからリスナーを再起動します。
次に例を示します。
sqlplus sys as sysoper Enter password: password SQL> STARTUP SQL> EXIT $ lsnrctl start [listener_name]
Oracle RACインストールの場合は、次のように各データベース・インスタンスを再起動します。
$ srvctl start database -d db_name
Windowsの場合: [コントロール パネル] のサービス・ツールからデータベースとリスナーを停止します。Oracle Databaseサービスの名前はOracle
で始まります。
Database Configuration Assistantを起動します。
UNIX: 端末ウィンドウで次のコマンドを入力します。
dbca
デフォルトでは、dbca
は$ORACLE_HOME/bin
ディレクトリ内にあります。
Windows: 「スタート」メニューから「すべてのプログラム」をクリックします。次に、「Oracle - ORACLE_HOME」、「Configuration and Migration Tools」、「Database Configuration Assistant」をクリックします。
あるいは、コマンド・プロンプトでDatabase Configuration Assistantを起動することもできます。
dbca
UNIXの場合と同様に、通常、dbca
はORACLE_BASE
\
ORACLE_HOME
\bin
ディレクトリ内にあります。
「ようこそ」ページで「次へ」をクリックします。
「操作」ページが表示されます。
「データベース・オプションの構成」を選択し、「次へ」をクリックします。
「DATABASE」ページが表示されます。
リストから、Oracle Databaseをインストールしたデータベースを選択し、「次へ」をクリックします。
「データベース・コンテンツ」ページが表示されます。
次のアクションのいずれかを実行します。
Oracle Label Securityがすでに有効な場合: 「Oracle Database Vault」」オプションを選択し、「次へ」をクリックします。
Oracle Label Securityが有効になっていない場合: 「Oracle Label Security」オプションを選択し、「Oracle Database Vault」オプションを選択できるようにします。「Oracle Database Vault」オプションも選択し、「次へ」をクリックします。
「Oracle Database Vault資格証明」ページが表示されます。
Database Vault所有者アカウントの名前とパスワード(たとえば、DBVOWNER
)を指定し、Database Vaultアカウント・マネージャ・アカウントの名前とパスワード(たとえば、DBVACCTMGR
)を指定します。
これらのユーザー・アカウントに、DV_OWNER
、DV_ACCTMGR
などの、Database Vaultロールの名前を入力しないでください。これらの名前は予約語です。Database Vaultロールの詳細は、「Oracle Database Vaultロール」を参照してください。
『Oracle Databaseセキュリティ・ガイド』のパスワードのガイドラインに従って、安全なパスワードを入力します。Oracle Database Vaultには追加的なパスワード要件があり、誤ったパスワードを作成しようとすると、これらの要件が表示されます。
「次へ」をクリックします。
「接続モード」ページが表示されます。
(このデータベースを作成したときに選択した内容に応じて)「専用サーバー・モード」または「共有サーバー・モード」のいずれかを選択して「終了」をクリックし、確認プロンプトで「OK」をクリックします。
Database Configuration AssistantによってOracle Database Vaultが登録され、データベース・インスタンスが再起動されます。
Database Configuration Assistantを終了します。
Database Controlコンソールプロセスを再起動します。
UNIXの場合: 次のコマンドを実行します。
$ emctl start dbconsole
Windowsの場合: [コントロール パネル] のサービス・ツールからDatabase Controlコンソール・プロセス(例: データベースの名前がorcl
の場合はOracleDBConsoleorcl
)を再起動します。
Oracle Database VaultをOracle Databaseに登録後、Oracle Database Vault Administratorを起動できます。詳細は、「Oracle Database Vaultの起動」を参照してください。
この項では、Oracle Database Vault Administratorの起動方法について説明します。この項の内容は次のとおりです。
この項の内容は次のとおりです。
Database Controlから、Oracle Database Vaultページを使用してDatabase Vault対応のデータベースを監視し、Database Vaultレポートを表示できます。
ただし、Database Controlからポリシーを作成したり、他のDatabase Vault Administrator関連アクションを実行することはできません。これらのタスクを実行する場合は、「Oracle Database Vault Administratorの起動」で説明されているDatabase Vault Administratorを使用します。Database Vaultポリシーを他のDatabase Vault対応のデータベースに伝播する場合は、「Grid ControlからのOracle Database Vaultページへのアクセス」を参照してください。
Database ControlからOracle Database Vaultページにアクセスするには、次のようにします。
必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。
Database Controlを起動します。
次に例を示します。
https://myserver.example.com:1158/em
Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
次の情報を使用してDatabase Controlにログインします。
ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。
Database Vaultポリシーの作成および伝播: DV_OWNER
またはDV_ADMIN
Database Vaultアラートおよびレポートの表示: DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR
Oracle Database Vaultロールは、Database Controlを使用するための他の追加権限(SELECT ANY DICTIONARY
など)は必要ありません。
これらのロールの詳細は、「Oracle Database Vaultロールの概要」を参照してください。
パスワード: パスワードを入力します。
接続モード: リストから「標準」を選択します。
「優先資格証明として保存」チェック・ボックス: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。
ホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。
「セキュリティ」で「Database Vault」を選択します。
Oracle Database Vaultホームページが表示されます。
Grid Controlから、Oracle Database Vaultページを使用してDatabase VaultポリシーをDatabase Vaultで保護されている他のデータベースに伝播し、Database Vaultで保護されているデータベースを集中コンソールから管理および監視し、アラートを自動化し、Database Vaultレポートを表示できます。
ただし、Grid Controlからポリシーを作成したり、他のDatabase Vault Administrator関連アクションを実行することはできません。これらのタスクを実行する場合は、「Oracle Database Vault Administratorの起動」で説明されているDatabase Vault Administratorを使用します。
Grid ControlからOracle Database Vaultページにアクセスするには、次のようにします。
Database Vaultとともに使用するGrid Controlターゲット・データベースが構成されていることを確認してください。
ターゲット・データベースの構成の詳細は、Oracle Enterprise Managerオンライン・ヘルプおよび『Oracle Enterprise Managerアドバンスト構成』を参照してください。
必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。
Grid Controlを起動します。
次に例を示します。
https://myserver.example.com:1158/em
Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
ユーザーSYSMAN
でOracle Enterprise Managerにログインし、Normal
で接続します。
Oracle Enterprise Manager Databaseホームページ(Databaseホームページ)で「ターゲット」サブページを選択します。
「データベース」サブページを選択します。
「データベース」ページで、接続先のOracle Database Vaultで保護されているデータベースのリンクを選択します。
データベース・インスタンスのホームページが表示されます。
ホームページで、「サーバー」をクリックして「サーバー」サブページを表示します。
「セキュリティ」で「Database Vault」を選択します。
「データベース・ログイン」ページが表示されます。
次の情報を入力します。
ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。
Database Vaultポリシーの作成および伝播: DV_OWNER
またはDV_ADMIN
Database Vaultアラートおよびレポートの表示: DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR
Oracle Database Vaultロールは、Grid Controlを使用するための他の追加権限(SELECT ANY DICTIONARY
など)は必要ありません。
詳細は、「Oracle Database Vaultロールの概要」を参照してください。
パスワード: パスワードを入力します。
接続モード: リストから「標準」を選択します。
「優先資格証明として保存」チェック・ボックス: 次回このページが表示されるときに、これらの資格証明が自動入力されているようにするには、このチェック・ボックスを選択します。
「ログイン」ボタンをクリックします。
Database Vaultホームページが表示されます。
Database Vault AdministratorへはOracle Enterprise Manager Database Controlからアクセスできます。
手順1: DV_OWNERユーザーへの適切な権限の付与
次に例を示します。
https://myserver.example.com:1158/em
Oracle Enterprise Managerへのログインの詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。
ユーザーSYSMAN
またはSYSTEM
としてDatabase Controlにログインします。
データベースのホームページが表示されます。
ウィンドウの右上で、「設定」ボタンをクリックします。
「管理者」リンクを選択します。
「管理者」ウィンドウで、「作成」ボタンをクリックします。
「管理者の作成」ウィンドウで、次の手順を実行します。
ユーザー名: DV_OWNER
ロールを付与されているユーザーの名前を入力します。ユーザーに付与されているロールを検索するには、USER_ROLE_PRIVS
データ・ディクショナリ・ビューを問い合せることができます。
電子メール・アドレス: オプションで、このユーザーの電子メール・アドレスを入力します(必須ではありません)。
管理権限: 「すべてのターゲットの表示」を選択します。
SELECT_CATALOG_ROLEの付与: このチェック・ボックスの選択を解除します。
「確認」をクリックします。
「終了」をクリックします。
手順2: Database ControlからDatabase Vault Administratorへのアクセス(DV_OWNERユーザーとして)
必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。
「手順1: DV_OWNERユーザーへの適切な権限の付与」で構成したDV_OWNER
ユーザーとして、Database Controlにログインします。
次のメッセージが表示されます。
You have been logged in to a Database with Database Vault installed on it. As Database Vault enforces separation of duty you may not be able to use all the areas in EM. Please click the link below which will forward you to the area which you have access to.
「Database Vault」リンクをクリックします。
Database Vaultホームページが表示されます。
「管理」タブをクリックします。
管理オプション(「レルム」など)を選択します。
Database Vault AdministratorへのURLの入力を求められたら、次の構文で入力します。
https://host_name:port/dva
host_name
: Oracle Database Vaultをインストールしたサーバーおよびドメインです。
port
: Oracle Enterprise ManagerコンソールのHTTPSポートの番号です。
次に例を示します。
https://myserver:1158/dva
ポート番号が不明な場合は、$ORACLE_HOME
/
host_sid
/sysman/config/emd.properties
ファイルを開いてREPOSITORY_URL
を検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Database Controlと同じです。
「保存」をクリックします。
次回Database Vaultポリシー・オプションを選択するときに、Database Vault Administratorが起動します。
Oracle Enterprise Manager Database ControlまたはGrid Controlを使用していない場合、あるいは別のコンピュータからOracle Database Vaultに接続する場合は、次の手順に従ってOracle Database Vault Administratorを起動します。
必要に応じて、Oracle Database Vaultを登録します。
Oracle Database Vaultをインストールした直後に、Oracle Database Vaultをデータベースに登録する必要があります。詳細は、「Oracle Database Vaultの登録(有効化)」を参照してください。
ブラウザに、次のURLを入力します。
https://host_name:port/dva
ここでは、次のようになります。
host_name
: Oracle Database Vaultをインストールしたサーバーです。
port
: Oracle Enterprise ManagerコンソールのHTTPSポートの番号です。
次に例を示します。
https://myserver:1158/dva
ポート番号が不明な場合は、$ORACLE_HOME
/
host_sid
/sysman/config/emd.properties
ファイルを開いてREPOSITORY_URL
を検索します。ほとんどの場合、ホスト名およびポート番号はOracle Enterprise Database Controlと同じです。
Oracle Database Vault Administratorを起動できない場合は、Oracleデータベース・コンソールのプロセスが稼働していることを確認します。
UNIXの場合: $ORACLE_HOME/bin
ディレクトリに移動して次のコマンドを実行します。
./emctl status dbconsole
dbconsole
プロセスを起動する必要がある場合は、次のコマンドを実行してください。
./emctl start dbconsole
Windows: 「管理ツール」で「サービス」ユーティリティを選択した後、「OracleDBConsolesid」サービスを右クリックします。必要に応じて、メニューから「開始」を選択し、データベース・コンソールを起動します。
$ORACLE_HOME/sysman/log
インストール中に作成したOracle Database Vault所有者アカウントを使用してログインします。
ログインするには、完全な接続文字列を入力する必要があります。これにより、Oracle Database Vaultで複数のOracle Databaseインスタンスを管理できます。
デフォルトでは、SYS
、SYSTEM
またはその他の管理アカウントを使用してOracle Database Vault Administratorにログインすることはできません。DV_ADMIN
またはDV_OWNER
ロールがある場合はログインできます。
次の値を入力します。
ユーザー名: 適切なOracle Database Vaultロールを付与されているユーザーの名前を入力します。
Database Vaultポリシーの作成および管理: DV_OWNER
またはDV_ADMIN
Database Vaultレポートの表示: DV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ユーザー・アカウントおよびロールの作成および管理: DV_ACCTMGR
詳細は、「Oracle Database Vaultロールの概要」を参照してください。
パスワード: パスワードを入力します。
ホスト: 目的のOracle Database Vaultインストールのコンピュータのホスト名を入力します。次の書式を使用します。
server.domain
次に例を示します。
myserver-pc.us.example.com
ポート: Oracle Databaseのポート番号を入力します。デフォルトのポート番号は1521です。ポート番号が不明な場合は、tnsnames.ora
ファイルをチェックしてください。
次に例を示します。
1521
SID/サービス: 「SID」または「サービス」を選択します。これらの値は、tnsnames.ora
ファイルで確認できます。デフォルトでは、このファイルは$ORACLE_HOME/network/admin
にあります。
SID: Oracle Databaseインスタンスの名前を入力します。次に例を示します。
orcl
サービス: データベース・インスタンスのサービス名を次の書式で入力します。
service_name.domain
次に例を示します。
orcl.us.example.com
図3-1は、ログインすると表示されるOracle Database Vault Administratorのホームページを示しています。
図3-1 Oracle Database Vault Administratorのホームページ
この項の内容は次のとおりです。
このチュートリアルでは、HR
サンプル・データベース・スキーマ用の簡単なセキュリティ構成を作成します。HR
スキーマのEMPLOYEES
表には、管理権限を使用したアクセスも含め、企業内のほとんどの社員に公開しない給与などの情報が含まれています。これを実現するには、HR
スキーマをデータベース内の保護ゾーン(Oracle Database Vaultではレルムと呼ぶ)のセキュア・オブジェクトに追加します。そして、このレルムに制限付きの認可を付与します。その後、レルムをテストして適切に保護されていることを確認します。最後に、レポートを実行し、レルムをテストする際に試行するような疑わしいアクティビティの監査証跡をOracle Database Vaultがどのように作成するかを確認します。
このチュートリアルを使用する前に、HR
サンプル・スキーマがインストールされていることを確認してください。サンプル・スキーマのインストールに関する情報は、『Oracle Databaseサンプル・スキーマ』を参照してください。
このチュートリアルでは、SYSTEM
ユーザーは、新しいユーザー・アカウントSEBASTIAN
にANY
権限を付与します。これを実行するには、SYSTEM
をOracleデータ・ディクショナリ・レルムに含める必要があります。
SYSTEM
をOracleデータ・ディクショナリ・レルムに含めるには、次のようにします。
DV_OWNER
またはDV_ADMIN
ロールを付与されているユーザーとしてOracle Database Vault Administratorにログインします。
ログイン方法は、「Oracle Database Vaultの起動」で説明されています。
「管理」ページの「Database Vault機能管理」で、「レルム」をクリックします。
「レルム」ページで、リストから「Oracleデータ・ディクショナリ」を選択し、「編集」をクリックします。
「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」で、「作成」をクリックします。
「レルム認可の作成」ページで、「権限受領者」リストからSYSTEM [USER]を選択します。
「認可タイプ」に、「所有者」を選択します。
「認可ルール・セット」を「<未選択>」のままにします。
「OK」をクリックします。
「レルムの編集: Oracleデータ・ディクショナリ」ページの「レルム認可」に、SYSTEM
が所有者として表示されます。
「OK」をクリックして「レルム」ページに戻ります。
「管理」ページに戻るには、「レルム」のデータベース・インスタンスinstance_nameリンクをクリックします。
ユーザーSYSTEM
としてSQL*Plusにログインし、HR
スキーマにアクセスします。
sqlplus system
Enter password: password
SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM < 10;
次のような出力が表示されます。
FIRST_NAME LAST_NAME SALARY -------------------- ------------------------- ---------- Donald OConnell 2600 Douglas Grant 2600 Jennifer Whalen 4400 Michael Hartstein 13000 Pat Fay 6000 Susan Mavris 6500 Hermann Baer 10000 Shelley Higgins 12000 William Gietz 8300 9 rows selected.
HR
スキーマがロックされて無効になっている場合、DV_ACCTMGR
ユーザーとしてSQL*Plusにログインし、ロックを解除してアカウントを有効にします。次に例を示します。
sqlplus amalcolm_dvacctmgr Enter password: password ALTER USER HR ACCOUNT UNLOCK IDENTIFIED BY password
password
をセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
この例からわかるように、SYSTEM
にはHR
スキーマのEMPLOYEES
表の給与情報へのアクセス権があります。SYSTEM
には、SELECT ANY TABLE
システム権限を含むDBA
ロールが自動的に付与されるためです。
レルムでは、1つ以上のスキーマ、個々のスキーマ・オブジェクトおよびデータベース・ロールを保護できます。レルムを作成したら、レルム内のスキーマやスキーマ・オブジェクトに適用するセキュリティ制限を作成します。まず、HR
スキーマにレルムを作成します。
Oracle Database Vault Administratorの「レルム」ページで、「作成」をクリックします。
「レルムの作成」ページの「一般」で、「名前」にHR Realm
と入力します。
「ステータス」に「有効」が選択されていて、そのレルムが使用可能になっていることを確認します。
「監査オプション」で、「失敗時に監査」が選択されていて、後から監査証跡を作成できることを確認します。
「OK」をクリックします。
レルムのリストにHR Realmが表示された状態でレルムのサマリー・ページが表示されます。
この手順では、HR
スキーマのEMPLOYEES
表をHRレルムのセキュア・オブジェクトに追加します。
「レルム」ページで、リストからHR Realmを選択し、「編集」をクリックします。
「レルムの編集: HR Realm」ページで、「レルム・セキュア・オブジェクト」までスクロールし、「作成」をクリックします。
「レルム・セキュア・オブジェクトの作成」ページで、次の設定を入力します。
オブジェクト所有者: リストからHRを選択します。
オブジェクト・タイプ: リストからTABLEを選択します。
オブジェクト名: EMPLOYEES
と入力します。
「OK」をクリックします。
「レルムの編集: HR Realm」ページで「OK」をクリックします。
この時点では、レルムが保護するデータベース・オブジェクトにアクセスする、またはそれらを操作するデータベース・アカウントもロールもありません。そのため、この手順でデータベース・アカウントまたはデータベース・ロールを認可し、レルム内のスキーマにアクセスできるようにします。SEBASTIAN
ユーザー・アカウントを作成します。レルムに対してこのユーザーを認可すると、SEBASTIAN
によるEMPLOYEES
表の表示や変更が可能になります。
DV_ACCTMGR
ロールを持つDatabase Vaultアカウント・マネージャとしてSQL*Plusに接続し、ユーザーSEBASTIAN
を作成します。
次に例を示します。
CONNECT amalcolm_dvacctmgr Enter password: password CREATE USER SEBASTIAN IDENTIFIED BY password;
password
をセキュアなパスワードに置き換えます。パスワードを作成するための最小限の要件は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
SYSTEM
権限として接続し、SEBASTIAN
に次の追加権限を付与します。
CONNECT SYSTEM
Enter password: password
GRANT CREATE SESSION, SELECT ANY TABLE TO SEBASTIAN;
(「手順6: レルムのテスト」でレルムをテストする際に必要なため、SQL*Plusを終了しないでください。)
この段階では、SEBASTIAN
にSELECT ANY TABLE
権限があっても、レルムによって保護されているためHR.EMPLOYEES
表から選択できません。
次に示すようにしてユーザーSEBASTIAN
を認可し、HR Realmへのアクセス権を付与します。
Database Vault Administratorの「レルム」ページで、レルムのリストからHR Realmを選択し、「編集」をクリックします。
「レルムの編集: HR Realm」ページで、「レルム認可」までスクロールし、「作成」をクリックします。
「レルム認可の作成」ページの「権限受領者」で、リストからSEBASTIAN[USER]を選択します。
リストにSEBASTIAN
が表示されない場合は、ブラウザの「更新」ボタンをクリックします。
SEBASTIAN
がHR
スキーマのEMPLOYEES
表にアクセスできる唯一のユーザーになります。
「認可タイプ」で「参加者」を選択します。
参加者の認可により、HRレルムのユーザーSEBASTIAN
は、HRレルムによって保護されるオブジェクトのアクセスの管理、操作および作成が可能になります。この場合、EMPLOYEES
表の表示を許可されているのは、HR
ユーザーおよびSEBASTIAN
のみです。
このレルムはルール・セットで制御する必要がないため、「認可ルール・セット」で「<未割当て>」を選択します。
「OK」をクリックします。
レルムをテストするには、HR
以外のユーザーとしてEMPLOYEES
表へのアクセスを試行します。通常、SYSTEM
アカウントにはHR
スキーマのすべてのオブジェクトに対するアクセス権がありますが、この場合はOracle Database Vaultを使用してEMPLOYEES
表を保護しているため、アクセス権はありません。
SQL*Plusで、SYSTEM
として接続し、EMPLOYEES
表の給与情報へのアクセスを再試行します。
sqlplus system
Enter password: password
SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
次のような出力結果が表示されます。
Error at line 1: ORA-01031: insufficient privileges
SYSTEM
にはEMPLOYEES
表の給与情報へのアクセス権はなくなります。しかし、ユーザーSEBASTIAN
には、この情報へのアクセス権があります。次のようにします。
CONNECT SEBASTIAN
Enter password: password
SELECT FIRST_NAME, LAST_NAME, SALARY FROM HR.EMPLOYEES WHERE ROWNUM <10;
次のような出力が表示されます。
FIRST_NAME LAST_NAME SALARY -------------------- ------------------------- ---------- Donald OConnell 2600 Douglas Grant 2600 Jennifer Whalen 4400 Michael Hartstein 13000 Pat Fay 6000 Susan Mavris 6500 Hermann Baer 10000 Shelley Higgins 12000 William Gietz 8300 9 rows selected.
HR Realmの失敗時の監査を有効にしたため、「手順6: レルムのテスト」で試みたように、レポートを生成してセキュリティ違反を検出できます。
Oracle Database Vault Administratorのホームページで、「Database Vaultレポート」をクリックします。
レポートを実行するには、あらかじめDV_OWNER
、DV_ADMIN
またはDV_SECANALYST
ロールのあるアカウントを使用してログインしておく必要があります。ユーザーSEBASTIAN
は、自分のレルムに影響する場合であっても、レポートを実行できないことに注意してください。これらのロールの詳細は、「Oracle Database Vaultロール」で説明しています。現在、Database Vault所有者(DV_OWNER
)アカウントとしてログインしている必要があります。
「Database Vaultレポート」ページで、「Database Vaultの監査レポート」までスクロールし、「レルムの監査」を選択します。
「レポートの実行」をクリックします。
Oracle Database Vaultにより、違反の種類(この場合は前の項目で入力したSELECT
文)、発生した時間と場所、違反を試みたユーザーのログイン・アカウント、および違反の内容などを示すレポートが生成されます。
データ・ディクショナリ・レルムからSYSTEM
アカウントを削除します。
DV_OWNER
ロールが付与されているデータベース・アカウントを使用してOracle Database Vault Administratorにログインしていることを確認します。
「管理」ページで、「レルム」を選択します。
レルムのリストから「Oracleデータ・ディクショナリ」を選択して「編集」をクリックします。
「レルム認可」でSYSTEM
を選択します。
「削除」をクリックして、確認ウィンドウで「はい」をクリックします。
HR Realmを削除します。
「レルム」ページで、レルムのリストからHR Realm
を選択します。
「削除」をクリックして、確認ウィンドウで「はい」をクリックします。
ユーザーSEBASTIAN
を削除します。
SQL*Plusで、Oracle Database Vaultアカウント・マネージャ(たとえばamalcolm_dvacctmgr
)としてログインし、次のようにSEBASTIAN
を削除します。
sqlplus amalcolm_dvacctmgr
Enter password: password
DROP USER SEBASTIAN;
必要な場合、HR
アカウントをロックし、無効にします。
ALTER USER HR ACCOUNT LOCK PASSWORD EXPIRE;