プライマリ・コンテンツに移動
Oracle® Database Real Application Security管理者および開発者ガイド
12
c
リリース1 (12.1)
B71274-08
索引
次
目次
例一覧
図一覧
表一覧
タイトルおよび著作権情報
はじめに
対象読者
ドキュメントのアクセシビリティについて
関連ドキュメント
表記規則
『Oracle Database Real Application Security管理者および開発者ガイド』のこのリリースでの変更点
Oracle Database 12
c
リリース1 (12.1.0.2)の変更点
新機能
非推奨となった機能
1
Oracle Database Real Application Securityの概要
Oracle Database Real Application Securityとは
アプリケーション・ユーザーを管理する従来のセキュリティのデメリット
Real Application Securityのメリット
Real Application Securityのアーキテクチャ
Real Application Securityで使用されるデータ・セキュリティの概念
Oracle Database Real Application Securityによるデータ・セキュリティについて
プリンシパル: ユーザーおよびロール
データベース・ユーザーとアプリケーション・ユーザーの相違点の理解
データベース・ロールとアプリケーション・ロールの相違点の理解
アプリケーション・ユーザーおよびアプリケーション・ロールへのデータベース権限の付与
アプリケーション権限
Oracle Database Real Application Securityのセキュリティ・クラス
アクセス制御エントリ(ACE)
アクセス制御リスト(ACL)
データ・セキュリティ・ポリシー
アプリケーション・セキュリティで使用されるアプリケーション・セッションの概念
設計および開発のフロー
シナリオ: 従業員情報のセキュリティ人事管理(HR)デモ
基本的なHRデモ・シナリオ: 説明とセキュリティ要件
基本のHRシナリオ: 実装の概要
Oracle Database Real Application Security環境での監査について
プラガブル・データベースのサポート
2
アプリケーション・ユーザーおよびアプリケーション・ロールの構成
アプリケーション・ユーザーの構成について
アプリケーション・ユーザー・アカウントについて
アプリケーション・ユーザー・アカウントを作成する一般的な手順
単純なアプリケーション・ユーザー・アカウントの作成
直接ログイン・アプリケーション・ユーザー・アカウントの作成について
直接ログイン・アプリケーション・ユーザー・アカウントの作成
直接ログイン・アプリケーション・ユーザー・アカウントを作成する手順
直接アプリケーション・ユーザー・アカウントのためのパスワード検証の設定
SQL*Plus PASSWORDコマンドを使用したアプリケーション・ユーザーのパスワードのリセット
アプリケーション・ユーザーの切替えの構成
アプリケーション・ユーザーの検証
アプリケーション・ロールの構成について
アプリケーション・ロールについて
標準および動的アプリケーション・ロール
標準アプリケーション・ロール
動的アプリケーション・ロール
アプリケーション・ロールの構成について
標準アプリケーション・ロールの作成
動的アプリケーション・ロールの作成
アプリケーション・ロールの検証
事前定義された標準アプリケーション・ロールおよび動的アプリケーション・ロール
アプリケーション・ユーザーおよびアプリケーション・ロールの有効日
プリンシパルへのアプリケーション権限の付与について
アプリケーション・ユーザーへのアプリケーション・ロールの付与について
新規アプリケーション・ユーザーの作成およびそのユーザーへのアプリケーション・ロールの付与
既存のアプリケーション・ユーザーへのアプリケーション・ロールの付与
別のアプリケーション・ロールへのアプリケーション・ロールの付与
アプリケーション・ロールへのデータベース・ロールの付与
3
アプリケーション・セッションの構成
アプリケーション・セッションについて
Real Application Securityでのアプリケーション・セッションについて
アプリケーション・セッションのメリット
アプリケーション・セッションの作成とメンテナンスについて
アプリケーション・セッションの作成
匿名アプリケーション・セッションの作成
従来のデータベース・セッションへのアプリケーション・セッションの連結
アプリケーション・セッションのCookieの設定
匿名アプリケーション・セッションへのアプリケーション・ユーザーの割当て
現在のアプリケーション・セッションの別のアプリケーション・ユーザーへの現在のアプリケーション・ユーザーの切替え
グローバル・コールバック・イベント・ハンドラ・プロシージャの作成について
アプリケーション・セッションのグローバル・コールバック・イベント・ハンドラの構成
アプリケーション・セッションの保存
従来のデータベース・セッションからのアプリケーション・セッションの連結解除
アプリケーション・セッションの破棄
アプリケーション・セッションの状態の操作について
ネームスペース・テンプレートを使用したネームスペースの作成について
ネームスペース・テンプレートの構成要素
ネームスペース・ビューについて
アプリケーション・セッションのネームスペース・テンプレートの作成
アプリケーション・セッションでのネームスペースの初期化
セッションが作成されたときにネームスペースを初期化する方法
セッションが連結されたときにネームスペースを初期化する方法
名前付きアプリケーション・ユーザーが匿名アプリケーション・セッションに割り当てられたときにネームスペースを初期化する方法
アプリケーション・セッションでアプリケーション・ユーザーが切り替えられたときにネームスペースを初期化する方法
明示的にネームスペースを初期化する方法
アプリケーション・セッションでのセッション属性の設定
アプリケーション・セッションでのセッション属性の取得
アプリケーション・セッションでのカスタム属性の作成
アプリケーション・セッションでのネームスペースの削除
セッションでのアプリケーション・ロールの有効化
セッションでのアプリケーション・ロールの無効化
外部ユーザーおよびロール用の管理APIについて
4
アプリケーション権限およびアクセス制御リストの構成
アプリケーション権限について
集約権限
ALL権限
セキュリティ・クラスの構成について
セキュリティ・クラスについて
セキュリティ・クラスの継承
権限の有効範囲としてのセキュリティ・クラス
DMLセキュリティ・クラス
セキュリティ・クラスの検証について
セキュリティ・クラスの操作
アクセス制御リストの構成について
ACLおよびACEについて
ACLおよびACEの作成
拒否
反転
ACEの開始日および終了日
アクセス制御リストの検証について
アクセス制御リストの更新
ACLの権限の確認について
マルチレベル認証の使用について
プリンシパル・タイプ
アクセス解決の結果
ACEの評価順序
ACL継承
拡張ACL継承
制約ACL継承
ACLのカタログ・ビューについて
セキュリティ・クラスのカタログ・ビューについて
データ・セキュリティ
データ・レルム
パラメータ使用のACL
ACLバインディング
5
データ・セキュリティの構成
データ・セキュリティについて
データ・セキュリティ・ポリシーの検証について
データ・セキュリティ・ポリシーの構造の理解
データ・レルムの設計について
データ・レルムの構造の理解について
静的データ・レルムの使用について
トレース・ファイルを使用したポリシー述語エラーの確認
列への追加のアプリケーション権限の適用
データベース表またはビューに対するデータ・セキュリティ・ポリシーの有効化について
APPLY_OBJECT_POLICYプロシージャを使用したReal Application Securityの有効化
表またはビューに対する複数のポリシーの適用について
APPLY_OBJECT_POLICYプロシージャによるデータベース表の変更方法について
表データに対するACLの評価方法について
マスター/ディテール関連表のReal Application Securityポリシーの作成について
マスター/ディテール関連表のReal Application Securityポリシーについて
マスター/ディテール・データ・レルムの構造の理解について
マスター/ディテール関連表でReal Application Securityポリシーを作成する例
データ・セキュリティ・ポリシーのアプリケーション権限の管理について
Real Application Securityポリシーのセキュリティ確認のバイパスについて
SQL*Plus SET SECUREDCOLコマンドの使用
BEQUEATH CURRENT_USERビューの使用
SQLファンクションを使用した起動元アプリケーション・ユーザーの特定
Real Application Security: 全体のまとめ
基本のHRシナリオ: 実装タスク
Real Application Security管理者としてのデータベース・ユーザーの作成
ロールおよびアプリケーション・ユーザーの作成
セキュリティ・クラスおよびACLの作成
データ・セキュリティ・ポリシーの作成
Real Application Securityオブジェクトの検証
表のデータ・セキュリティ・ポリシーの無効化
セキュリティHRデモの実行
6
JavaアプリケーションでのReal Application Securityの使用
中間層の初期化について
中間層構成モードについて
getSessionManagerメソッドの使用方法
中間層キャッシュ設定の変更について
最大キャッシュ・アイドル時間の設定について
最大キャッシュ・サイズの設定について
最大キャッシュ・アイドル時間の取得について
最大キャッシュ・サイズの取得について
キャッシュからのエントリの削除について
水位標の設定について
高水位標の取得について
低水位標の取得について
キャッシュの消去について
Real Application Securityセッションの管理について
Real Application Securityユーザー・セッションの作成
アプリケーション・セッションの連結
アプリケーション・ユーザーの割当てまたは切替え
Real Application Securityアプリケーション・ロールの有効化
Real Application Securityアプリケーション・ロールの有効化
Real Application Securityアプリケーション・ロールの無効化
Real Application Securityアプリケーション・ロールが有効かどうかの確認
セッション・ユーザーとしてのネームスペース操作の実行について
ネームスペースの作成
ネームスペースの削除
ネームスペースの暗黙的な作成
ネームスペース属性の使用方法について
セッション・ネームスペース属性の作成
セッション・ネームスペース属性の設定について
セッション・ネームスペース属性の取得
属性のリスト
属性のリセット
属性の削除
セッション・マネージャとしてのネームスペース操作の実行について
その他のセッション関連アクティビティの実行について
セッションに関連付けられたOracle接続の取得について
セッションのアプリケーション・ユーザーIDの取得について
セッションのセッションIDの取得
セッションの文字列表現の取得について
セッションCookieの取得
セッション・マネージャとしてのセッション非アクティブ・タイムアウトの設定
セッション・マネージャとしてのセッションCookieの設定
アプリケーション・セッションの連結解除
Real Application Securityアプリケーション・セッションの破棄
Java APIを使用したアプリケーション・ユーザーの認証
ACLを使用したアプリケーション・ユーザーの認可について
ACL識別子の作成
checkAclメソッドの使用方法
特定のACLに関連付けられているデータ権限の取得について
人事管理のユースケース: Javaでの実装
7
Oracle Fusion MiddlewareとReal Application Securityの統合
外部ユーザーおよび外部ロールについて
外部ユーザーおよびロールのセッションAPI
外部ユーザーのネームスペース
セッションの作成
セッションの連結
セッションへのユーザーの割当て
セッションの保存とセッションの中止
8
Oracle Fusion Middlewareのアプリケーション・セッション・サービス
Real Application Securityの概念について
Oracle Fusion Middlewareのアプリケーション・セッション・サービスについて
アプリケーション・セッション・フィルタについて
アプリケーション・セッション・フィルタ操作について
配布について
アプリケーション・セッション・フィルタのアプリケーション構成について
ドメイン構成: OPSSおよびOracle Fusion Middlewareで動作するアプリケーション・セッション・サービスの設定
前提条件
手動構成
自動構成について
アプリケーション・セッションAPIについて
アプリケーション・セッションAPIについて
アプリケーション・セッションへの連結について
アプリケーション・セッションからの連結解除
アプリケーション・セッションの破棄
権限昇格APIについて
アプリケーション・セッションでの動的ロールの有効化
ネームスペースAPIについて
ネームスペースの作成について
ネームスペースの削除について
ネームスペース属性の設定について
ネームスペース属性の削除について
ネームスペース属性の取得
権限チェックAPIについて
ACLの権限のチェック
人事管理デモのユースケース: Javaでの実装
外部プリンシパル用のHRデモ・アプリケーションの設定(setup.sql)
アプリケーション・セッション・フィルタ構成ファイル(web.xml)について
サンプル・サーブレット・アプリケーション(MyHR.java)について
アプリケーション・ネームスペースを設定するためのフィルタ(MyFilter.java)について
HRデモのユースケース - ユーザー・ロールについて
HRデモ(1) - 従業員LPOPPとしてログインについて
HRデモ(2) - HRMGRとしてログインについて
HRデモ(3) - チーム・マネージャとしてログインについて
9
Oracle Database Real Application Securityデータ・ ディクショナリ・ ビュー
DBA_XS_OBJECTS
DBA_XS_PRINCIPALS
DBA_XS_EXTERNAL_PRINCIPALS
DBA_XS_USERS
USER_XS_USERS
USER_XS_PASSWORD_LIMITS
DBA_XS_ROLES
DBA_XS_DYNAMIC_ROLES
DBA_XS_PROXY_ROLES
DBA_XS_ROLE_GRANTS
DBA_XS_PRIVILEGES
USER_XS_PRIVILEGES
DBA_XS_IMPLIED_PRIVILEGES
USER_XS_IMPLIED_PRIVILEGES
DBA_XS_SECURITY_CLASSES
USER_XS_SECURITY_CLASSES
DBA_XS_SECURITY_CLASS_DEP
USER_XS_SECURITY_CLASS_DEP
DBA_XS_ACLS
USER_XS_ACLS
DBA_XS_ACES
USER_XS_ACES
DBA_XS_POLICIES
USER_XS_POLICIES
DBA_XS_REALM_CONSTRAINTS
USER_XS_REALM_CONSTRAINTS
DBA_XS_INHERITED_REALMS
USER_XS_INHERITED_REALMS
DBA_XS_ACL_PARAMETERS
USER_XS_ACL_PARAMETERS
DBA_XS_COLUMN_CONSTRAINTS
USER_XS_COLUMN_CONSTRAINTS
DBA_XS_APPLIED_POLICIES
DBA_XS_MODIFIED_POLICIES
DBA_XS_SESSIONS
DBA_XS_ACTIVE_SESSIONS
DBA_XS_SESSION_ROLES
DBA_XS_SESSION_NS_ATTRIBUTES
DBA_XS_NS_TEMPLATES
DBA_XS_NS_TEMPLATE_ATTRIBUTES
ALL_XDS_ACL_REFRESH
ALL_XDS_ACL_REFSTAT
ALL_XDS_LATEST_ACL_REFSTAT
DBA_XDS_ACL_REFRESH
DBA_XDS_ACL_REFSTAT
DBA_XDS_LATEST_ACL_REFSTAT
USER_XDS_ACL_REFRESH
USER_XDS_ACL_REFSTAT
USER_XDS_LATEST_ACL_REFSTAT
V$XS_SESSION_NS_ATTRIBUTES
V$XS_SESSION_ROLES
10
Oracle Database Real Application Security SQL ファンクション
COLUMN_AUTH_INDICATORファンクション
XS_SYS_CONTEXTファンクション
ORA_CHECK_ACLファンクション
ORA_GET_ACLIDSファンクション
ORA_CHECK_PRIVILEGEファンクション
TO_ACLIDファンクション
11
Oracle Database Real Application Security PL/SQL パッケージ
DBMS_XS_SESSIONSパッケージ
セキュリティ・モデル
定数
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
DBMS_XS_SESSIONSサブプログラムの要約
CREATE_SESSIONプロシージャ
ATTACH_SESSIONプロシージャ
ASSIGN_USERプロシージャ
SWITCH_USERプロシージャ
CREATE_NAMESPACEプロシージャ
CREATE_ATTRIBUTEプロシージャ
SET_ATTRIBUTEプロシージャ
GET_ATTRIBUTEプロシージャ
RESET_ATTRIBUTEプロシージャ
DELETE_ATTRIBUTEプロシージャ
DELETE_NAMESPACEプロシージャ
ENABLE_ROLEプロシージャ
DISABLE_ROLEプロシージャ
SET_SESSION_COOKIEプロシージャ
REAUTH_SESSIONプロシージャ
SET_INACTIVITY_TIMEOUTプロシージャ
SAVE_SESSIONプロシージャ
DETACH_SESSIONプロシージャ
DESTROY_SESSIONプロシージャ
ADD_GLOBAL_CALLBACKプロシージャ
ENABLE_GLOBAL_CALLBACKプロシージャ
DELETE_GLOBAL_CALLBACKプロシージャ
XS_ACLパッケージ
セキュリティ・モデル
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
定数
XS_ACLサブプログラムの要約
CREATE_ACLプロシージャ
APPEND_ACESプロシージャ
REMOVE_ACESプロシージャ
SET_SECURITY_CLASSプロシージャ
SET_PARENT_ACLプロシージャ
ADD_ACL_PARAMETERプロシージャ
REMOVE_ACL_PARAMETERSプロシージャ
SET_DESCRIPTIONプロシージャ
DELETE_ACLプロシージャ
XS_ADMIN_UTILパッケージ
セキュリティ・モデル
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
定数
XS_ADMIN_UTILサブプログラムの要約
GRANT_SYSTEM_PRIVILEGEプロシージャ
REVOKE_SYSTEM_PRIVILEGEプロシージャ
XS_DATA_SECURITYパッケージ
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
セキュリティ・モデル
XS_DATA_SECURITYサブプログラムの要約
CREATE_POLICYプロシージャ
APPEND_REALM_CONSTRAINTSプロシージャ
REMOVE_REALM_CONSTRAINTSプロシージャ
ADD_COLUMN_CONSTRAINTSプロシージャ
REMOVE_COLUMN_CONSTRAINTSプロシージャ
CREATE_ACL_PARAMETERプロシージャ
DELETE_ACL_PARAMETERプロシージャ
SET_DESCRIPTIONプロシージャ
DELETE_POLICYプロシージャ
ENABLE_OBJECT_POLICYプロシージャ
DISABLE_OBJECT_POLICYプロシージャ
REMOVE_OBJECT_POLICYプロシージャ
APPLY_OBJECT_POLICYプロシージャ
XS_DATA_SECURITY_UTILパッケージ
セキュリティ・モデル
定数
XS_DATA_SECURITY_UTILサブプログラムの要約
SCHEDULE_STATIC_ACL_REFRESHプロシージャ
ALTER_STATIC_ACL_REFRESHプロシージャ
XS_DIAGパッケージ
セキュリティ・モデル
XS_DIAGサブプログラムの要約
VALIDATE_PRINCIPALファンクション
VALIDATE_SECURITY_CLASSファンクション
VALIDATE_ACLファンクション
VALIDATE_DATA_SECURITYファンクション
VALIDATE_NAMESPACE_TEMPLATEファンクション
VALIDATE_WORKSPACEファンクション
XS_NAMESPACEパッケージ
セキュリティ・モデル
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
定数
XS_NAMESPACEサブプログラムの要約
CREATE_TEMPLATEプロシージャ
ADD_ATTRIBUTESプロシージャ
REMOVE_ATTRIBUTESプロシージャ
SET_HANDLERプロシージャ
SET_DESCRIPTIONプロシージャ
DELETE_TEMPLATEプロシージャ
XS_PRINCIPALパッケージ
セキュリティ・モデル
オブジェクト・タイプ、コンストラクタ・ファンクション、シノニムおよび付与
定数
XS_PRINCIPALサブプログラムの要約
CREATE_USERプロシージャ
CREATE_ROLEプロシージャ
CREATE_DYNAMIC_ROLEプロシージャ
GRANT_ROLESプロシージャ
REVOKE_ROLESプロシージャ
ADD_PROXY_USERプロシージャ
REMOVE_PROXY_USERSプロシージャ
ADD_PROXY_TO_DBUSER
REMOVE_PROXY_FROM_DBUSER
SET_EFFECTIVE_DATESプロシージャ
SET_DYNAMIC_ROLE_DURATIONプロシージャ
SET_DYNAMIC_ROLE_SCOPEプロシージャ
ENABLE_BY_DEFAULTプロシージャ
ENABLE_ROLES_BY_DEFAULTプロシージャ
SET_USER_SCHEMAプロシージャ
SET_GUIDプロシージャ
SET_PROFILEプロシージャ
SET_USER_STATUSプロシージャ
SET_PASSWORDプロシージャ
SET_VERIFIERプロシージャ
SET_DESCRIPTIONプロシージャ
DELETE_PRINCIPALプロシージャ
XS_SECURITY_CLASSパッケージ
セキュリティ・モデル
XS_SECURITY_CLASSサブプログラムの要約
CREATE_SECURITY_CLASSプロシージャ
ADD_PARENTSプロシージャ
REMOVE_PARENTSプロシージャ
ADD_PRIVILEGESプロシージャ
REMOVE_PRIVILEGESプロシージャ
ADD_IMPLIED_PRIVILEGESプロシージャ
REMOVE_IMPLIED_PRIVILEGESプロシージャ
SET_DESCRIPTIONプロシージャ
DELETE_SECURITY_CLASSプロシージャ
12
Real Application Security HRデモ
セキュリティHRデモの概要
各スクリプトで実行される処理
セキュリティHRデモ・コンポーネントの設定
ロールおよびアプリケーション・ユーザーの作成について
セキュリティ・クラスおよびACLの作成について
データ・セキュリティ・ポリシーの作成について
Real Application Securityオブジェクトの検証について
中間層関連構成の設定について
直接ログオンを使用したセキュリティHRデモの実行
Real Application Securityセッションに連結されたセキュリティHRデモの実行
セキュリティHRデモ・クリーンアップ・スクリプトの実行
JavaインタフェースでのセキュリティHRデモの実行
RASADMを使用したセキュリティHRデモの実行について
RASADMアプリケーションの実行について
設計フェーズ
開発フロー
RASADMを使用したHRデモの作成について
アプリケーション・ロールの作成について
ディレクトリ・サーバーで作成されたロールを使用したアプリケーション・ロールの作成
RASADMを使用したアプリケーション・ロールの作成
アプリケーション・ユーザーの作成について
RASADMを使用したアプリケーション・ユーザーの作成
ディレクトリ・サーバーを使用したアプリケーション・ユーザーの作成
データ・セキュリティ・ポリシーの作成について
ポリシー情報の入力
列認可の作成
データ・レルム認可の作成
ポリシーの適用
A
Real Application Securityの事前定義済オブジェクト
ユーザー
ロール
標準アプリケーション・ロール
動的アプリケーション・ロール
データベース・ロール
ネームスペース
セキュリティ・クラス
ACL
B
列の認可のためのOCIおよびJDBCアプリケーションの構成
OCIを使用した列認可インジケータの取得について
戻りコードの取得の例
認可インジケータでの戻りコードおよびインジケータの使用方法について
不明の認可インジケータに関する警告について
列セキュリティに関するOCIの記述の使用
JDBCを使用した列認可インジケータの取得について
表の列のセキュリティ属性の確認について
表の列のユーザー認可の確認について
セキュリティ属性およびユーザー認可の確認の例
C
Real Application Security HRデモ・ファイル
セキュリティHRデモの実行方法
セキュリティHRデモのスクリプト
hrdemo_setup.sql
hrdemo_run.sql
hrdemo_run_sess.sql
HRDemo.java
hrdemo_clean.sql
各スクリプトに対して生成されるログ・ファイル
hrdemo_setup.log
hrdemo_run.log
hrdemo_run_sess.log
HRDemo.log
hrdemo_clean.log
D
Oracle Database Real Application Securityのトラブルシューティング
Real Application Securityの診断について
検証APIの使用について
現在のユーザーの行に関連付けられているACLを確認する方法
ACLでユーザーに権限が付与されているかどうかを調べる方法
例外状態ダンプについて
イベントベースのトレースについて
インメモリー・トレースについて
統計について
Real Application Securityコンポーネントのイベントベースのトレースについて
アプリケーション・セッション(XSSESSION)イベントベース・トレースについて
アプリケーション・プリンシパル(XSPRINCIPAL)イベントベース・トレースについて
セキュリティ・クラス(XSSECCLASS)イベントベース・トレースについて
ACL (XSACL)イベントベース・トレースについて
データ・セキュリティ(XSXDSおよびXSVPD)イベントベース・トレースについて
例外状態ダンプ情報について
セッション統計について
中間層トレースの使用
用語集
索引