Như đã lưu ý trong tài liệu (nhấn mạnh thêm):
Nếu bạn chỉ có đặc quyền đã chọn trên bảng bên dưới được cấp thông qua một vai trò thì bạn không thể tạo chế độ xem chống lại nó. Ngay cả khi bạn chuyển sang vai trò nói chung, bạn sẽ phải giữ quyền cấp rõ ràng cho bất kỳ chế độ xem nào bạn muốn tạo.
Tôi tưởng tượng điều này liên quan đến cách thức hoạt động của các vai trò. Với một khoản trợ cấp trực tiếp, Oracle biết liệu bạn có thể nhìn thấy bảng trong lược đồ khác hay không. Nếu bạn cấp quyền chọn trên chế độ xem của mình cho người khác thì khi họ truy vấn chế độ xem, Oracle biết rằng chuỗi đặc quyền ở đó. Nếu khoản trợ cấp trực tiếp của bạn trên bảng bị thu hồi thì có các cơ chế để làm mất hiệu lực các đối tượng phụ thuộc. Nhưng điều gì sẽ xảy ra, đặc quyền chọn của vai trò trên bảng bị thu hồi; hoặc quyền truy cập của bạn vào vai trò bị thu hồi; hoặc ngay trong phiên của riêng bạn, điều gì sẽ xảy ra nếu bạn vô hiệu hóa vai trò đó - bạn vẫn có thể truy cập chế độ xem chứ? Thoạt nhìn có vẻ phức tạp hơn một chút.
May mắn thay, việc tạo lượt xem nên tương đối hiếm và có thể kiểm soát được. Hầu hết mọi người truy cập bảng thông qua vai trò sẽ không cần tạo chế độ xem trên đó (tôi giả sử như vậy!).
Một tùy chọn khác ở đây là tạo chế độ xem trong ARIEL
lược đồ, rồi cấp đặc quyền cho APEX_ARIEL
và / hoặc một vai trò. Điều đó có phù hợp hay không tùy thuộc vào truy vấn chế độ xem thực của bạn và động cơ tạo chế độ xem.