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