Как получить доступ к хранилищу IBM DB2 в облаке с правами администратора - PullRequest
0 голосов
/ 12 февраля 2019

В настоящее время я использую бесплатное хранилище DB2 в облаке, предоставленное IBM.Я пытаюсь создать новую таблицу в базе данных.Однако появляется сообщение об ошибке, в котором говорится, что enter image description here. Чтобы устранить эту проблему, я открываю веб-консоль и запускаю следующую команду: create tablespace mytablespace pagesize 4096.Затем появляется другое сообщение об ошибке: enter image description here

Исходя из того, что я погуглил, похоже, мне нужно предоставить роль администратора для пользователя "DASH ******».Поэтому я делаю это, добавляя необязательный параметр к учетным данным: enter image description here

Но это не работает.Есть ли способ обойти это?

EDIT1: Я создаю таблицу с помощью следующей команды:
enter image description here

1 Ответ

0 голосов
/ 12 февраля 2019

Пользователям не разрешается создавать свои собственные табличные пространства в свободных DB2WoC системах, поскольку у них там нет прав доступа SYSCTRL или SYSADM.Вы должны использовать существующие табличные пространства, в которых вам разрешено создавать таблицы.
Запустите следующий оператор от вашего DASH*** пользователя.
Этот оператор возвращает все табличные пространства, где вашему пользователю разрешено создавать таблицы.Если он не возвращает никаких строк, это означает, что вам следует открыть заявку в службу поддержки IBM.Служба поддержки должна создать его для вас и предоставить вашему пользователю привилегию USE для этого табличного пространства.

SELECT  
  T.DATATYPE
--, P.PRIVILEGE
--, P.OBJECTTYPE
--, P.OBJECTSCHEMA
, P.OBJECTNAME
, U.AUTHID, U.AUTHIDTYPE
FROM SYSIBMADM.PRIVILEGES P
CROSS JOIN TABLE(VALUES USER) A (AUTHID)
JOIN TABLE (
SELECT GROUP, 'G' FROM table(AUTH_LIST_GROUPS_FOR_AUTHID(A.AUTHID))
  UNION ALL
select ROLENAME, 'R' from table(AUTH_LIST_ROLES_FOR_AUTHID(A.AUTHID, 'U'))
  UNION ALL
SELECT * FROM TABLE(VALUES ('PUBLIC', 'G'), (A.AUTHID, 'U')) T (AUTHID, AUTHIDTYPE)
) U (AUTHID, AUTHIDTYPE) ON U.AUTHID=P.AUTHID AND U.AUTHIDTYPE=P.AUTHIDTYPE
JOIN SYSCAT.TABLESPACES T ON T.TBSPACE=P.OBJECTNAME
WHERE P.OBJECTTYPE='TABLESPACE' AND T.DATATYPE IN ('A', 'L')
...