スキーマ

スキーマでは、ツリー内に作成できるオブジェクトのタイプ(ユーザ、プリンタ、グループなど)、およびオブジェクトの作成時に指定する必須情報とオプション情報が定義されます。各オブジェクトには、そのオブジェクトタイプのスキーマクラスが定義されています。

製品に元から付属しているスキーマは、ベーススキーマといいます。新しいクラスや属性の追加など、なんらかの形でベーススキーマが変更されると、そのスキーマは拡張スキーマとみなされます。

スキーマは必ずしも拡張する必要はありませんが、拡張も可能です。iManagerのスキーマ役割を使用すれば、運用条件に合わせてスキーマを拡張できます。たとえば、従業員に特殊な履き物が必要で、従業員の靴のサイズを記録しなければならない場合などに、スキーマを拡張します。この場合は、「靴のサイズ」という属性を新たに作成し、ユーザクラスに追加します。

詳細については、「スキーマの管理」を参照してください。


スキーマ管理

Novell iManagerのスキーマ役割によって、ツリーへのスーパバイザ権を持っているユーザは、そのツリーのスキーマをカスタマイズできます。スキーマ役割、およびその関連タスクは、iManagerの役割およびタスクページに表示されています。

スキーマ役割の使用目的


スキーマクラス、属性、および構文


クラス

クラスとは、ディレクトリオブジェクトのテンプレートのようなものです。ディレクトリオブジェクトとは、データを挿入されたクラスです。つまり、次のように表すことができます。

CLASS + DATA = DIRECTORY OBJECT

各クラスは、クラス名、継承クラス(そのクラスがクラス階層の最上位である場合を除く)、クラスフラグ、および属性のグループを持っています。クラスは、ディレクトリオブジェクト(ユーザ、プリンタ、キュー、サーバなど)と同じように命名されますが、単なる構造であり内容はありません。

継承クラスとは、他のオブジェクトクラスを定義するときの開始点となるクラスです。継承クラスの属性はすべて、クラス階層でそのクラスの下位に位置するクラスへ継承されます。

クラス階層は、あるクラスがどのようにペアレントクラスと関連付けられているかを示します。クラス階層により、類似したクラスが関連付けられ、属性の継承が可能になります。また、クラスを格納できる有効なコンテナのタイプも定義されます。

クラスの作成時には、クラス階層と追加属性を使用して各クラスをカスタマイズできます。継承クラスを指定することによって、階層内の上位のクラスからその属性とフラグのすべてを新しいクラスに継承できます。さらに、継承された属性クラスに追加する属性を1つまたは複数選択することによって、新しいクラスをカスタマイズできます。追加の属性は、必須属性、ネーミング属性、またはオプション属性として選択できます。

オプションの属性を追加して、既存のクラスを変更することもできます。


属性

属性とは、eDirectoryデータベース内のデータフィールドのことです。たとえば、クラスが記入用紙のようなものだとすれば、属性は記入用紙における1つの記入欄です。属性は、作成時に、名前(社員番号など)を付けられ、構文のタイプ(文字列数字など)が指定されます。その後、その属性はスキーママネージャの属性リストで使用できるようになります。


構文

構文にはいくつかの選択可能なオプションがあります。これらの構文オプションは、各属性で入力するデータのタイプを指定するために使用されます。構文は属性の作成時にのみ指定できます。後から構文を変更することはできません。利用可能な構文は次のようなものです。

  • バックリンク

    オブジェクトを参照する他のサーバの追跡に使用されます。また、eDirectoryの内部管理目的で使用されます。

  • ブール

    TRUE(1)またはFALSE(0)の値をとる属性に使用されます。この構文タイプには、単一の値のフラグが設定されます。

  • 大文字小文字を区別する文字列

    比較演算で大文字/小文字が区別されるUnicode文字列を値としてとる属性に使用されます。2つの「大文字小文字を区別する文字列」は、長さが等しく、対応する文字(大文字/小文字の区別を含む)が同一の場合に一致とみなされます。

  • 大文字小文字を無視するリスト

    比較演算で大文字/小文字が区別されないUnicode文字列の順序列を値としてとる属性に使用されます。2つの「大文字小文字を無視するリスト」は、文字列の数が等しく、対応するすべての文字列が同じ場合(つまり、長さと対応する文字が同一の場合)に一致とみなされます。

  • 大文字小文字を無視する文字列

    比較演算で大文字/小文字が区別されないUnicode文字列を値としてとる属性に使用されます。2つの「大文字小文字を無視する文字列」は、長さが等しく、対応する文字があらゆる面で(ただし、大文字/小文字の区別を除く)同一の場合に一致とみなされます。

  • クラス名

    オブジェクトクラスの名前を値としてとる属性に使用されます。2つのクラス名は、長さが等しく、対応する文字があらゆる面で(ただし、大文字/小文字の区別を除く)同一の場合に一致とみなされます。

  • カウンタ

    増分変更された符号付き整数を値としてとる属性に使用されます。カウンタによって定義された属性は、単一の値の属性です。カウンタは、この構文の属性に値が追加されると足し算で合計に追加され、この構文の属性から値が削除されると引き算で合計から差し引かれるという点で、整数とは異なります。

  • 識別名

    eDirectoryツリー内のオブジェクト名を値としてとる属性に使用されます。DN(識別名)では大文字/小文字が区別されませんが、ネーミング属性の1つでは大文字/小文字が区別されます。

  • 電子メールアドレス

    バイナリ情報の文字列を値としてとる属性によって使用されます。eDirectoryは、この構文の内容の内部構造については想定しません。

  • Fax番号

    国際電話番号と、推奨T.20に従って形式設定されたオプションのビット文字列の格納を規定するE.123標準に準拠した文字列を指定します。2つのFax番号値は、長さが等しく、対応する文字列が同一(ただし、比較処理で無視されるスペースとハイフンを除く)の場合に、一致とみなされます。

  • 保持

    符号付き整数の値を持つアカウント数量の属性に使用されます。この構文は、アカウント数量(トランザクションが完了するまでの間、サブジェクトのクレジット限度に対して暫定的に保持される金額)を表します。保持量は、カウンタ構文と同じように扱われ、新しい値がベース合計に加算されるか、ベース合計から減算されます。計算された保持量が0になると、保持レコードは削除されます。

  • 整数

    符号付き数値として表される属性に使用されます。2つの整数値は、値が同一である場合に一致とみなされます。順序付けの比較では、符号付き整数ルールが使用されます。

  • 間隔

    符号付き整数を値としてとり、時間の間隔を表す属性に使用されます。間隔構文では、整数構文と同じ表現が使用されます。間隔値は、時間間隔での秒数を表します。

  • ネットアドレス

    サーバ環境でのネットワークレイヤアドレスを表します。このアドレスは、バイナリ形式です。2つのネットアドレスは、各アドレスのタイプ、長さ、および値が一致する場合に、一致とみなされます。

  • 数値文字列

    CCITT X.208定義で数値文字列として定義されている数値整数を値としてとる属性に使用されます。2つの数値文字列は、長さが等しく、対応する文字が同一の場合に一致とみなされます。数値文字列文字セットにおいて有効な文字は、数字(0〜9)およびスペースのみです。

  • オブジェクトACL

    アクセス制御リスト(ACL)エントリを表す値をとる属性に使用されます。オブジェクトACL値は、オブジェクトを保護する場合と、属性を保護する場合があります。

  • オクテットリスト

    バイナリ情報またはオクテット文字列の順序付き文字列シーケンスを表します。オクテットリストは、保存済みリストのサブセットである場合に、保存済みリストと一致するとみなされます。2つのオクテットリストは、長さが等しく、対応するビット列(オクテット)が同一の場合に一致とみなされます。

  • オクテット文字列

    eDirectoryによって解釈されないバイナリ情報の文字列を値としてとる属性に使用されます。これらのオクテット文字列は、非Unicode文字列です。2つのオクテット文字列は、長さが等しく、対応するビット列(オクテット)が同一の場合に一致とみなされます。

  • パス

    ファイルシステムパスを表す属性であり、サーバ上でファイルを見つけるために必要なすべての情報が格納されます。2つのパスは、長さが等しく、対応する文字(大文字/小文字の区別を含む)が同一の場合に、一致とみなされます。

  • 住所

    住所を表すUnicode文字列を値としてとる属性に使用されます。通常、住所の属性値は、推奨F.401に従ってMHS Unformatted Postal O/R Address Specificationバージョン1から選択された属性で構成されます。この値は、30文字6行(国名を含む)に制限されます。2つの住所は、文字列の数が等しく、対応するすべての文字列が同じ場合(つまり、長さと対応する文字が同一の場合)に一致とみなされます。

  • 印刷可能文字列

    CCITT X.208に定義されている印刷可能文字列を値としてとる属性に使用されます。印刷可能文字セットは、次のものから構成されます。

    • 英大文字および英小文字
    • 数字(0〜9)
    • スペース
    • アポストロフィ(')
    • 左カッコおよび右カッコ( )
    • プラス記号(+)
    • コンマ(,)
    • ハイフン(-)
    • ピリオド(.)
    • スラッシュ(/)
    • コロン(:)
    • 等号(=)
    • 疑問符(?)

    2つの印刷可能文字列は長さが等しく、対応する文字が同一の場合に一致とみなされます。大文字/小文字は区別されます。

  • レプリカポインタ

    パーティションレプリカを表す値をとる属性に使用されます。eDirectoryツリーのパーティションでは、複数のサーバにレプリカを置くことができます。この構文は、次の6つのコンポーネントで構成されます。

    • サーバ名
    • レプリカタイプ(マスタ、セカンダリ、読み込み専用、サブオーディネートリファレンス)
    • レプリカ番号
    • レプリカルートID
    • アドレスの数
    • アドレスレコード
  • ストリーム

    任意のバイナリ情報を表します。ストリーム構文を使用すると、ファイルサーバ上のファイルからeDirectory属性を作成できます。この構文は、ログインスクリプトやその他のストリーム属性で使用されます。ストリームファイルに格納されているデータには、構文は一切適用されません。この構文は単に任意のデータであり、個別のアプリケーションで作成、定義および使用されます。

  • 電話番号

    電話番号を値としてとる属性に使用されます。電話番号は、1〜32文字の長さの文字列です。2つの電話番号は、長さが等しく、対応する文字列が同一(ただし、比較処理で無視されるスペースとハイフンを除く)の場合に、一致とみなされます。

  • 時間

    符号なし整数を値としてとり、秒単位の時間を表す属性に使用されます。

  • タイムスタンプ

    特定のイベントが発生した時刻を示す値をとる属性に使用されます。特定のイベントが発生すると、eDirectoryサーバによってタイムスタンプ値が生成され、そのイベントに関連付けられます。各タイムスタンプ値は、eDirectoryパーティション内で固有です。これにより、同一パーティションのレプリカを保持しているすべてのサーバで発生したイベントを1つにまとめて順序付けできます。

  • タイプ付きの名前

    オブジェクトに関連付けられたレベルおよび間隔を表す値をとる属性に使用されます。この構文は、eDirectoryオブジェクトを指定し、次の2つの数値を当該オブジェクトにアタッチします。

    • 優先番号を示す属性レベル
    • イベント間の秒数、または参照の頻度を表す間隔
  • 不明

    スキーマから削除されている属性定義をもつ属性に使用されます。この構文は、バイナリ情報の文字列を表します。


必須属性およびオプション属性について

オブジェクトにはどれも、オブジェクトのタイプに合わせて定義されたスキーマクラスがあります。クラスとは、意味のある方法で組織された属性のグループを指します。これらの属性の一部は必須で、一部はオプションです。


必須属性

必須属性とは、オブジェクトの作成時に指定する必要がある属性です。たとえば、社員番号が必須属性であるユーザクラスで新しいユーザを作成する場合、社員番号を入力せずに新しいユーザオブジェクトを作成することはできません。


オプション属性

オプション属性とは、必要に応じて指定できる属性を指します。たとえば、ニックネームがオプション属性となっているユーザクラスで新しいユーザオブジェクトを作成するとします。この場合、この属性が入力されてもされなくてもユーザオブジェクトは作成できます。属性を入力するかどうかは、新しいユーザにニックネームが付けられているかどうかに左右されます。

例外的にオプション属性が命名に使用される場合がありますが、その場合は属性が必須になります。


スキーマのサンプル

図 12は、スキーマの一部の例で、基本のスキーマに類似しているかもしれません。この図は、組織クラスについての情報を表しています。この画面に表示されているほとんどの情報は、クラスが作成されたときに指定されたものです。オプションの属性のいくつかは後に追加されました。

[ベーススキーマの拡張オブジェクト]アイコン このアイコンは、ベーススキーマの拡張部分であるすべてのクラスおよび属性に割り当てられます。

図 12
iManagerのクラス情報ページ


スキーマを設計する

最初にスキーマの設計を行うと、長期的に見た場合、時間と労力を節約できます。ベーススキーマを表示して、それが実際の必要条件に見合うか、あるいは変更が必要かを判断できます。変更が必要な場合は、スキーママネージャを使用してスキーマを拡張します。詳細については、スキーマの拡張およびスキーマの表示を参照してください。