Как предоставить SELECT для таблицы, содержащей переменный массив - PullRequest
3 голосов
/ 05 февраля 2012

Я пытаюсь разрешить роли с именем Head иметь возможность запрашивать таблицу с названием ReportDetails .Таблица ReportDetails содержит переменный массив с именем ReportEntries_VA .Я прошел тестирование своей базы данных и обнаружил, что, хотя я предоставил SELECT для 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));

Затем привилегия предоставляется Голова следующим образом:

GRANT SELECT ON ReportDetails TO Head;

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

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

1 Ответ

3 голосов
/ 05 февраля 2012

Вам необходимо предоставить EXECUTE привилегию для всех типов вашей роли Head.

GRANT EXECUTE ON ReportEntries_Type to Head;
GRANT EXECUTE ON ReportEntries_VA   to Head;

См. Управление объектами Oracle .

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