データ パーティションをセットアップする方法

データ パーティションは個別の連絡先に割り当てることができますが、アクセス タイプに基づいて割り当てることをお勧めします。 データ パーティションをさまざまなアクセス タイプに関連付けた後、特定のアクセス タイプに連絡先を関連付けて、その連絡先のデータ パーティションを定義できます。 アクセス タイプは、連絡先データ パーティションを無効化する特殊なオプションを備えています。
casm173
データ パーティションは個別の連絡先に割り当てることができますが、アクセス タイプに基づいて割り当てることをお勧めします。 データ パーティションをさまざまなアクセス タイプに関連付けた後、特定のアクセス タイプに連絡先を関連付けて、その連絡先のデータ パーティションを定義できます。 アクセス タイプは、連絡先データ パーティションを無効化する特殊なオプションを備えています。
アクセス タイプにデータ パーティションを関連付けるには、サイトにとってわかりやすいデータ パーティションをセットアップし、アクセス タイプを定義または変更するときにその中から 1 つ選択します。
ほかの CA SDM セキュリティ設定が、データ パーティションよりも優先されることがあります。
データ パーティションは CA SDM データベースのサブセットであり、チケットやその他のデータ レコードに対するユーザ アクセスをコンテンツに基づいて制御します。
たとえば、ユーザによるデータベース参照を、ユーザの組織に割り当てられた構成アイテムに限定できます。 また、ユーザによる更新を、割り当てられたチケットのみに制限し、ほかの構成アイテムに対しては読み取り専用アクセスのみを許可することもできます。
データ パーティションは、制約のセットで構成されます。 データ パーティションの制約は、データ パーティションと制約タイプで管理されているテーブルを識別します。 制約タイプは、作成、削除、更新、表示など、データ パーティション内でユーザが実行できる操作を指定します。 まずデータ パーティションをアクセス タイプに割り当てて、次にこのアクセス タイプをユーザの連絡先レコードに割り当てます。制約および制約タイプを使用して、CA SDM データベース テーブル内のレコードに対するユーザのアクセスを管理します。
また、これらを使用して、データ パーティションとは別に制約を表示できます。 たとえば、データ パーティションとは関係なく、特定のテーブルのすべての制約を表示できます。
以下の手順に従います。
前提条件の確認
データ パーティションをセットアップする前に、以下の前提条件を確認します。
データ セキュリティ構造とポリシー
データ セキュリティの計画には、データベースの特定部分へのアクセスに対する制限の適用が含まれます。 これらの制限は、役割またはアクセス タイプのいずれかによって個別の連絡先に強制的に適用できます。
  • ロール
    役割のユーザがアクセスを許可される機能を定義します。 個別の連絡先レコード、またはアクセス タイプに 1 つ以上の役割を割り当てて、連絡先に関連付けられているすべてのアクセス タイプに対して機能へのアクセスを定義できます。
  • アクセス タイプ
    連絡先が Web インターフェースにログインする場合の認証方法を定義します。 たとえば、アクセス タイプは、Web Screen Painter を使用して、連絡先が Web フォームまたはデータベース スキーマを変更できるかどうか、どの役割が連絡先に使用可能かを決定します。
Service Desk 管理者は、事前定義済みのアクセス タイプを変更でき、また新規に作成できます。 役割を通して個別のユーザまたはユーザのグループに制限を適用できます。
以下を識別します。
  • オブジェクト、およびこれらのオブジェクトに強制的に適用する制限のタイプ。
  • データ パーティションを適用するユーザと役割。 データ パーティションは、連絡先に直接適用できまが、役割に基づいてデータ パーティションを割り当て、すべての連絡先にこの役割を直接またはアクセス タイプを通して割り当てることをお勧めします。
データ パーティションのセットアップ仕様
データ パーティションは無制限に定義できます。 各データ パーティションは、データ パーティションで制限する各データベース テーブルに対する制約と検証のセットです。 データ パーティションの各テーブルに対しては、SQL WHERE 節と同様の形式で指定する基準によって、レコードの表示、更新、作成、または削除の独立した権限を指定できます。 アクセスするレコードや結合するレコードの任意の属性に対し、ユーザの連絡先レコードにある任意のデータを使用して制限を設定できます。 この設定により、データ パーティションを定義する際の柔軟性が大幅に高まります。 たとえば、連絡先テーブルのベンダー フィールドを使用すると、CA SDM への直接アクセスを許可されたベンダーに対してデータ パーティションの制限を設定できます。
CA SDM では、パフォーマンス上の理由により、データ パーティションの制約に直積結合を使用できません。 直積結合は、「OR」を含む制約の結果であり、すべての結合テーブルを OR の両辺の指定で完全に制限します。 データ パーティションの制約が直積結合にならないように充分に注意して、以下のコマンドを入力します。
  • Windows
    bop_cmd -f $NX_ROOT\bopcfg\interp\bop_diag.frg "check_queries()"
  • UNIX
    bop_cmd -f $NX_ROOT/bopcfg/interp/bop_diag.frg "check_queries()"
このプログラムでフラグを設定するデータ パーティションは、適切に更新する必要があります。
制約の指定
Majic でオブジェクト定義用のメタ言語を使用して、制約と検証テストを指定します。
Majic で定義する制約は、SQL WHERE 節に非常に似ていますが、以下のような違いがあります。
  • 制約内に記述する属性名には、オブジェクト属性名を指定し、スキーマから取得したデータベースの属性名は使用しません。
  • 以下の形式で名前を指定すると、ログイン ユーザの連絡先レコードの属性値を参照できます。
    att_name
    は、目的の属性の Majic 名です。
    @root.att_name
    たとえば、@root.location を指定すると、現在の連絡先のロケーション ID が参照されます。
    結合は、以下の形式で指定します。
    foreign-key
    は、データ パーティション制約を記述するテーブルの SREL 属性の Majic 名です。
    attribute-in-referenced-table
    は、結合するテーブルの属性の Majic 名です。
    foreign-key.attribute-in-referenced-table
    たとえば、インシデント レポートに関連付けられたアセットの保守ベンダーを参照するには、以下のように指定します。
    resource.vendor_repair
    これは再帰的指定です。 たとえば、以下のように指定すると、ベンダーの名前を参照できます。
    resource.vendor_repair.name
Change_Request テーブル(変更要求情報の保存に使用)に適用できる有効な制約の例を以下の表に示します。
制約タイプ
コードと説明
表示
assignee.organization = @root.organization
この指定では、ユーザは担当者の組織がユーザの組織と同じである変更要求のみを表示できます。
更新前
requestor = @root.id
この指定では、ユーザは自分自身がコール元または依頼者である変更要求のみを更新できます。
ただし、以下の例のような式の両辺で結合を使用する制約は記述できません。
assignee.org = requestor.org
役割に基づいた権限へのナレッジ管理データ パーティションの制約の設定
デフォルトで CA SDM 内のグループと役割の権限を使用するには、ナレッジ管理データ パーティションを有効にします。 以前のリリースからアップグレードしている場合は、マイグレーション ツールがデータ パーティションの制約を更新します。
以前のリリースで、カスタム データ パーティションの制約を使用してナレッジ許可を管理していた場合は、O_INDEXES テーブルと SKELETONS テーブルの制約を手動で更新してください。 環境に応じてデフォルトのデータ パーティションの制約を表示して変更を適用することができます。
以下の手順に従います。
  1. [管理]タブで、[セキュリティと役割の管理]-[データ パーティション]-[データ パーティションの制約]を選択します。
    [データ パーティションの制約リスト]ページが開きます。
  2. [フィルタを表示]をクリックし、検索は以下の検索条件を使用します。
    • [データ パーティション]検索に「
      Service Desk アナリスト
      」と入力します。
    • [テーブル]検索に「
      O_INDEXES
      」と入力します。
  3. [制約]タブを変更して[表示の制約]タイプを編集し、以下のように「READ_PGROUP in @root.pgroups」を置換します。
    READ_PGROUP in @root.pgroups OR READ_PGROUP.[pgroup]contained_roles.role IN @root.id
  4. 制約を保存します。
  5. [制約]タブを変更して[削除の制約]タイプおよび[更新前の制約]タイプを編集し、以下のように「WRITE_PGROUP in @root.pgroups」を置換します。
    WRITE_PGROUP in @root.pgroups OR WRITE_PGROUP.[pgroup]contained_roles.role IN @root.role
  6. 制約を保存します。
  7. データ パーティション内の SKELETONS テーブルで、手順を繰り返して[表示の制約]、[削除の制約]、および[更新前の制約]を更新します。
    データ パーティション制約が更新されます。