3.12 Workspace ManagerおよびLabel SecurityでのGeoRasterの使用
Oracle Workspace Managerでは、GeoRasterオブジェクトのラスター・ブロックのためのバージョニング機能が提供されます。Oracle Label Securityでは、ラスター・ブロックの行レベルの拡張セキュリティを使用するGeoRasterオブジェクトがサポートされます。
GeoRasterをOracle Workspace ManagerまたはOracle Label Securityと組み合せて使用するには、GeoRasterオブジェクトのリレーショナル表としてラスター・データ表(RDT)を作成する必要があります(例3-3を参照)。ベース・リレーショナルRDTでSDO_RASTER型のオブジェクト・ビューを定義する必要はありません。
3.12.1 Workspace ManagerでのGeoRasterの使用
Workspace Managerでは、異なる作業領域にラスター・データの異なるバージョンを保存して変更を加えることで、ラスター・データに対する変更を容易に管理できます。Workspace ManagerでGeoRasterを使用するには、ラスター記憶域用のリレーショナル・ラスター・データ表を使用し、それらのリレーショナル・ラスター・データ表をバージョン対応にする必要があります。たとえば (一般的な形式):
EXECUTE DBMS_WM.EnableVersioning (<rdt_relational_table>, 'VIEW_WO_OVERWRITE');
ノート:
バージョン対応にできるのは、ラスター・データ表のみです。GeoRasterオブジェクトが格納されているGeoRaster表は、バージョン対応にしないでください。また、作業領域での作業中にGeoRaster表を変更する必要のある操作は実行しないでください。
リレーショナルRDTをバージョン対応にした後に、DBMS_WMパッケージのサブプログラムを使用してラスター・データの変更を管理できます。ラスター・ブロックを直接変更する必要がある場合は、次の例に示すとおり、操作の前にDBMS_WM.copyForUpdateプロシージャをコールします。
declare geor sdo_georaster; cond varchar2(1000); lb blob; r1 raw(1024); amt number; begin r1 := utl_raw.copies(utl_raw.cast_to_raw('0'),1024); select georaster into geor from georaster_table where georid=1; cond := 'rasterId=' || geor.rasterId || ' AND pyramidLevel=0 AND ' || ' bandBlockNumber=0 AND rowBlockNumber=0 AND columnBlockNumber=0'; dbms_wm.copyForUpdate(geor.rasterDataTable, cond); sdo_geor.getRasterBlockLocator(geor, 0, 0, 0, 0, lb, null, 'TRUE'); amt := 1024; dbms_lob.write(lb, amt, 1, r1); end; /
ただし、GeoRasterサブプログラムを使用してラスター・データを変更する場合は、事前にDBMS_WM.copyForUpdateプロシージャをコールする必要はありません。
Workspace Managerの詳細は、『Oracle Database Workspace Manager開発者ガイド』を参照してください。
3.12.2 Label SecurityでのGeoRasterの使用
Oracle Label Securityでは、ユーザーのセキュリティ・クリアランスのレベルに基づいて、機密データに対する行レベルのアクセス制御を実現できます。Label SecurityでGeoRasterを使用するには、次の基本ステップを実行します。
ポリシーを表に適用する前または後に、GeoRasterデータをロードできます。
ALL_SDO_GEOR_SYSDATAビュー(「GeoRasterシステム・データ・ビュー(xxx_SDO_GEOR_SYSDATA)」を参照)には、現行ユーザーがアクセス可能なすべてのGeoRasterオブジェクトに関するシステム・データが含まれます。この場合のアクセス可能性は、任意アクセス制御(DAC)のコンテキストで定義されたユーザーの権限によって決定されます。
GeoRaster表の行のラベルが更新されたら、各ラベルが同期するように、RDTの関連するデータ・ラベルも更新される必要があります。
Label Securityの詳細は、『Oracle Label Security管理者ガイド』を参照してください。