AuthPG
PostgreSQL にパスワードを覚えさせておき、
それを使って apache の userid/password の認証を
させるしくみ。2007/08 現在 pkgsrc には三種類が登録されている
Dec 28 2006 www/ap-auth-pgsql/Makefile mod_auth_pgsql-0.9.12 ap13-auth-pgsql-0.9.12
Mar 22 04:44 www/ap-auth-postgresql/Makefile AuthPG-1.4 ap13-auth-postgresql-1.4
Dec 28 2006 www/ap2-auth-pgsql/Makefile mod_auth_pgsql-2.0.3 ap2-auth-pgsql-2.0.3
Apache-2 の場合、最後の www/ap2-auth-pgsql で make package すれば良い。
- PostgreSQL で Apache のユーザ認証
-
http://www.hizlab.net/app/apachepgsql.html
- source.forge
-
http://authpg.sourceforge.net/
- NetBSD/pkgsrc/www/ap-auth-postgresql/
-
www/ap-auth-postgresql/README.html
AuthPG-1.2b .. NetBSD/pkgsrc
AuthPG-1.3 .. soureforge.net
AuthPG-2.0 .. patch exist.
adding one line for http.conf:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php4_module lib/httpd/mod_php4.so
+LoadModule auth_pgsql_module lib/httpd/mod_auth_pgsql.so
AddType application/x-httpd-php .php
example for .htaccess:
AuthName "My PostgreSQL Authenticator"
AuthType basic
Auth_PG_Host localhost
Auth_PG_port 5432
Auth_PG_user postgres
Auth_PG_database www
Auth_PG_pwd_table valid_users
Auth_PG_uid_field user
Auth_PG_pwd_field password
<LIMIT GET POST>
require valid-user
</LIMIT>
create table
上記例では
Auth_PG_uid_field user
となっているが、user という名前は使えない
気がする。そこでこれは userid という名前に変更する。
これに対応する表としては、次のようなものを用意した。
www=# create table valid_user (
userid varchar(40) primary key,
password varchar(32),
lock integer default 1
);
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "valid_user_pkey" for table "valid_user"
CREATE TABLE
www=#
以下は以前に使っていたものの例:
AuthName "myauth"
AuthType Basic
AuthPGHost myhost
AuthPGDatabase mydb
AuthPGUserTable member
AuthPGPasswordField passwd
AuthPGUserNameField id
AuthPGEncrypted off
require valid-user
この場合、myhost が
/usr/pkg/share/postgresql/pg_hba.conf
に記載されている必要がある。
2004/04/02 に make install した時の
記録
GRANT
ttyp2:makoto@u 19:03:26/040402(...share/postgresql)> ERROR: member: permission denied
と言われる時には、次のように grant する
fic=# grant select on member to www
|