Недостаточно прав при создании индекса в Oracle 11g

Я пытаюсь создать индекс в Oracle, мой ddl:

create index OMD_DOCTEXT2_CTX on table_name(col_name)
indextype is ctxsys.context local
parameters ('datastore CTXSYS.FILE_DATASTORE filter ctxsys.null_filter  lexer E2LEX wordlist E2WORDLIST stoplist E2STOP section group E2GROUP') parallel 4;

Я получаю ошибку:

ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
ORA-20000: Oracle Text error:
DRG-10758: index owner does not have the privilege to use file or URL datastore
ORA-06512: at "CTXSYS.DRUE", line 160
ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 366

Есть идеи?

1 ответ

Из текстовой документации Oracle:

Хранилища файлов и URL-адресов обеспечивают доступ к файлам на реальном диске базы данных. Это может быть нежелательно, когда возникает проблема безопасности, поскольку любой пользователь может просматривать файловую систему, доступную для пользователя Oracle. Системный параметр FILE_ACCESS_ROLE может использоваться для задания имени роли базы данных, которая авторизована для создания индекса с использованием хранилищ данных FILE или URL. Если установлено, любой пользователь, пытающийся создать индекс с использованием хранилищ данных FILE или URL, должен иметь эту роль, иначе создание индекса завершится неудачно.

Например, следующий оператор устанавливает имя роли базы данных:

ctx_adm.set_parameter('FILE_ACCESS_ROLE','TOPCAT');

где TOPCAT - это роль, которая авторизована для создания индекса в хранилище данных файла или URL. Операция CREATE INDEX завершится ошибкой, когда пользователь, у которого нет авторизованной роли, попытается создать индекс для файла или хранилища данных URL.

Итак, имеет ли ваш пользователь необходимую роль?

Другие вопросы по тегам