Sample

Case1

DB(Sample1)を作成し,テーブル(products)を作成し,データを入れる.
なお,DBにアクセスできるのは, admin, guest ユーザだけに限定し,
guestは読み込み権限のみとする.

$ startNetworkServer & $ ij ij> connect 'jdbc:derby://localhost/Sample1;create=true'; ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.connection.requireAuthentication','true'); ステートメントが実行されました. ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.admin','admin_pass'); ステートメントが実行されました. ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.user.guest','guest_pass'); ステートメントが実行されました. ij> CALL SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY('derby.database.readOnlyAccessUser','guest'); ステートメントが実行されました.

一度,DBの接続を解除し,設定が適用されているか確認します.

ij>exit; $ stopNetworkServer $ startNetworkServer & ij>connect 'jdbc:derby://localhost/Sample1'; エラー 08004: 接続認証の障害が発生しました. 理由:ユーザー ID またはパスワードが無効です.

とりあえず,ユーザを指定しないと入れないことが確認できました.
次に,guest ユーザで接続し,table が作れないことを確認します.

ij> connect 'jdbc:derby://localhost/Sample1;user=guest;password=guest_pass'; ij >

ij> create table test.products ( id VARCHAR(4) NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, price int ); ij> insert into products (id, name, price) VALUES ('0001','pc','10000');

Back