3.15.4 パーミッションの種類

アクセス制御情報は,サブジェクトとパーミッションの組み合わせで構成されます。ここでは,アクセス制御情報に設定できるパーミッションの種類について説明します。

パーミッションは,実行可能な操作の範囲を表す値です。アクセス制御情報として設定するパーミッションは,用途によって,次の3種類に分けられます。

ユーザ権限はユーザ権限定義ファイルで定義します。このファイルで定義するパーミッションについては,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。

ここでは,ACFlagおよびACLで指定できるパーミッションの種類について説明します。

<この項の構成>
(1) パーミッションの種別
(2) 基本パーミッション
(3) 組み合わせパーミッション
(4) アクセス制御情報変更権

(1) パーミッションの種別

パーミッションの種別には,次のものがあります。

個々のオブジェクトに対する操作を許可するパーミッション(ACFlagやACLに指定するパーミッション)には,基本パーミッションおよび組み合わせパーミッションを使用します。パーミッションは複数指定できます。例えば,複数の基本パーミッションを指定したり,複数の組み合わせパーミッションを指定したり,基本パーミッションと組み合わせパーミッションを混在させて指定したりできます。この場合,パーミッションとして設定される内容は,指定したパーミッションの論理和になります。

アクセス制御情報変更権は,アクセス制御情報に対する操作を許可するパーミッションであり,セキュリティACLにだけ指定できます。

(2) 基本パーミッション

オブジェクトを操作する範囲を限定するために,DocumentBrokerが提供する基本的なパーミッションは次のとおりです。これを基本パーミッションといいます。基本パーミッションの種類を次の表に示します。

表3-15 基本パーミッションの種類

パーミッションの名称パーミッション文字列定数説明
基本プロパティ参照権PRIM_READ_PROPSDBR_PERM_PRIM_READ_PROPSプロパティの参照を許可する
基本プロパティ更新権PRIM_WRITE_PROPSDBR_PERM_PRIM_WRITE_PROPSプロパティの更新を許可する
基本コンテント参照権PRIM_READ_CONTENTSDBR_PERM_PRIM_READ_CONTENTS文書のコンテントの参照を許可する
基本コンテント更新権PRIM_WRITE_CONTENTSDBR_PERM_PRIM_WRITE_CONTENTS文書のコンテントの更新を許可する
基本リンク権PRIM_LINKDBR_PERM_PRIM_LINKリンクに関する操作を許可する
基本バージョン管理権PRIM_VERSIONDBR_PERM_PRIM_VERSIONバージョンに関する操作を許可する
基本オブジェクト削除権PRIM_DELETEDBR_PERM_PRIM_DELETEオブジェクトの削除を許可する

基本パーミッションでは,それぞれのパーミッションは独立であり,包含関係はありません。複数の基本パーミッションを設定した場合は,それらの論理和がサブジェクトに対して許可される操作になります。ただし,基本プロパティ参照権は,すべての基本パーミッションに含まれます。例えば,基本コンテント参照権を設定すれば,同時に,基本プロパティ参照権も設定したことになります。基本プロパティ参照権と基本コンテント参照権を個別に設定する必要はありません。

次に,それぞれの基本パーミッションの内容について説明します。

基本プロパティ参照権
オブジェクトのプロパティを参照する権利です。
このパーミッションを設定されたユーザは,文書やコンテナのOIIDや,ユーザ定義プロパティを参照できます。プロパティを指定した属性検索を実行する場合も,このパーミッションが必要です。
また,このパーミッションを与えないユーザに対しては,オブジェクトの存在もわからないようにできます。
このパーミッションには,コンテナに設定されたリンクのプロパティを参照したり,コンテナと関連づけられている要素のプロパティを参照したりする権利も含まれます。
基本プロパティ更新権
オブジェクトのプロパティを更新する権利です。
このパーミッションを設定されたユーザは,文書やコンテナに設定されたユーザ定義プロパティや,そのほかの読み取り専用以外のプロパティを更新できます。
基本コンテント参照権
文書を表すオブジェクトのコンテントを参照する権利です。
このパーミッションを設定されたユーザは,GetContentメソッドなどによって文書の内容を参照できます。
このパーミッションには,全文検索を実行する権利も含まれます。つまり,全文検索インデクスを使用した検索を実行する場合には,このパーミッションが必要です。
基本コンテント更新権
文書を表すオブジェクトのコンテントを更新する権利です。
このパーミッションを設定されたユーザは,UpdateContentメソッドなどによって,文書の内容を更新できます。
このパーミッションには,全文検索インデクスを作成,削除する権利も含まれます。
基本リンク権
リンクに関する操作をする権利です。
リンクに関する操作とは,コンテナと文書またはコンテナとコンテナを関連づけたり,関連づけを解除したりする操作です。また,このパーミッションにはリンクのプロパティを更新する権利も含まれます。これによって,例えば,コンテナと文書を関連づけた時に,関連づけた日時をリンクのプロパティに設定したりできます。構成管理コンテナの場合は,構成管理モードを変更する権利も含まれます。
基本バージョン管理権
バージョンに関する操作をする権利です。
バージョンに関する操作とは,バージョンアップやバージョン削除をする権利です。チェックアウト,チェックイン,チェックアウトの取り消しなどをする権利が含まれます。
基本オブジェクト削除権
RemoveObjectメソッドなどによって,オブジェクトを削除する権利です。

(3) 組み合わせパーミッション

組み合わせパーミッションとは,基本パーミッションを組み合わせて定義されたパーミッションです。あるオブジェクトに対するパーミッションを指定する場合に,一般的に同時に設定すると考えられる複数の基本パーミッションが,まとめて一つのパーミッションとして指定できるようにされています。

組み合わせパーミッションと基本パーミッションとの対応を次の表に示します。

表3-16 組み合わせパーミッションと基本パーミッションの対応


組み合わせパーミッションの名称

パーミッション文字列
基本パーミッション
(パーミッション文字列)
PRIM_
READ
_PROPS
PRIM
_WRITE
_PROPS
PRIM_
READ
_CONTENTS
PRIM
_WRITE
_CONTENTS
PRIM
_LINK
PRIM
_VERSION
PRIM
_DELETE
プロパティ参照権READ
_PROPS
参照権READ
プロパティ更新権WRITE
_PROPS
参照更新権READ
_WRITE
削除権DELETE
リンク権LINK
バージョン権VERSION
フルコントロールFULL
_CONTROL
(凡例)
○:組み合わせパーミッションに対応する基本パーミッションです。
-:組み合わせのパーミッションに対応しない基本パーミッションです。

組み合わせパーミッションを表すパーミッション文字列を表す定数について,次の表に示します。

表3-17 組み合わせパーミッションのパーミッション文字列を表す定数の対応

パーミッションの名称パーミッション文字列定数
プロパティ参照権READ_PROPSDBR_PERM_READ_PROPS
参照権READDBR_PERM_READ
プロパティ更新権WRITE_PROPSDBR_PERM_WRITE_PROPS
参照更新権READ_WRITEDBR_PERM_READ_WRITE
削除権DELETEDBR_PERM_DELETE
リンク権LINKDBR_PERM_LINK
バージョン権VERSIONDBR_PERM_VERSION
フルコントロールFULL_CONTROLDBR_PERM_FULL_CONTROL

組み合わせパーミッションを使用すると,一つ指定することで複数の基本パーミッションを指定した場合と同じパーミッションが設定できます。

例えば,あるユーザに対して文書のコンテントの更新を許可したい場合,運用によっては,「検索によって文書を取得し,既存のコンテントの内容を参照した上で,修正,更新する」という操作の流れが考えられます。また,「コンテントを更新する場合には,更新した日時を表すプロパティを更新する」という操作があるとします。この場合,基本パーミッションでは,「基本プロパティ更新権」,「基本コンテント参照権」および「基本コンテント更新権」の3種類のパーミッションをそのユーザに設定する必要があります。これに対して,組み合わせパーミッションの「参照更新権」だけ指定すれば,3種類の基本パーミッションを指定した場合と同じパーミッションとして定義できます。

次に,それぞれの運用での,組み合わせパーミッションの設定例について示します。

プロパティ参照権(READ_PROPS)
コンテナの階層をたどったり,コンテナの名称や文書の名称などのオブジェクトのプロパティとして設定されている情報だけを参照できるようにするユーザに対して設定します。
参照権(READ)
文書名などのプロパティを参照した上で,文書のコンテントの参照も許可したいユーザに対して設定します。
プロパティ更新権(WRITE_PROPS)
文書名などのプロパティを参照して,そのプロパティの値の変更を許可したいユーザに対して設定します。
複数のユーザが作成した文書を集めて整理するユーザなどに設定します。
参照更新権(READ_WRITE)
コンテナや文書をプロパティ,コンテントも含めて参照,更新することを許可したいユーザに対して設定します。
削除権(DELETE)
文書名やコンテナ名など,プロパティとして設定されている情報を参照させて,その文書やコンテナの削除を許可したいユーザに対して設定します。
使われていない文書を削除してデータベースを保守するユーザなどに設定します。
リンク権(LINK)
コンテナに対して,コンテナの名称等は変更させずに,コンテナに文書を格納させるユーザに対して設定します。
すでにフォルダの体系が決定されている場合に,あるユーザにその体系に従って文書を格納させたいときなどに設定します。
バージョン権(VERSION)
バージョン管理を実行させたいユーザに対して設定します。
ただし,文書をバージョンアップする場合などには,バージョン管理の対象になる文書に対してこのパーミッションを与えると同時に,個々のバージョンに対応する文書に対して参照更新権が必要です。
詳細は,「3.15.7 オブジェクトの操作とアクセス制御情報の関係」を参照してください。
フルコントロール(FULL_CONTROL)
そのオブジェクトに対するすべての操作を許可したいユーザに対して設定します。

また,組み合わせパーミッションを指定する場合に,そのパーミッションに含まれない操作をする権利も含ませたいときは,組み合わせパーミッションと基本パーミッションを組み合わせて指定できます。例えば,「参照更新権」を与えたユーザに対して,「オブジェクトを削除する権利も与えたい」という場合は,組み合わせパーミッションの「参照更新権」と,基本パーミッションの「基本オブジェクト削除権」をあわせて指定できます。

(4) アクセス制御情報変更権

アクセス制御情報変更権は,セキュリティACLに設定できるパーミッションです。

セキュリティACLには,オブジェクトのアクセス制御情報を操作するユーザに対するパーミッションを指定します。

アクセス制御情報変更権について次の表に示します。

表3-18 アクセス制御情報を操作するためのパーミッション

パーミッションの名称パーミッション文字列定数
アクセス制御情報変更権CHANGE_PERMDBR_PERM_CHANGE_PERM

文書やコンテナなどを示すオブジェクトのセキュリティACLでアクセス制御情報変更権を与えられたユーザは,そのオブジェクトのACFlagおよびローカルACLの変更,パブリックACLのバインドおよびアンバインドができます。

パブリックACLのセキュリティACLのパーミッションとしてアクセス制御情報変更権を設定されたユーザは,そのパブリックACLに設定されているACLやユーザ定義プロパティを変更できます。

注意
アクセス制御情報変更権が設定されているユーザがアクセス制御情報を変更したり所有者が所有者を変更したりする場合,対象オブジェクトのOIIDを指定して変更します。OIIDを取得するために対象オブジェクトのプロパティを参照する場合は,基本プロパティ参照権が設定されている必要がありますので,注意してください。