スキーマ
スキーマ
データベース構造の定義。
基本スキーマファイル
core.schema | OpenLDAPのコアスキーマ(必須) |
---|---|
cosine.schema | CosineとInternet X.500スキーマ(RFC1274) |
inetorgperson.schema | 人に関した定義に関するスキーマ(RFC2798) |
corba.schema | CORBAスキーマ(RFC2714) |
nis.schema | NIDに関するスキーマ(RFC2307) |
java.schema | JAVAに関するスキーマ(RFC2713) |
openldap.schema | OpenLDAP Projectの実験用スキーマ |
misc.schema | その他の実験的なスキーマ |
ppolicy.schema | パスワードポリシーの為の開発中のスキーマ |
オブジェクトクラスと属性
- 各スキーマ要素は、全世界的に一意のOID(Object Identifier: オブジェクト識別子)によって管理されている。
- オブジェクトクラスはobjectclassにより定義される。
- オブジェクトクラスには、ABSTRACT・STRUCTURAL・AUXILIARYの3つの構造型がある。
- オブジェクトクラスにはMUST属性(必須属性)、MAY属性(許可属性)が指定できる。
- 属性はattributetypeにより定義される。
- 属性の検索方法の定義を照合規則といい、EQUALITY・ORDERING・SUBSTRの3つがある。
- 属性のデータ型はSYNTAXに、OIDを使って指定する。
OIDの概要
- 全世界的に一意で無ければならない。
- IANA(Internet Assigned Numbers Authority)によって管理されている。
オブジェクトクラスの定義
objectclassディレクティブを利用
objectclass ( 2.5.6.6 NAME 'person' ← OIDと名前の定義: OID NAME objectclass名 DESC 'RFC2256: a person' ← オブジェクトクラスの説明 SUP top STRUCTURAL ← オブジェクトクラスの形式 MUST ( sn $ cn ) ← 必須属性 MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) ← 許可属性
- SUPには基底オブジェクトクラスを指定する。指定したオブジェクトクラスの機能が、継承されて利用される。personはtopというクラスを継承している。
オブジェクトクラスの構造型
ABSTTACT(抽象型) | 他のオブジェクトクラスの基底クラスとして使われるオブジェクトクラス |
---|---|
STRUCTUAL(構造型) | ディレクトリ構造を作る事ができるオブジェクトクラス。各エントリには必ず1つの構造型オブジェクトクラスが必要。 |
AUXILIARY(補助型) | 構造型と組み合わせる事で属性を追加する事が出来るオブジェクトクラス。単独でディレクトリ構造を形成する事はできない。 |
属性の定義
attributetypeディレクティブを利用。
attributetype ( 2.5.4.5 NAME 'serialNumber' ← OIDと属性の名前の定義 DESC 'RFC2256: serial number of the entity' ← 属性の説明 EQUALITY caseIgnoreMatch ← 照合規則の設定 SUBSTR caseIgnoreSubstringsMatch ← 照合規則の設定 SYNTAX 1.3.6.1.4.1.1466.115.121.1.44{64} ) ← 属性のデータ型の設定
照合規則
- 属性の検索をどのような方法で行うかについての定義。
- 1つの属性には、必ず1つ以上の照合規則が定義されてなければならない。
照合規則の型
EQUALITY(同値照合) | 文字列や値の全体に対して照合を行う。 |
---|---|
ORDERING(順序照合) | 値の大小や文字列の順序を使って照合を行う。 |
SUBSTR(部分文字列照合) | 文字列の一部分に対して照合を行う。 |
EQUALITY型の照合規則の例
booleanMatch | 真偽(0/1)として照合 |
---|---|
caseIgnoreMatch | 英大小文字を区別せず、スペースを無視して照合。 |
caseExactMatch | 英大小文字を区別し、スペースを無視して照合。 |
distinguishedNameMatch | 識別名(DN)として照合。 |
intergerMatch | 整数として照合。 |
numbericStringMatch | 数値として照合。 |
octetStringMatch | オクテット文字列として照合。 |
objectidentiferMatch | OIDとして照合。 |
ORDERING型の照合規則の例
caseIgnoreOrderingMatch | 英大小文字を区別せず、スペースを無視して照合。 |
---|---|
caseExactOrderingMatch | 英大小文字を区別し、スペースを無視して照合。 |
intergerOrderingMatch | 整数として照合。 |
numericStringOrderingMatch | 数値として照合。 |
octetStringOrderingMatch | オクテット文字列として照合。 |
SUBSTR型の照合規則の例
caseIgnoreSubstringsMatch | 英大小文字を区別せず、スペースを無視して照合。 |
---|---|
caseExactSubstringsMatch | 英大小文字を区別し、スペースを無視して照合。 |
numericStringSubstringsMatch | 数値として照合。 |
octetStringSubstringsMatch | オクテット文字列として照合。 |
SYNTAX
- SYNTAXには属性がどのようなデータ型をとるか指定する。
- 指定にはOID(属性のOIDとは別物)を利用する。
SYNTAXに指定できるデータ型のOID
1.3.6.1.4.1.1466.155.121.1.7 | 真偽値 |
---|---|
1.3.6.1.4.1.1466.155.121.1.12 | DN形式の文字列 |
1.3.6.1.4.1.1466.155.121.1.15 | Unicode(UTF-8)文字列 |
1.3.6.1.4.1.1466.155.121.1.26 | ASCII文字列 |
1.3.6.1.4.1.1466.155.121.1.27 | 整数値 |
1.3.6.1.4.1.1466.155.121.1.34 | DNよびUID |
1.3.6.1.4.1.1466.155.121.1.36 | 数値文字列 |
1.3.6.1.4.1.1466.155.121.1.38 | OID形式の文字列 |
1.3.6.1.4.1.1466.155.121.1.40 | 任意のオクテット文字列 |
1.3.6.1.4.1.1466.155.121.1.44 | 表示可能な文字列 |
1.3.6.1.4.1.1466.155.121.1.50 | 電話番号 |
拡張スキーマ
slaptest
構文
slaptest [オプション]
オプション
-d 数 | デバッグレベルを指定する。 |
---|---|
-f ファイル名 | slapd.confの代わりに利用する設定ファイルを指定する。 |
-u | dry-runモードで検査を行う(データベースがオープンできなくても設定が正しければエラーを返さない)。 |
-v | 冗長モードで実行する。 |