dbUserFolder

 MySQL にデータを格納する mysqlUserFolder を元に、pgUserFolder というのを作ってみたのですが、その後、他の RDBからも使えるように改造してみたので、それにあわせて、名前も dbUserFolder としてみました。

履歴

バージョン 変更概要
0.4.0
  • SQLite 対応
0.3.0
  • PostgreSQL以外に、Oracle、Firebird からも使えるようにした。
  • パスワード形式として MD5 もつかえるようにした(mysqlUserFolderからのマージ)
これより以前の履歴は pgUserFolder を見てください。

インストール

1.DBモジュールのインストール

2.dbUserFolderのインストール

 最新のアーカイブをダウンロードして lib/python/Products に展開してください。

3.テーブルの作成

 $(INSTANCE_HOME)/ib/python/Products/pgUserFolder/sql にある create_tables_XXXX.sql を実行してください。(XXXXは RDBの種類による)
なお、改行は LFのみになっています。Windowsの人は、IEで開いて、表示されたものをコピー&ペーストしてください。

 また、必要に応じて、setup_manager.sql を実行してください。こちらは、Manager role のユーザが作成されます。

4.オブジェクトの作成

 ZMIから、適当なフォルダーに 'DbUserfolder'を Addします。

このとき、使用する RDBの種類により、Connection String と Database Type を以下のように設定します。

RDBMS Connection String(例) Database Type
PostgreSQL dbname=somewhatdbname user=username psycopg
Oracle user/password@TNS DCOracle2
DCOracle2-MT
cx_Oracle
cx_Oracle-MT
Firebird dsn=c:\foo\bar.gdb user=username password=secret kinterbasdb
kinterbasdb-MT
SQLite /usr/local/zope/var/foo(←ファイル名を書きます) sqlite
sqlite-MT

  なお、XXXX-MT と末尾に -MT が付いているものは、スレッド毎にコネクションを張ります。-MT が付いているものと付いていないものの、どちらが速いか計ってません。

5.さらに詳しい使い方

 Basic 認証のほかに、クッキーベースの認証をしたり、セッションで認証したり、さらに、セッションを追ってログに出力したりすることができるようです(私もすべては理解していない)。

 ベースとなった mysqlUserFolder 0.9.x から大きな変更はありませんので、そちらのドキュメントやら Howto やらを参考にして下さい。

岩田さんがmysqlUserFolderの README を和訳してくださいました。(2003/09/21)

応用

 RDB にユーザーアカウントのテーブルが既に存在する場合は、そのテーブルから

というView を作れば、既存のデータを使って、Zopeにログインする環境ができると思います。

 

 

 


Zope メモ