DBMS_XDB
パッケージは次の機能をサポートしています。
リソース・ビューを補完するリソース管理サブプログラム
アクセス制御リスト(ACL)ベースのセキュリティ・メカニズム
構成セッション管理
XDBユーザー名の作成
関連項目:
|
この章では、次の項目について説明します。
概要
推奨されないサブプログラム
セキュリティ・モデル
定数
この項では、DBMS_XDB
パッケージの使用に関連する項目について説明します。
DBMS_XDB
パッケージは次の機能をサポートしています。
リソース管理機能は、LINKプロシージャ、EXISTSRESOURCEファンクション、LOCKRESOURCEファンクション、GETLOCKTOKENプロシージャ、UNLOCKRESOURCEファンクション、CREATERESOURCEファンクション、RENAMERESOURCEプロシージャ、DELETERESOURCEプロシージャ、GETRESOIDファンクション、CREATEOIDPATHファンクション、REBUILDHIERARCHICALINDEXプロシージャおよびCREATEFOLDERファンクションのサブプログラムを提供し、リソース・ビューを補完します。
アクセス制御リスト(ACL)ベースのセキュリティ・メカニズムは、データベースによって保存された階層内ACLまたはデータベース外から保存されたメモリー内ACLで使用できます。これらのメソッドの一部は、Oracleリソースおよび任意のデータベース・オブジェクトの両方に使用できます。Oracleリソースには、CHECKPRIVILEGESファンクション、GETACLDOCUMENTファンクション、CHANGEPRIVILEGESファンクションおよびGETCHILDRESPATHSファンクションを使用します。ACLCHECKPRIVILEGESファンクションは、階層内にオブジェクトを格納せずに、OracleのACLベースのセキュリティ・メカニズムへのアクセスを提供します。
構成セッション管理は、CFG_REFRESHプロシージャ、CFG_GETファンクションおよびCFG_UPDATEプロシージャのメソッドでサポートされています。
XDBユーザー名はXDBインストール時に作成されます。このユーザーは一連のデフォルトの表およびパッケージを所有します。GETXDB_TABLESPACEファンクションおよびMOVEXDB_TABLESPACEプロシージャは、指定した表領域にスキーマを移動でき、デフォルトのSYSAUX
表領域の導入をサポートしています。
注意: 新しいアプリケーションでは、推奨されないプロシージャは使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされており、今後のバージョンでは終了する場合があります。 |
Oracle Database 11gでは、次のサブプログラムの使用は推奨されていません。
この機能のかわりに、DBMS_XDB_ADMINパッケージの同じ名前のサブプログラムを使用してください。
表164-2 DBMS_XDBパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
指定のACLドキュメントで指定されている現行ユーザーに付与されたアクセス権限をチェックします。このアクセス権限は、所有者が'owner'パラメータで指定されているリソースに対するものです。 |
|
有効期限に対するURLパターンのマッピングを |
|
XDB構成にMIMEマッピングを追加します。 |
|
XDB構成にスキーマ位置マッピングを追加します。 |
|
XDB構成にサーブレットを追加します。 |
|
XDB構成にサーブレット・マッピングを追加します。 |
|
XDB構成内の指定したサーブレットにセキュリティ・ロール |
|
XDB構成にXML拡張子を追加します。 |
|
親のパスに子のパスを追加します。 |
|
ユーザー定義のメタデータを |
|
セッションの構成情報を取得します。 |
|
セッションの最新の構成情報をデータベースに反映します。 |
|
構成情報を更新します。 |
|
リソースの所有者を指定した所有者に変更します。 |
|
指定したACEを、指定したリソースのACLに追加します。 |
|
指定したリソースに対して現行ユーザーに付与されているアクセス権限をチェックします。 |
|
階層内に新規フォルダ・リソースを作成します。 |
|
オブジェクトIDに基づいたリソースの仮想パスを作成します。 |
|
新規リソースを作成します。 |
|
有効期限に対するURLパターンのすべてのマッピングを |
|
XDB構成からMIMEマッピングを削除します。 |
|
階層からリソースを削除します。 |
|
リソースからメタデータを削除します(スキーマ・ベースまたは非スキーマ・ベースのメタデータに使用できます)。 |
|
指定したスキーマURLのスキーマ位置マッピングをXDB構成から削除します。 |
|
XDB構成からサーブレットを削除します。 |
|
指定したサーブレット名のサーブレット・マッピングをXDB構成から削除します。 |
|
XDB構成内のサーブレットから指定したロールを削除します。 |
|
指定したXML拡張子をXDB構成から削除します。 |
|
リソースの絶対パスに基づいて、リソースが階層であるかどうかを判別します。 |
|
パス名を指定して、リソースを保護するACLドキュメントを取得します。 |
|
すべての子リソースの絶対パス上にカーソルを戻します。 |
|
BLOBとして戻されたリソースの内容を取り出します。 |
|
CLOBとして戻されたリソースの内容を取り出します。 |
|
文字列として戻されたリソースの内容を取り出します。 |
|
|
|
|
|
現在のFTPポートの値を取得します。 |
|
現在のHTTPポートの値を取得します。 |
|
リソースへのパスを指定して、現行ユーザーのリソースのロック・トークンを戻します。 |
|
XML DB HTTPサーバーに対応するリスナーのエンド・ポイントのパラメータを取得します。 |
|
リソースの絶対パスからオブジェクトIDを戻します。 |
|
XDB(ユーザー)の現行の表領域を戻します。 |
|
リソースにBLOBコンテンツがある場合は |
|
リソースに文字コンテンツがある場合は |
|
リソースにXMLコンテンツがある場合は |
|
リソースにXMLコンテンツへの |
|
リソースがフォルダまたはコンテナの場合は、 |
|
既存のリソースへのリンクを作成します。 |
|
リソースへのパスを指定して、リソースに対するWebDAVスタイルのロックを取得します。 |
|
(非推奨)XDB(ユーザー)を指定した表領域に移動します。 |
|
指定したリソース内のドキュメント・リンクを処理します。 |
|
リソースからすべてのユーザー・メタデータを削除します。 |
REBUILDHIERARCHICALINDEXプロシージャ |
(非推奨)インポートまたはエクスポート操作後に、階層の索引を再作成します。 |
|
XDBリソースの名前を変更します。 |
|
指定したリソースにACLを設定します。 |
|
指定したリソースの内容を指定したデータ・タイプに置き換えます。 |
|
FTPポートを新しい値に設定します。 |
|
HTTPポートに新しい値を設定します。 |
|
XML DB HTTPサーバーに対応するリスナーのエンド・ポイントのパラメータを設定します。 |
|
XML DB HTTPサーバーのすべてのリスナーのエンド・ポイントを、ローカルホスト・インタフェースでのみリスニングするか、ローカルホスト・インタフェースと非ローカルホスト・インタフェースの両方でリスニングするかのどちらかに制限します。 |
|
パスを親のパスと子のパスに分割します。 |
|
リソースの変更時刻を現在の時刻に変更します。 |
|
リソースのメタデータを更新します。 |
|
ロック・トークンおよびリソース・パスを指定して、リソースのロックを解除します。 |
このファンクションは、リソースのOWNER
による指定したACLドキュメントによって、現在のユーザーに付与されたアクセス権限をチェックします。すべての権限が付与されている場合は、正の整数を戻します。
構文
DBMS_XDB.ACLCHECKPRIVILEGES( acl_path IN VARCHAR2, owner IN VARCHAR2, privs IN xmltype) RETURN PLS_INTEGER;
パラメータ
表164-3 ACLCHECKPRIVILEGESファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
ACLドキュメントの階層内の絶対パス。 |
|
リソースの所有者名。疑似ユーザー「DAV:owner」は、ACL権限の解決時にこのユーザーに置き換えられます。 |
|
privilege要素の |
このプロシージャは、有効期限に対するURLパターンのマッピングをxdb$config
に追加します。これによって、パターンに一致するURLのExpireヘッダーを制御します。
このプロシージャは、XDB構成に次のMIMEマッピングを追加します。
<mime-mapping> <extension>extension</extension> <mime-type>mimetype</mime-type> </mime-mapping>
このプロシージャは、XDB構成に次のスキーマ位置マッピングを追加します。
<schemaLocation-mapping> <namespace>namespace</namespace> <element>element</element> <schemaURL>schemaURL</schemaURL> </schemaLocation-mapping>
このプロシージャは、XDB構成に次のサーブレットを追加します。
<servlet> <servlet-name>name</servlet-name> <servlet-language>language</servlet-language> <display-name>dispname</display-name> <description>descript</description> <servlet-class>class</servlet-class> <servlet-schema>schema</servlet-schema> </servlet>
構文
DBMS_XDB.ADDSERVLET( name IN VARCHAR2, language IN VARCHAR2, dispname IN VARCHAR2, icon IN VARCHAR2 := NULL, descript IN VARCHAR2 := NULL, class IN VARCHAR2 := NULL, jspfile IN VARCHAR2 := NULL, plsql IN VARCHAR2 := NULL);
パラメータ
表164-7 ADDSERVLETプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
サーブレット名。 |
|
C、Java、PL/SQLのいずれかを指定する必要があります。 |
|
表示名。 |
|
アイコン。 |
|
説明 |
|
このサーブレットに対応する |
|
このサーブレットに対応する |
|
このサーブレットに対応する |
|
スキーマ |
このプロシージャは、XDB構成に次のサーブレット・マッピングを追加します。
<servlet-mapping> <servlet-pattern>pattern</servlet-pattern> <servlet-name>name</servlet-name></servlet-mapping>
このプロシージャは、XDB構成内の指定したサーブレットに次のセキュリティ・ロールREF
を追加します。
<security-role-ref> <role-name>rolename</role-name> <role-link>rolelink</role-link> <description>descript</description> </security-role-ref>
このプロシージャは、<xml-extensions>
で、XDB構成に次のXML拡張子を追加します。
<extension>extension</extension>
このプロシージャは、ユーザー定義のメタデータをXMLTYPE
へのREF
またはXMLTYPE
として使用し、目的のリソースに追加します。
構文
DBMS_XDB.APPENDRESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN XMLTYPE); DBMS_XDB.APPENDRESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN REF SYS.XMLTYPE);
このファンクションは新しいリソースを作成します。オーバーロード・オプションの記述は各バージョンの構文の前に配置します。
構文
指定した文字列を内容として使用し、新規リソースを作成します。
DBMS_XDB.CREATERESOURCE( abspath IN VARCHAR2, data IN VARCHAR2, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
指定したXMLType
データを内容として使用し、新規リソースを作成します。
DBMS_XDB.CREATERESOURCE( abspath IN VARCHAR2, data IN SYS.XMLTYPE, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
既存のXMLType
行にREF
を指定し、その行を指す内容を持つリソースを作成します。この行は、別のリソース内に事前に存在させることはできません。
DBMS_XDB.CREATERESOURCE( abspath IN VARCHAR2, datarow IN REF SYS.XMLTYPE, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
内容として指定したBLOB
を使用して、リソースを作成し、ソースBLOB
のキャラクタ・セットを指定します。
DBMS_XDB.CREATERESOURCE( abspath IN VARCHAR2, data IN BLOB, csid IN NUMBER :=0, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
内容として指定したBFILE
を使用して、リソースを作成し、ソースBFILE
のキャラクタ・セットを指定します。
DBMS_XDB.CREATERESOURCE ( abspath IN VARCHAR2, data IN BFILE, csid IN NUMBER :=0, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
指定したCLOB
を内容として使用し、リソースを作成します。
DBMS_XDB.CREATERESOURCE ( abspath IN VARCHAR2, data IN CLOB, createfolders IN BOOLEAN := FALSE) RETURN BOOLEAN;
文字列を指定すると、その文字列を内容として持つ新規リソースを階層に挿入します。
DBMS_XDB.CREATERESOURCE ( abspath IN VARCHAR2, data IN VARCHAR2, schemaurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) RETURN BOOLEAN;
XMLTYPE
およびスキーマURLを指定すると、XMLTYPE
を内容として持つ新規リソースを階層に挿入します。
DBMS_XDB.CREATERESOURCE ( abspath IN VARCHAR2, data IN SYS.XMLTYPE, schemaurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) RETURN BOOLEAN;
パラメータ
表164-19 CREATERESOURCEファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
作成するリソースの絶対パス。パス名の親フォルダは、階層内にすでに存在している必要があります。たとえば、 |
|
新規リソースの内容が含まれている文字列バッファ。データは解析され、スキーマに基づいたXML文書が含まれているかどうかがチェックされ、含まれている場合、内容はスキーマのデフォルト表にスキーマに基づいたものとして格納されます。含まれていない場合は、バイナリ・データとして保存されます。 |
|
内容として使用する |
|
ドキュメントのキャラクタ・セットID。有効なOracle IDである必要があり、無効な場合、エラーが戻されます。 CSIDを指定しない場合またはCSIDに0(ゼロ)を指定した場合、ドキュメントのキャラクタ・セットIDは次のように判断されます。
|
|
|
|
XMLデータの場合、データが準拠するスキーマURL(デフォルトは |
|
要素名(デフォルトは |
このプロシージャは、階層からリソースを削除します。
パラメータ
表164-22 DELETERESOURCEプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
削除するリソースのパス名。 |
|
表164-1で定義されたリソースの削除方法を制御するオプション:
|
このプロシージャは、絶対パスでリソースを使用し、REFで識別されるスキーマ・ベースのメタデータ、またはネームスペースと名前の組合せで識別されるメタデータ(スキーマ・ベースまたは非スキーマ・ベースのメタデータ)を削除します。また、メタデータの削除方法を指定する追加のパラメータ(オプション)も使用できます。このパラメータは、削除する必要のあるスキーマ・ベースのリソース・メタデータにのみ関連しています。非スキーマ・ベースのメタデータの場合、このパラメータは無視されます。
構文
次の構文は、スキーマ・ベースのメタデータにのみ使用できます。
DBMS_XDB.DELETERESOURCEMETADATA ( abspath IN VARCHAR2, metadata IN REF SYS.XMLTYPE, delete_option IN pls_integer := dbms_xdb.DELETE_RESOURCE_METADATA_CASCADE);
次の構文は、スキーマ・ベースまたは非スキーマ・ベースのメタデータに使用できます。
DBMS_XDB.DELETERESOURCEMETADATA ( abspath IN VARCHAR2, metadatans IN VARCHAR2, metadataname IN VARCHAR2, delete_option IN pls_integer := dbms_xdb.DELETE_RESOURCE_METADATA_CASCADE);
パラメータ
表164-23 DELETERESOURCEMETADATAプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
リソースの絶対パス。 |
|
削除する(スキーマ・ベースの)メタデータの一部への |
|
削除するメタデータの断片のネームスペース。 |
|
削除するメタデータの断片のローカル名。 |
|
スキーマ・ベースのメタデータにのみ適用できます。このパラメータは次のいずれかになります。
|
このファンクションは、BLOB
として戻されたリソースの内容を取り出します。
構文
DBMS_XDB.GETCONTENTBLOB( abspath IN VARCHAR2, csid OUT PLS_INTEGER, locksrc IN BOOLEAN := FALSE) RETURN BLOB;
このプロシージャは、XML DB HTTPサーバーに対応するリスナーのエンド・ポイントのパラメータを取得します。このプロシージャでは、HTTPとHTTP2の両方のエンド・ポイントのパラメータを取得できます。
このプロシージャは、指定したフォルダから指定したリソースに作成します。
リソースへのパスを指定して、リソースに対するWebDAVスタイルのロックを取得します。
構文
DBMS_XDB.LOCKRESOURCE( path IN VARCHAR2, depthzero IN BOOLEAN, shared IN boolean) RETURN BOOLEAN;
注意: 11gでは、このプロシージャの使用は推奨されていません。この機能のかわりに、DBMS_XDB_ADMINパッケージの同じ名前のサブプログラム(MOVEXDB_TABLESPACEプロシージャ)を使用してください。 |
このプロシージャは、指定した表領域にXDB(ユーザー)を移動します。
このプロシージャは、リソースからすべてのユーザー・メタデータを削除します。スキーマ・ベースのメタデータはカスケード・モードで削除され、対応するメタデータ表から行が削除されます。
注意: 11gでは、このプロシージャの使用は推奨されていません。この機能のかわりに、DBMS_XDB_ADMINパッケージの同じ名前のサブプログラム(REBUILDHIERARCHICALINDEXプロシージャ)を使用してください。 |
このプロシージャは、インポートまたはエクスポート操作後に、階層の索引を再作成します。これは、データを索引表からエクスポートできないため必要です。
このプロシージャは、リソースの内容を指定したデータ・タイプに置き換えます。
構文
リソースの内容を指定したCLOBに置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN CLOB);
リソースの内容を指定したBLOBに置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN BLOB, csid IN PLS_INTEGER);
リソースの内容を指定したXMLTYPE
に置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN SYS.XMLTYPE);
リソースの内容を指定した文字列に置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN VARCHAR2);
リソースの内容を指定したXMLTYPE
へのREF
に置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN CLOB, sticky IN BOOLEAN := TRUE);
リソースの内容を指定したBFILEに置き換えます。
DBMS_XDB.SETCONTENT( abspath IN VARCHAR2, data IN CLOB, csid IN PLS_INTEGER);
このプロシージャは、XML DB HTTPサーバーに対応するリスナーのエンド・ポイントのパラメータを設定します。このプロシージャでは、HTTPとHTTP2の両方のエンド・ポイントを設定できます。
構文
DBMS_XDB.SETLISTENERENDPOINT ( endpoint IN NUMBER, host IN VARCHAR2, port IN NUMBER, protocol IN NUMBER);
パラメータ
表164-56 SETLISTENERENDPOINTプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
設定するエンド・ポイント。この値は、 |
|
リスナーのエンド・ポイントがリスニングするインタフェース。この値は、' |
|
リスナーのエンド・ポイントがリスニングするポート。 |
|
リスナーのエンド・ポイントが受け入れる転送プロトコル。この値は、 |
このプロシージャは、XML DB HTTPサーバーのすべてのリスナーのエンド・ポイントを、ローカルホスト・インタフェースでのみリスニングするか(l_access
の設定がTRUE
の場合)、またはローカルホスト・インタフェースと非ローカルホスト・インタフェースの両方でリスニングするか(l_access
の設定がFALSE
の場合)のどちらかに制限します。
このプロシージャは、リソースのメタデータを更新します。このプロシージャは、絶対パスで識別されるリソースおよび、そのREF
で識別されて置き換えられる、そのリソース内のメタデータを使用します。メタデータの一部をユーザー定義のメタデータ(XMLTYPE
へのREF
またはXMLTYPE
のいずれかの形式)に置き換えます。
構文
次の構文は、スキーマ・ベースのメタデータの更新にのみ使用できます。新しいメタデータは、スキーマ・ベースである必要があります。
DBMS_XDB.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldmetadata IN REF SYS.XMLTYPE, newmetadata IN REF SYS.XMLTYPE)
次の構文は、スキーマ・ベースのメタデータの更新にのみ使用できます。新しいメタデータは、スキーマ・ベースまたは非スキーマ・ベースである必要があります。
DBMS_XDB.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldmetadata IN REF SYS.XMLTYPE, newmetadata IN XMLTYPE);
次の構文は、スキーマ・ベースおよび非スキーマ・ベースの両方のメタデータに使用できます。
DBMS_XDB.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldns IN VARCHAR2, oldname IN VARCHAR, newmetadata IN XMLTYPE);
次の構文は、スキーマ・ベースおよび非スキーマ・ベースの両方のメタデータに使用できます。新しいメタデータは、スキーマ・ベースである必要があります。
DBMS_XDB.UPDATERESOURCEMETADATA( abspath IN VARCHAR2, oldns IN VARCHAR2, oldname IN VARCHAR, newmetadata IN REF SYS.XMLTYPE);