3.4. JDBCレルムを使用したユーザ管理

本節では、JDBCレルムを利用する場合の、ユーザの追加、削除の方法について説明します。ここではデータベースにOracleを使用することを前提としますが、操作はSQLで記述しますので、その他のデータベースでも利用することが可能です。

データベースのアプリケーションのインストール、データベースの作成方法、ログイン方法については、利用するデータベースのマニュアルを参照してください。

注意:JDBCに運用管理ユーザを作成する場合、ユーザ名がadmin、systemのユーザを作成する必要はありません。admin、systemはFileレルムのユーザを利用します。

3.4.1. データベーステーブルの作成、削除

ユーザおよびグループを登録するために、事前に次のようなテーブルを作成しておきます。

テーブル名:jdbc_user(任意)

ユーザ・グループ登録テーブル
フィールド名 データ型 内容
userid(任意) VARCHAR(10) ユーザ名を登録します。※最大長はシステムの仕様に応じて適宜変更してください
passwd(任意) VARCHAR(32) パスワードを登録します。※最大長はシステムの仕様に応じて適宜変更してください
realm(任意) VARCHAR(30) レルム名を登録します。
DIGEST認証を行い、かつ複数のレルムがこのテーブルを参照する場合のみ必須フィールドとなります。
※レルム名にはJDBCレルムのname値を登録します。
※最大長はシステムの仕様に応じて適宜変更してください

テーブル名:jdbc_role(任意)

JDBCレルム設定一覧
フィールド名 データ型 内容
userid(任意) VARCHAR(10) ユーザ名を登録します。※最大長はシステムの仕様に応じて適宜変更してください
role(任意) VARCHAR(10) ロール名を登録します。※最大長はシステムの仕様に応じて適宜変更してください

コマンドを利用して、テーブルを作成する方法について説明します。

3.4.2. ユーザ

データベースにSQLで、ユーザを追加、削除する方法について説明します。

3.4.2.1. ユーザの追加

次のコマンドを実行します。(ユーザ名:user1、パスワードpasswordの登録例です)

INSERT INTO jdbc_user(userid, passwd) values ('user01', 'password');

※同一のユーザ名のエントリが複数あった場合は、最初に一致したエントリを使用します。

※パスワードのダイジェストは、次のコマンドで生成することができます。

> cd ${AS_INSTALL}/modules
> java -cp ./web-core.jar org.apache.catalina.realm.RealmBase -a <ダイジェスト方式> <パスワード>

※ダイジェスト方式は3.3.1.JDBCレルムの設定で指定した方式を指定します。ダイジェスト方式にはMD5、SHA-1、SHA-256、SHA-384、SHA-512のいずれかを指定することができます。

ユーザの追加で、登録したユーザuser01を削除する手順を説明します。

3.4.2.2. ユーザの削除

次の、コマンドを実行します。

DELETE from jdbc_user where userid='user01';

SQLを利用して、ユーザの登録状況を確認する方法について説明します。

3.4.2.3. ユーザの確認

次の、コマンドを実行します。(ユーザ名 user01を確認する例です)

select * from jdbc_user where userid='user01';

3.4.3. グループ

データベースにSQLでグループの追加、削除する方法について説明します。グループは、ユーザ名とグループ名の組を1つエントリとして登録します。

SQLを利用して、グループを追加する行う方法について説明します。

3.4.3.1. グループの追加

INSERT INTO jdbc_role(userid, role) values ('user01', 'users');

3.4.3.2. グループの削除

グループの追加で作成したグループusersを削除する手順を説明します。

DELETE from jdbc_role where role='users';

・1人のユーザに複数のグループを設定する場合は、それぞれのグループに対して1つのエントリを作成してください。