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);