Установить табличное пространство по умолчанию в URL JDBC для db2 в Z / OS? - PullRequest
0 голосов
/ 20 сентября 2010

Можно ли заставить все операторы создания таблицы использовать конкретное пространство database.tablespace, передав параметр в URL JDBC?Например, вместо того, чтобы вручную указывать его следующим образом

CREATE TABLE Message (id INTEGER NOT NULL, created TIMESTAMP, message VARCHAR(255),PRIMARY KEY (id))     in DATABASE.TABLESPACE

Я бы хотел указать "database.tablespace" в URL-адресе соединения и выполнить

CREATE TABLE Message (id INTEGER NOT NULL, created TIMESTAMP, message VARCHAR(255), PRIMARY KEY (id))

1 Ответ

0 голосов
/ 18 сентября 2011

В DB2 полностью отсутствует нужная вам концепция.Он обрабатывает первое табличное пространство, к которому у пользователя есть права доступа, по умолчанию:

IF table space IBMDEFAULTGROUP (over which the user
  has USE privilege) exists with sufficient page size
    THEN choose it
ELSE IF a table space (over which the user has USE privilege)
  exists with sufficient page size (see below when
  multiple table spaces qualify)
    THEN choose it
ELSE return an error (SQLSTATE 42727) 

Таким образом, способ добиться того, что вам нужно, - это удалить привилегии доступа из всех, кроме одного табличного пространства, то есть.

-- repeat for all tablespaces
revoke use of tablespace myspace1 from public
revoke use of tablespace myspace1 from user/group xxx
-- and make sure the ones you really need have access rights
grant use of tablespace myspace1 to user creatoruser

Естественно, это требует, чтобы вы хорошо спланировали свои действия, но подход работает.

...