我试图允许标题为头的角色能够查询标题为 ReportDetails 的表。表格 ReportDetails 包含一个名为 ReportEntries_VA 的可变数组。我已经对数据库进行了测试,发现即使我已在 ReportDetails 上授予SELECT权限,但头仍然无法访问 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;
我将如何允许头访问变化的数组(以及在它之前创建的对象?)的任何建议将不胜感激。
非常感谢,
祖鲁族
最佳答案
您需要授予EXECUTE
角色所有类型的Head
特权。
GRANT EXECUTE ON ReportEntries_Type to Head;
GRANT EXECUTE ON ReportEntries_VA to Head;
参见Managing Oracle Objects。