Oracle-12c
無法使用角色創建視圖
我正在學習Oracle並且必須扮演角色。我從一個系統創建了
c##admin
一個,授予他所有贈款。然後我創建了一個c##manager_role
andc##manager
。我將此角色授予c##manager
. 之後,我開始授予c##manager_role
. 此外,我授予以下內容:CREATE VIEW YES YES NO CREATE ANY VIEW NO NO NO DROP ANY VIEW YES YES NO
以上輸出來自:
select * from role_sys_privs where ROLE = 'C##MANAGER_ROLE' order by 1;
現在,我不明白,為什麼
CREATE ANY VIEW
有 3 個“否”以及為什麼我不能從c##manager
.來自 c##admin:
grant CREATE ANY VIEW TO c##manager_role with admin option CONTAINER=all;
來自 c##manager:
create view friends_v4 as select t1.nickname as "USER", t2.nickname as "FRIEND" from c##admin.clients t1, c##admin.clients t2, c##admin.friends where (t1.id = c##admin.friends.user_id and t2.id = c##admin.friends.friend_id);
錯誤:
錯誤報告 - ORA-01031: 權限不足 01031. 00000 - “權限不足”
*原因:試圖在沒有必要權限的情況下執行數據庫操作。
*行動:請您的數據庫管理員或指定的安全管理員授予您必要的權限
所有註明的表格都存在。
能夠創建視圖不是
$$ quite $$足夠。 主人
$$ account $$完成的視圖必須對該視圖使用的表具有讀取權限。這些權限不能通過任何角色授予。
grant read on friends to owner_of_friends_v4 ; grant read on clients to owner_of_friends_v4 ;
另外,您為什麼在這裡與普通使用者合作(從“C##”開始)?
我只希望在 Container 數據庫中看到這些,而不是任何存在於其中的 Pluggable 數據庫(這是我希望看到所有應用程序表和數據的地方)。