プロジェクトデータの保護Protecting_Project_Data
Origin 9.1で紹介されているように、LabTalkコマンドはワークシートやワークブックの様々な保護が行えます。これには、オブジェクトレベルの保護を修正できるプロジェクトレベルのAdmin モードを含みます。AdminモードなしでもOriginオブジェクトの状態を保護制御できますが、これらは安全ではありません。誰でもLabTalkコマンドを実行して保護を解くことができます。
安全な保護のためには、Admin パスワードをOriginプロジェクトに設定し、正しいパスワードが入力されない限りOriginオブジェクトを変更できないようにします。安全性が問題ではない場合(例えば、意図しない変更やブックおよびシートの削除から保護する場合)、Adminパスワードなしでオブジェクトレベルの保護を追加できます。Adminパスワードの設定についての情報は、Adminモードを確認してください。
プロジェクトレベルの保護
2種類のプロジェクトレベルのパスワード保護があります。
- Originプロジェクトにパスワードを追加し、権限のない人間がOPJを開くのを防ぎます。 この方法は、GUIからとLabTalkスクリプトからの方法があります。
- プロジェクトにAdminパスワードを追加して、権限のない人間のOPJの編集を防ぎます。この方法はOPJのアクセスは制限しませんが、OPJの編集や新しいファイルへの保存を防ぎます。この方法はLabTalkからのみ利用できます。
OPJ開封を防ぐパスワード保護
この種類のパスワード保護が有効な場合、Originプロジェクト(OPJ)を開くときにパスワードの入力が必要です。これは、追加による開封や、ス繰王とによる開封などでも適用されます。
権限のない開封からプロジェクトを保護するには、
- プロジェクトファイルを開き、スクリプトウィンドウかコマンドウィンドウで、次のように入力します。
doc -pwd
これによりパスワードダイアログが開き、プロジェクトパスワードの設定と変更が可能です。
- GUIでのアクセスは、ツール:データ保護:パスワード保護を選択し、パスワードを入力します。
OPJ編集を防ぐパスワード保護:Adminモード
Adminモードの概念は、Originプロジェクトに追加されます。プロジェクトがAdminモードで保護されると、AdminとしてOPJにログインしない限り、プロジェクトの編集やワークブック、ワークシートの保護機能を変更することはできません。
OPJのAdmin保護を行うには、スクリプトウィンドウで以下のように入力します。
doc -pwa [password] // Adminパスワード ''password'' をOPJに追加
角括弧で示したように、パスワードの選択はオプションです。もし、パスワードを選択しない場合、Adminモードでのログイン時に要求されません。
パスワードを作成した場合、またはデフォルト("origin")を使用した場合、次のようなコマンドを入力してAdminモードにログインします。
doc -pw [password] // Adminモードにログインパスワードが指定された場合、パスワードを与える
追加のコマンド
doc -pwx // Adminモードのログアウト保護へのアクセスなし
doc -pwr // パスワード削除。実行のためにはログインが必要
doc -pwta // 保護が有効なブックとシートを表示
documentコマンドについての詳細は、documentコマンドを確認してください。
|
Adminモードを示すタイトルバー
Originのタイトルバーは、OriginプロジェクトのAdmin状態を表示します。
-
- OPJのAdminモードが有効でAdminとしてのログインなし
-
- OPJのAdminモードが有効でAdminとしてログイン
-
AdminモードとOPJの保存
プロジェクトのAdminモードを有効にすると、ログインなしでのOrigin上での上書きは行えません。Adminが有効なOPJを開き、ログインせずに保護されていない領域(ワークブックおよびワークシートレベルの保護を参照)でOPJを修正すると、Originのタイトルバーのファイル名にアスタリスク(*) が付きます。
-
-
アスタリスクは、OPJが修正されたことを示していますが、保存前にログインしない限りOPJを保存できません。保存やログインせずにOPJを閉じることはできます。
ワークシートおよびワークブックレベルの保護
以下の保護方法はAdminモードにすることなく適用できます。しかし、Adminモードがないので、これらの保護削除からのファイルアクセスを防ぐことはできません。
次のコマンド構文を使用してシートレベルで保護を適用できます。
layer -lw hex(hex value)
次のコマンド構文を使用してブックレベルで保護を適用できます。
page -lw hex(hex value)
保護フラグには、一般の継承の規則があります。ブックに保護を設定すると、ブック内の全てのシートはブックからフラグが継承されます。この決まりの例外はDeleteフラグです。ブックとシートの削除フラグは分けて制御する必要があります(例えば、ブックの編集を許可しなくても、個別シートの削除は許可されます)。
レイヤおよびページの保護フラグ
レイヤやページの保護には、以下のhex value をとります。
Hex Value
|
説明
|
--
|
全ての保護ビットをオン
|
0
|
アクティブワークシート/ワークブックから全ての保護を削除
|
2
|
データ:ワークシート内の全てのセル、データセルやラベルセルを含む
|
80
|
構造:シート内の列を変更せずに保持。列の挿入/削除、移動を防ぐ。しかし、行は変更可能。
|
100
|
名前の変更:シート名の変更を防ぐ(ワークブックに)
|
400
|
削除:オブジェクトの削除を防ぐ
|
レイヤおよびページの保護サンプル
次のサンプルは複数の保護フラグを統合(hex valueを追加)し、保護するものを高度に制御することを示したサンプルです。
サンプル:ワークシート書き込みアクセスフラグの設定
lay -lw hex(82); //データと構造保護のためにアクティブシートをセット
lay -lw; //全て保護
lay -lw 2; //データのみ保護
lay -lw hex(180); //列/行の挿入/削除なし、シート名変更なし
lay -lw 0; //現在のシートの全ての保護を削除
... ここでhex value は上の表で与えられた値です。
サンプル:ワークブック書き込みアクセスフラグの設定
page -lw; //ブックと全てのシートをロック。変更不可。ブックやシートの削除不可。
page -lw hex(482); //削除、構造変更、データ編集をロック
// ロックするアクティブシートにブックを用意
// 分析結果のブックへの追加を許可
lay -lw hex(582); //削除、名前変更、列/行の追加/挿入/移動、編集なし
page -lw hex(400); //ブック削除なし
... ここでhex value は上の表で与えられた値です。
Note: Origin 2015 SR1では、次のコマンド
page -lw; // ブックと全シートのロック
はワークブックの名前変更を防ぐことができません。
|
現在の保護フラグを印字
layer -lt // 現在のシート保護フラグを印字
layer -lt // 現在のシート保護フラグを印字
- layerコマンドについての詳細は、layerコマンドを確認してください。
- pageコマンドについての詳細は、pageコマンドを確認してください。
|
読み取り専用シートの排除ゾーン
ワークシートの修正をロックしたとき、シート内の全てのセルは読み取り専用になります。選択的なシートの修正をユーザができるようにしたいときがあります(例えばフォームとしてシートを設定)。シートの排除ゾーンの作成と管理の方法を説明します。
排除ゾーンを制御するコマンド
layer -les n
...ここで、n は次のいずれかです。
値
|
説明
|
0
|
アクティブシートから排除ゾーンをクリア
|
1
|
現在の選択、1つ範囲またはCTRL+選択による複数範囲を追加し、新しい排除ゾーンとする
|
2
|
スクリプトウィンドウで排除ゾーンをリスト表示
|
Note: 排除ゾーンの修正は、シートが保護されていないときだけ可能です。シートをフォームとして設定するには、(1) 必要な排除ゾーンを追加し、(2) lay -lwでシートを修正から保護します。
|
グラフの保護
ここで概説されたスクリプトコマンドはワークブックやワークシートに実行されますが、Delete フラグは一般にグラフ保護に使用でき、次のようにします。
repeat 10 {win -t plot}; //10このグラフウィンドウを作成
win -o graph4 {page -lw hex(400)}; //graph4 に保護を設定
doc -e P {win -c}; //OPJ内の全てのグラフの削除をループGraph4 は保護されます。
スクリプトサンプル
以下のスクリプトは、ワークブックに対してデータシートのロックを設定し、ワークブックを削除から保護します。OPJは保存でき、共有できます。他のユーザは表示、グラフ作図、データ分析は行えますが、編集と削除はできません。
分析結果は追加のシートに出力されるので、このサンプルのデータシートは編集から保護されているので、Smooth 等で生成された結果のルーチンは他のシートに出力するように構成されます。
// サンプルファイルをインポート
newbook;
string fname$=system.path.program$+"Samples\Curve Fitting\Gaussian.dat";
impasc;
// パスワードを設定しログイン - パスワードン文字列としてmypwdを設定
doc -pwa mypwd;
doc -pw mypwd;
// データシート構造保護、編集と削除の禁止
lay -lw hex(482);
// ページ削除禁止
page -lw hex(400);
// ログアウト
doc -pwx;
// これでOPJを保存でき、他のユーザはデータの表示、グラフ作成、分析操作が可能
// 分析結果は同じシートの新しい列でなく新しいシートに追加される
|