6.5 Oracle Data RedactionおよびJSON
リダクションされたデータでJavaScript Object Notation (JSON)を使用できます。
-
表の列に
is json
制約を作成できます。ただし、
is json
制約のある表の列にOracle Data Redactionポリシーを作成することはできません。これを試みると、ORA-28073 - The column column_name has an unsupported datatype
エラーが発生します。回避策として、JSONオブジェクトの上にJSON_TABLE
行ソース演算子使用するリレーショナル・ビューを作成し、このビューに対してデータ・リダクション・ポリシーを適用することをお薦めします。次の例は、
json_table
を使用してリレーショナル・ビューを作成し、このビューにデータ・リダクション・ポリシーを追加する方法を示しています。create table tab1 (c1 varchar2(4000) check (c1 is json)) insert into tab1 values ('{"id" : 4, "name" : "Large blue soda cup", "price" : 12, "tags" : ["large1", "green"], "phone" : "1-415-555-0100"}' ) create or replace view json_view1 as select t.* from tab1, json_table(c1, '$' columns id number path '$.id', name varchar2(20) path '$.name', price number path '$.price', phone varchar2(20) path '$.phone') t ;
ビューの所有者が列
phone
を問い合せた場合、この列はリダクションされません。これで、ビュー内の任意の列(phone
、price
など)にリダクション・ポリシーを追加できます。 - リダクションされたデータの上にJSON二面性ビューを作成できます。
ただし、この機能には制限があります。リダクションが有効な列は主キーにできず、二面性ビューのエンティティ・タグ(ETAG)の一部にもできません。