允许角色查询,插入和更新变化的数组

时间:2012-02-05 14:12:51

标签: sql database oracle

my last question ......

的轻微变化

我正在尝试允许名为 Head 的角色查询标题为 ReportDetails 的表格。表 ReportDetails 包含一个名为 ReportEntries_VA 的变量数组。我已经测试了我的数据库并发现即使我已经在 ReportDetails 上授予SELECT,INSERT,UPDATE, 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 :(得分:0)

您还需要在varray上授予执行权。