Разрешение роли запрашивать, вставлять и обновлять переменный массив - PullRequest
2 голосов
/ 05 февраля 2012

Небольшое отклонение от мой последний вопрос ...

Я пытаюсь разрешить роли с названием Head иметь возможность запросить таблицу с названием ReportDetails .Таблица ReportDetails содержит переменный массив с именем ReportEntries_VA .Я прошел тестирование своей базы данных и обнаружил, что, несмотря на то, что я предоставил SELECT, INSERT, UPDATE для ReportDetails , Head , все равно не могу получить доступ к ReportEntries_VA .

Код выглядит следующим образом:

CREATE TYPE ReportEntries_Type AS OBJECT
(Subject VARCHAR (500));
/

CREATE OR REPLACE TYPE ReportEntries_VA AS
VARRAY (12) OF ReportEntries_Type;
/

CREATE TABLE ReportDetails
(ReportID INTEGER NOT NULL UNIQUE,
StudentID INTEGER NOT NULL UNIQUE,
ReportEntries ReportEntries_VA,
DateLastModified DATE NOT NULL,
CONSTRAINT ReportDetails_PK PRIMARY KEY (ReportID, StudentID),
CONSTRAINT RDStudentIDSD FOREIGN KEY (StudentID)
REFERENCES StudentDetails (StudentID));

Затем привилегия предоставляется Head:

GRANT SELECT, INSERT, UPDATE ON ReportDetails TO Head;

Я понимаю, что могу использовать это для запроса, но не для вставки или обновления:

GRANT EXECUTE ON ReportEntries_Type TO Head;
GRANT EXECUTE ON ReportEntries_VA TO Head;

Когда я пытаюсь вставить строки, я получаю следующее: ORA-01031: insufficient privileges, хотя я предоставил SELECT, INSERT, UPDATE для таблицы и выполняю наобъект и переменный массив.По сути, это не позволяет мне вставлять или обновлять массив

Любые предложения относительно того, как я могу позволить Head вставлять и изменять изменяющийся массив (и объект, созданный до этого?), Будут с благодарностью.

Большое спасибо, Зулу

1 Ответ

0 голосов
/ 09 сентября 2014

Вы должны также предоставить выполнение на varray.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...