ここでは,アクセス制御機能を使用した検索について説明します。なお,検索の詳細については,「4. オブジェクトの検索」を参照してください。
アクセス制御機能を使用している文書空間では,検索を実行したときに,ユーザが指定した問い合わせの条件を満たすオブジェクトの集合のうち,そのユーザが参照を許可されているオブジェクトだけを検索結果として取得させることができます。
このように,アクセス権を参照して,参照が許可されているオブジェクトだけを検索結果として取得する検索を,アクセス制御機能付き検索といいます。
アクセス制御機能付き検索の概要を次の図に示します。
図3-83 アクセス制御機能付き検索の概要
ユーザAは,オブジェクトXとオブジェクトYについて,参照権を持っていますが,オブジェクトZについては参照権を持っていません。このような場合に,ユーザAがアクセス制御機能付き検索を実行すると,検索結果集合のうちオブジェクトXとオブジェクトYだけが検索結果として返却されます。オブジェクトZについては,参照権がないため,ユーザAは検索結果としてオブジェクトZを取得できません。
DocumentBrokerでは,まずデータベースから検索条件を満たすオブジェクトの集合を取得します。そして,それぞれのオブジェクトに設定されているアクセス制御情報のパーミッションを取得します。これを検索を実行したユーザのユーザ情報と比較して,ユーザがアクセス権を持つオブジェクトだけを検索結果として返却します。
検索を実行して検索結果としてオブジェクトを取得するためには,そのオブジェクトに対してユーザは基本プロパティ参照権(PRIM_READ_PROPS)を与えられている必要があります。
ただし,全文検索を実行する場合,検索実行時にオブジェクトのコンテントを参照する必要があるため,基本コンテント参照権(PRIM_READ_CONTENTS)も必要になります。
アクセス制御機能付き検索は,アクセス権判定をする処理が増えるため,アクセス制御機能を使用しない場合の検索に比べて処理が遅くなります。
このため,DocumentBrokerでは,アクセス制御機能付き検索を実行するかどうかが選択できます。なお,検索実行時にアクセス権を参照しないで検索結果をユーザに返却する検索を,アクセス制御機能なし検索といいます。
アクセス制御機能付き検索を実行するか,アクセス制御機能なし検索を実行するかは,アクセス制御モードによって設定します。
アクセス制御モードには,次の2種類があります。
通常,アクセス制御モードは文書空間の設定に従って設定されており,アクセス制御機能を使用している文書空間では,デフォルトの設定としてアクセス制御機能付き検索モードが設定されています。変更する場合は,CdbrEqlStatement::ChangeACLModeメソッドで,アクセス制御機能なし検索モードに変更してください。
アクセス制御機能なし検索モードで検索を実行した場合,ユーザはパーミッションに関係なくオブジェクトを参照できます。したがって,文書空間の設計や文書管理の運用方法を決定する時に,セキュリティについて考慮しておくことが必要です。
なお,アクセス制御機能を使用していない文書空間では,アクセス制御機能付き検索モードを設定しても,アクセス制御機能なし検索モードに強制的に切り替わります。
アクセス制御機能付き検索を実行する場合の制限事項については,「4.8.4 アクセス制御機能付き検索を実行する場合の制限事項」を参照してください。