學習Oracle時,你可能會遇到Oracle對象特權問題,這里將介紹Oracle對象特權問題的解決方法,在這里拿出來和大家分享一下。Oracle對象特權使得被授予者可以以特定方式使用另一用戶所擁有的模式對象。有些特權只適用于某些模式對象。例如INDEX特權只適用于表,而SELECT特權則適用于表、視圖和序列。
1. 下面這些特權可以被個別授予,被組合在一個列表中授予,或借助關鍵字ALL被全部授予。
2. 在使用ALL關鍵字時需要特別小心。它可能會隱含地授予威力強大的特權
表對象特權
下面這些特權經常被授予,而且應該完全了解它們。
1. SELECT允許查詢指定表
2. INSERT允許在指定表創(chuàng)建新行
3. UPDATE允許修改指定表的現(xiàn)有行
4. DELETE允許刪除指定表的行
5. ALTER允許添加、修改或重命名指定表中的列,轉移該表到另一個表空間,乃至重命名指定表。
6. DEBUG允許被授權者借助于一個調度程序訪問指定表上的任意觸發(fā)器中的PL/SQL代碼
7. INDEX允許被授權者在指定表上創(chuàng)建新的索引
8. REFERENCES允許創(chuàng)建參考指定表的外部鍵約束
視圖對象特權
1. SELECT查詢指定視圖
2. INSERT允許在指定視圖創(chuàng)建新行
3. UPDATE允許修改指定視圖的現(xiàn)有行
4. DELETE允許刪除指定視圖的行
5. DEBUG允許被授權者借助于一個調度程序訪問指定視圖上的任意觸發(fā)器中的PL/SQL代碼
6. REFERENCES允許創(chuàng)建參考指定視圖的外部鍵約束
序列對象特權
1. SELECT允許訪問當前值和下一個值(即CURRVAL和NEXTVAL)
2. ALTER允許修改指定序列的屬性
存儲過程、函數(shù)、過程、包和JAVA對象特權
1. DEBUG允許訪問指定程序中所聲明的所有公用與私有變量與類型如果對象是包,還允許訪問包規(guī)范與主體允許在指定程序中放置斷點
2. EXCUTE允許執(zhí)行指定程序。如果對象是包,那么表規(guī)范中所聲明的任意一個程序、變量、類型、油標或記錄均允許訪問
實例
1. 把CUSTOMERS表上的SELECT,INSERT,UPDATE和DELETE特權授予角色SALES_MANAGER
2. 如果把特權授予特殊用戶PUBLIC,那么特權變成對當前與未來數(shù)據(jù)庫所有用戶均可訪問。如下例將允許所有用戶在CUSTOMERS表上SELECT。
3. 參數(shù)"WITH GRANT OPTION"允許被授與者繼續(xù)把得到的Oracle對象特權授予其它用戶。下例把sales擁有的表customers的SELECT權限授予sales_admin,并且同時允許sales_admin把該特權授予其它用戶
當通過WITH GRANT OPTION參數(shù)獲得的特權被取消時,該取消發(fā)生級聯(lián)作用。例如Mary授予Zachary在表client上的select特權,同時Zachary又把該特權授予Rex。當Mary取消Zachary的特權時,Rex的特權也被取消。
當用戶Mary同時從多個用戶獲得同一個特權,當其中一個用戶的特權被取消時,Mary的特權不會被取消,直至授予Mary授權的所有用戶均被取消該特權。以上介紹Oracle對象特權。
關鍵詞標簽:Oracle
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法