Interstage Application Server Smart Repository運用ガイド
目次 索引 前ページ次ページ

第1章 概要> 1.4 Smart Repositoryの主な機能

1.4.4 エントリ管理

 Smart Repositoryでは、以下を使用してデータベースへのエントリの追加、および登録済みのエントリの更新をします。


 Smart Repositoryでは、エントリの更新時にスキーマのチェックを行いません。
 このため、エントリ内の必須属性を削除する、オブジェクトクラスに本来追加してはならない属性を追加してしまうなどの、不適切なエントリの更新を行うと、リポジトリ内の情報が矛盾した状態になってしまいます。エントリの更新を行う場合は、十分に確認して行ってください。

エントリの操作

コマンド

 リポジトリのエントリ情報は、コマンドを使用して操作します。
 コマンドには、日本語(Shift JIS、EUC)を指定することができます。また、エントリのバイナリデータ(jpegPhotoなど)を操作することができます。

 コマンドには、以下の4つがあります。

 このうち、ldapmodify、ldapsearch、ldapdeleteコマンドは、SSL機能をサポートしており、SSL機能を使用する場合は、安全に通信することができます。
 コマンドの使用方法については、“リファレンスマニュアル(コマンド編)”の“Smart Repository運用コマンド”を参照してください。

コマンドの機能

 コマンドを使用して操作できる機能を以下に示します。

コマンドの機能

内容

エントリ情報の追加

リポジトリにエントリ情報を追加します。
irepmodifyentコマンド、ldapmodifyコマンドを使用します。

エントリ情報の更新

リポジトリのエントリ情報を更新します。
irepmodifyentコマンド、ldapmodifyコマンドを使用します。

エントリ情報の削除

リポジトリのエントリを削除します。
ldapdeleteコマンドを使用します。また、irepmodifyentコマンド、ldapmodifyコマンドでも削除することができます。

エントリ情報の検索

リポジトリのエントリ情報を検索します。
ldapsearchコマンドを使用します。

 コマンドの機能の詳細については、“コマンドを使用する”を参照してください。

エントリ管理ツー

 エントリ管理ツールは、リポジトリに登録されているエントリを管理するためのGUIです。
 エントリ管理ツールを使用することにより以下のようなエントリの操作をすることができます。

エントリの操作

内容

エントリ追加

エントリを追加するためにエントリ追加画面を起動し、値を入力することにより接続しているリポジトリにエントリを登録することができます。

エントリ更新

エントリを更新するためにエントリ更新画面を起動し、値を入力することにより接続しているリポジトリにエントリを更新することができます。

エントリ削除

削除したいエントリを選択し、接続しているリポジトリからエントリを削除することができます。

検索

接続しているリポジトリに対してエントリを検索することができます。
検索条件を作成し、指定した検索開始位置から検索します。検索で抽出したエントリを結果として表示します。
また、抽出したエントリに対して更新・削除・名前の変更の操作を行うことができます。

名前の変更

接続しているリポジトリ内のエントリを選択し、エントリ名を変更することができます。

移動

接続しているリポジトリ内でエントリを移動することができます。

コピー

接続しているリポジトリ内でエントリをコピーすることができます。

表示モード

一覧表示域に表示される表示形式を変更することができます。

表示オプション

管理ツールの表示に関するオプションを設定することができます。

SDK

 Application Server上でSmart RepositoryサーバにアクセスするLDAPのアプリケーションを開発することができます。開発言語として、C言語とJava言語が利用できます。詳細については、“アプリケーションの作成(C API)”または“アプリケーションの作成(JNDI)”を参照してください。

エントリの検索

 エントリの検索操作は、以下のように行います。

  1. 検索範囲を指定して情報を絞り込みます。
  2. 検索範囲内の各エントリの属性値に対して、フィルタ条件を指定して一致したものだけを取り出します。

 検索範囲、およびフィルタについて以下に示します。

検索範囲

 検索する指定範囲には、以下の3種類があります。

検索範囲

内容

ベースオブジェクト検

指定したエントリそのものを検索します。

ワンレベル検

指定したエントリの1階層下を検索します。

サブツリー検

指定したエントリとその階層配下すべてを検索します。

フィルタ

 フィルタには、以下の5つを指定することができます。

フィルタ

内容


(equal)

指定した値と同じ属性値がある場合に、取り出します。

部分文字
(substring)

指定した部分文字列を含む属性値がある場合に、取り出します。
部分文字列には、前方一致、後方一致、任意一致、およびこれらを組み合わせて指定することができます。

より大き
(greater)

指定した値より大きい値の属性値がある場合に、取り出します。

より小さ
(less)

指定した値より小さい値の属性値がある場合に、取り出します。


(present)

属性値がある場合に、取り出します。

 また、上記の各フィルタを組み合わせることで、より詳細に指定することができます。以下に組み合わせに使用する論理演算を示します。

論理演算

内容

論理
(AND)

複数のフィルタを論理積(AND)条件で結びます。
すべての条件が真の場合に、有効となります。

論理
(OR)

複数のフィルタを論理和(OR)条件で結びます。
いずれかの条件が真の場合に、有効となります。

特殊文字を含むDNの指

 コマンド、SDKで、DNに特殊文字を指定するには、その特殊文字の前に“\”(エンマーク)を置いてエスケープするか、または“"”(ダブルクォーテーション)で囲む必要があります。
 エスケープが必要な特殊文字を以下に示します。

エスケープが必要な特殊文字を含むDNを指定する場合の例を以下に示します。

cn=a\b,o=Fujitsu, Inc.,c=jp

コマンドの場合

 コマンドの場合は、特殊文字をエスケープし、さらに、その特殊文字を含む属性値を“"”(ダブルクォーテーション)で囲む必要があります。

cn="a\\b",o="Fujitsu\, Inc.",c=jp

SDK(C API)の場合

 LDAP、C言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 “\”を含むcn属性を指定するとします。

a\b

 LDAPの規約により“\”をエスケープする必要があります。

cn=a\\b

 C言語の仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。

char *name1 = "cn=a\\\\b";

 同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。

char *name2 = "cn=a\\,b";
char *name3 = "cn=a\\\"b";

 最初の例をC言語で使用する場合は、次のように記述します。

char *name = "cn=a\\\\b,o=Fujitsu\\, Inc.,c=jp";

SDK(JNDI)の場合

 LDAP、JNDI、Java言語それぞれで、“\”(エンマーク(バックスラッシュ))文字を特殊文字と扱います。いくつか例を示します。

 “\”を含むcn属性を指定するとします。

a\b

 LDAPの規約により“\”をエスケープする必要があります。

cn=a\\b

 JNDIの仕様により、この名前を指定するために、それぞれの“\”をエスケープする必要があります。

cn=a\\\\b

 Java言語の仕様により、この名前を文字列リテラルとして指定するために、それぞれの“\”をエスケープする必要があります。

String name1 = "cn=a\\\\\\\\b";

 同様に、“,”(カンマ)、“"”(ダブルクォーテーション)の場合はそれぞれ次のようになります。

String name2 = "cn=a\\\\,b";
String name3 = "cn=a\\\\\"b";

 最初の例をJNDIで使用する場合は、次のように記述します。

String name = "cn=a\\\\\\\\b,o=Fujitsu\\\\, Inc.,c=jp";

日本語を含むDN、属性値の指

 コマンド、エントリ管理ツール、およびSDKでは、DNおよび属性値に日本語を含む文字列を指定することができます。

コマンドの場合

 オプションで文字コード系を指定します。
 詳細については、“リファレンスマニュアル(コマンド編)”の“Smart Repository運用コマンド”を参照してください。

エントリ管理ツールの場合

 エントリ管理ツールの[エントリ追加]および[エントリ更新]などの画面上では、入力フィールドに直接、日本語を入力します。
 [移入]、[移出]では、画面上の文字コード系を選択するボタンがあります。
 詳細については、エントリ管理ツールのヘルプを参照してください。

SDK(C API)の場合

 UTF-8形式に変換するための関数を使用してUTF-8形式に変換する必要があります。
 詳細については、“エンコード/デコード処理”を参照してください。

SDK(JNDI)の場合

 特に意識する必要はありません。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005