Небольшое отклонение от мой последний вопрос ...
Я пытаюсь разрешить роли с названием 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 вставлять и изменять изменяющийся массив (и объект, созданный до этого?), Будут с благодарностью.
Большое спасибо, Зулу