1.10 複数のスキーマが関係している場合のトポロジの使用方法および編集方法

このトピックでは、複数のデータベース・ユーザー(スキーマ)が関係する場合のトポロジの使用および編集に関する要件とガイドラインを説明します。

1.10.1 複数のスキーマが関係している場合のトポロジの使用方法

次の注意事項は、あるユーザーがトポロジを所有し、別のユーザーがトポロジ・ジオメトリ・レイヤー表を所有している場合に適用されます。これらの注意事項では、ユーザーAがCITY_DATAトポロジを所有し、ユーザーBがCITY_STREETSトポロジ・ジオメトリ・レイヤー表を所有していると想定しています。

  • トポロジの所有者はトポロジを作成し、メタデータを初期化する必要があります。この例では、ユーザーAがこれらの操作を行う必要があります。

  • トポロジに対してレイヤーを追加または削除できるのは、トポロジの所有者のみです。したがって、別のユーザーが所有する表をトポロジに追加する場合、またはこのような表をトポロジから削除する場合は、表名をスキーマ名で修飾する必要があります。たとえば、ユーザーAが、ユーザーBの所有するCITY_STREETS表をCITY_DATAトポロジに追加する場合は、次の文を使用します。

    EXECUTE SDO_TOPO.ADD_TOPO_GEOMETRY_LAYER('CITY_DATA', 'B.CITY_STREETS', 'FEATURE', 'LINE');
    

    ユーザーAが、ユーザーBの所有するCITY_STREETS表をCITY_DATAトポロジから削除する場合は、次の文を使用します。

    EXECUTE SDO_TOPO.DELETE_TOPO_GEOMETRY_LAYER('CITY_DATA', 'B.CITY_STREETS', 'FEATURE');
    
  • トポロジの所有者は、トポロジ・ジオメトリ・レイヤー表の所有者に、ノード、エッジおよびフェイスの情報表に対するSELECTまたはREAD権限を付与する必要があります。たとえば、ユーザーAは、CITY_DATA_NODE$表、CITY_DATA_EDGE$表およびCITY_DATA_FACE$表に対するSELECT権限をユーザーBに付与する必要があります。

  • トポロジ・ジオメトリ・レイヤー表の所有者は、その表に対するSELECT権限およびINDEX権限をトポロジの所有者に付与する必要があります。たとえば、ユーザーBは、CITY_STREETS表に対するSELECT権限およびINDEX権限をユーザーAに付与する必要があります。

    また、トポロジ・ジオメトリ・レイヤー表の所有者は、その表にアクセスする必要のある他のユーザーに適切な権限を付与する必要があります。読取り専用アクセスの場合は、表に対するSELECT権限をユーザーに付与し、読取り/書込みアクセスの場合には、INSERT権限、SELECT権限およびUPDATE権限を付与します。

1.10.2 複数のスキーマが関係している場合のトポロジの編集方法

次の注意事項は、あるユーザーがトポロジを所有し、別のユーザーがそのトポロジを編集する場合に適用されます。これらの注意事項では、ユーザーAがCITY_DATAトポロジを所有し、ユーザーBがそのトポロジを編集すると想定しています。

  • トポロジの所有者はトポロジを編集するユーザーに、ノード、エッジ、フェイスおよび関係の情報表に対するINSERT権限、SELECT権限およびUPDATE権限を付与する必要があります。また、トポロジのプリミティブのID番号の生成に使用するノード、エッジおよびフェイスの順序に対するSELECT権限も付与する必要があります。たとえば、ユーザーAは、次の権限をユーザーBに付与します。これらの権限では、表名は$で終わり、順序名は_Sで終わります。

    GRANT insert,select,update ON city_data_node$ TO b;
    GRANT insert,select,update ON city_data_edge$ TO b;
    GRANT insert,select,update ON city_data_face$ TO b;
    GRANT insert,select,update ON city_data_relation$ TO b;
    GRANT select ON city_data_node_s TO b;
    GRANT select ON city_data_edge_s TO b;
    GRANT select ON city_data_face_s TO b;
    
  • トポロジを所有しないユーザーがそのトポロジを編集する場合、所有者のスキーマ名は、入力パラメータとしてトポロジ名を受け入れるファンクションおよびプロシージャでトポロジ名を使用して指定する必要があります。たとえば、ユーザーBはトポロジを単にCITY_DATAとしてではなく、A.CITY_DATAとして指定する必要があります。

関連項目: