みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
環境FM13 Win
現在、ファイルメーカーSVで80ファイル共有・ユーザー数300人利用でを行っております。
現在の運用
アカウント管理ファイルで職員ID&パスワード管理を行っております。
夜間時にアカウント管理ファイルから共有しているファイルのアカウント更新スクリプトを実行しています。
アカウント更新スクリプト(夜間時)実施
-----------------------------------------
共有ファイル1のアカウント更新スクリプト
共有ファイル2のアカウント更新スクリプト
共有ファイル3のアカウント更新スクリプト
共有ファイル・・・のアカウント更新スクリプト
共有ファイル50のアカウント更新スクリプト
-----------------------------------------
更新スクリプトの内容
職員管理テーブルへ移動
Loop
アカウントを削除[職員ID]
次のレコードへ[最後まできたら終了]
End Loop
Loop
アカウントを追加[職員ID]
次のレコードへ[最後まできたら終了]
End Loop
という具合にアカウント全削除→アカウント追加
これが正しいやり方なのかどうかわかりませんがもっとスマートで良いやり方があると思っています。
こんな方法で行っているなどあれば教えて下さい。
Offline
外部認証にすれば、ファイルごとでなくホストのサーバで一括して設定できます。
mice様ありがとうございます。
LDAP認証は他の機関システムが対応しておらず無理なんです。
Offline
管理ファイルにタイムスタンプを保存しておいて、前回実行後に変更された分だけ削除・追加すれば、だいぶまし?
Loopは削除と追加を同時にすれば1回でいいですね。
そのスクリプトだと、ファイルを行ったり来たりしますね。
職員ファイル側で、更新するユーザーの、アカウント名などを変数内にリストにします。それを各ファイルにスクリプト引数として渡し、変数に取り込ませて処理しておくと、数倍以上早くなります。また、スクリプトもすっきりしますね。
Offline
scripter、Shin様 ありがとうございます。
Shin様の職員ファイル側で、更新ユーザーのアカウント・パスワードなどを変数内にリストにするとありますが。
どういったことでしょうか?難しくて私では理解できません。すいません。
噛み砕いてもう少し詳しくお教え下さい。
数倍&スクリプトすっきりさせたいです。
宜しくお願いします。
Offline
やっぱり外部認証を導入することを検討された方がいいですよ。
ドキュメントにアカウント数の上限は記載されていませんが、
大量のアカウントがあると、ファイルが破損しやすくなります。
400以上からその兆候が現れ、1000以上になると顕著です。
なぜ、削除して追加するのかわかりませんが、毎日300もの
アカウントを全部入れ替えるのはとてもお勧め出来ません。
パスワードを毎日替えたいのであれば、「アカウントパスワードをリセット」
スクリプトステップを利用するなり他の方法を考えられた方がいいでしょう。
くどいかもしれませんが、外部認証を導入するのが一番かと思います。
ありがとうございます。
外部認証を導入したほうが良いということは分かりました。
既存の環境では無理なので。
それを踏まえていい方法が無いかと思って質問しました。
Offline
運用方法をもう少し詳しく、と思いますが、セキュリティー部分ですのであまり詳しく書けませんよね。
上に書かれたスクリプトから推測すると、各ファイルに、外部テーブルとしてアカウント管理用のテーブルが設定してあり、そのテーブルからアカウントを管理しているのでしょうか。動きは簡単ですが、データ通信量が非常に多く、遅いでしょうね。
私の提案は、アカウント管理ファイル側で、
レコードへ移動[最後]
loop
変数を設定[$list ; $list & ¶ & アカウントID )]
レコードへ移動[前の ; 最後で終了]
end loop
共有ファイル1のアカウント更新スクリプト[引数:$list]
…
としておき、更新スクリプト側で、
変数を設定[$list ; Get ( スクリプト引数 )]
変数を設定[$n ; ValieCount ( $account )]
loop
変数を設定[$acount ; GetValue ( $list ; $n )]
アカウントを削除[$acount]
アカウントを追加[$acount]
変数を設定[$n ; $n - 1]
exit loop if ( not $n )
end Loop
という動きです。これですと、ファイルへのアクセスが最小です。
Last edited by Shin (2015-06-29 22:19:06)
Offline
Shin様ありがとうございます。
アカウント管理ファイル側のスクリプト
レコードへ移動[最後]
loop
変数を設定[$acount ; $list & ¶ & アカウントID )]
レコードへ移動[前の ; 最後で終了]
end loop
の部分ですが、
変数を設定[$acount ; $list & ¶ & アカウントID )]の$listに値が格納されません。
また、パスワードはどのように扱えばよろしいでしょうか?
宜しくお願いします。
Offline
変数を設定[$list ; $list & ¶ & アカウントID )]
の誤りです。(元を修正しましたので、参照ください)
パスワードについては、運用によって変わると思います。
Last edited by Shin (2015-06-29 22:19:48)
Offline
Pages: 1
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 524.73 KiB (Peak: 545.27 KiB) ]