EJBCA:セットアップ 2.DBテーブルの作成 | 熱脳しゃちょのブログ

熱脳しゃちょのブログ

おせっかい焼SE兼プログラマ兼……の辛い日々と、思う事なぞ

DBの設定については、普通に、
1.ユーザー、テーブルの作成
2.インデックスの作成
3.権限の設定
の3つを順に行っていきます。
基本的には"doc/howto"内のsqlファイルを実行します。

1.ユーザー、テーブルの作成
それぞれ、該当する"create-tables-ejbca3-*.sql"を実行してください。

・Derby
connect 'jdbc:derby://localhost:1527/ejbca;create=true';
run 'create-tables-ejbca3-derby.sql';
quit;

こんなファイルを"derby_setup.txt"とでも名前を付けて作成しておいて、Derby起動後(binディレクトリにパスを通して)、

$ ij derby_setup.txt

こんな感じ。
一応、sqlファイルの場所指定は忘れないでね。

・MySQL
コマンドラインでこんな感じ。rootpasswdはmysqlのrootのパスワードに置き換えてください。

mysqladmin drop ejbca -f -u root -prootpasswd
mysqladmin create ejbca -u root -prootpasswd
mysql -u root -prootpasswd mysql -e "grant all on ejbca.* to 'ejbca'@'localhost' identified by 'ejbca';"
mysqladmin flush-privileges -u root -prootpasswd
mysql -f -u ejbca -pejbca ejbca < create-tables-ejbca3-mysql.sql

・Postgres
コマンドラインでこんな感じ。

dropuser -U postgres ejbca
dropdb -U postgres ejbca
createuser -U postgres -SDRP ejbca
createdb -U postgres ejbca
psql -U postgres -d ejbca -f create-tables-ejbca3-postgres-glassfish.sql


2.インデックスの作成
"create-index-ejbca3.sql"を実行するのですが、Postgresの場合、以下の2行のコメント状態を逆転させてください。

-- create index protectedlogdata_idx2 on ProtectedLogData (nodeGUID, eventTime, b64Protection);
create index protectedlogdata_idx2 on ProtectedLogData (nodeGUID, eventTime, b64Protection(1));
create index protectedlogdata_idx2 on ProtectedLogData (nodeGUID, eventTime, b64Protection);
-- create index protectedlogdata_idx2 on ProtectedLogData (nodeGUID, eventTime, b64Protection(1));

3.権限の設定
ProtectedLogData,ProtectedLogTokenData,LogEntryDataの3テーブルについて、UPDATE,DELETE権限を取り上げてください。

・MySQL
grant USAGE on ejbca.ProtectedLogData to 'ejbca'@'localhost';
grant USAGE on ejbca.ProtectedLogTokenData to 'ejbca'@'localhost';
grant USAGE on ejbca.LogEntryData to 'ejbca'@'localhost';
grant SELECT,INSERT,CREATE on ejbca.ProtectedLogData to 'ejbca'@'localhost';
grant SELECT,INSERT,CREATE on ejbca.ProtectedLogTokenData to 'ejbca'@'localhost';
grant SELECT,INSERT,CREATE on ejbca.LogEntryData to 'ejbca'@'localhost';

・Postgres
GRANT SELECT,INSERT,UPDATE,DELETE on accessrulesdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on adminentitydata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on admingroupdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on adminpreferencesdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on approvaldata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on authorizationtreeupdatedata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on cadata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on certificatedata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on certificateprofiledata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on certreqhistorydata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on crldata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on endentityprofiledata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on globalconfigurationdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on hardtokencertificatemap to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on hardtokendata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on hardtokenissuerdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on hardtokenprofiledata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on hardtokenpropertydata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on keyrecoverydata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on logconfigurationdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on protectedlogexportdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on publisherdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on publisherqueuedata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on servicedata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on tableprotectdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on userdata to ejbca;
GRANT SELECT,INSERT,UPDATE,DELETE on userdatasourcedata to ejbca;
GRANT SELECT,INSERT on ProtectedLogData to ejbca;
GRANT SELECT,INSERT on ProtectedLogTokenData to ejbca;
GRANT SELECT,INSERT on LogEntryData to ejbca;

うーん、こんな感じ……か?
もう少しスマートにいかんもんかなぁ……。

Ver.1.0 2008/10/14 10:22