スキーマとは?
データの格納形態を定義するためのファイルで、データベースによく使われます。/etc/openldap/schema/*に格納されています。
スキーマファイルの構文は、RFC2552で、種別は、RFC2256で公開されています。
LDAPの主なスキーマ
LDAPのスキーマは、objectClassと、属性を定義しています。
openldapのコアスキーマ 必ず使用します。
基本的な属性とオブジェクトクラスを定義しています。
X.500で定義されているCosineスキーマ
人の情報を保存するために使われる。
NISとLDAPを併用するために必要な属性を定義するスキーマ
スキーマの中身
◆属性の定義
例としてcore.schemaのtelephoneNumber属性の構文を見てみます。
attributetype(2.5.4.20 NAME `telephoneNumber`
DESC `RFC2256: Telephone Number`
EQUALITY telephoneNumberMatch
SUBSTR telephoneNumberSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.50{32} )
属性を定義するスキーマの構文は、attributetypeから始まります。
2.5.4.20は、telephoneNumberをあらわすOID(オブジェクト識別子)です。 NAMEは、属性の名前を表します。
DESCは、この属性の説明です。
RFC2256の中のTelephone Numberの項にこのスキーマのフォーマットが 書かれているという意味です。
EQALITYは、照合規則をあらわします。
telephoneNumberMatchは、以下の規則を定義しています。
空白を無視する。大文字、小文字を区別しない等です。
SUBSTRは、部分比較に使われます。
検索条件にワイルドカードを使えるようにします。
SYNTAXは、データ型を定義するOIDです。
{}内の数字は、属性値の推奨される最小値です。
◆objectClassの定義
例として、core.schemaのpersonオブジェクトクラスの構文を見てみます。
objectClass (2.5.6.6 NAME `person`
DESC `RFC2256: a person
SUP top STRUCTURAL
MUST ( sn $ cn )
MAY ( userPassword $ telephoneNumber $ seeAlso $ description ))
このobjectClassのOIDと名前を表しています。
このobjectClassの説明です。RFC2256の a personの項に書かれています。
SUPは、このobjectClassが、top objectClassから派生したことを表しています。STRUCTURALは、構造型オブジェクトクラスであることを表しています。構造型とは、人や組織など実世界に存在するものという意味です。
MUSTは、必須属性を表しています。personオブジェクトクラスは、
データを保存する際、snとcn属性値を使わなければなりません。
MAYは、使用可能な属性を表しています。personオブジェクトクラスは、
データを保存する際、これら4つの属性を使用できます。
最終更新:2007年08月18日 18:39