Oracle系統(tǒng)權限和角色權限
Oracle系統(tǒng)權限和角色權限都對用戶的權限作了相應的限制,這也在一定程度上保護了數(shù)據(jù)庫的訪問安全。下面就讓我們來一起了解一下。
Oracle系統(tǒng)權限
Oracle系統(tǒng)權限需要授予者有進行系統(tǒng)級活動的能力,如連接數(shù)據(jù)庫,更改用戶會話、建立表或建立用戶等等。你可以在數(shù)據(jù)字典視圖SYSTEM_PRIVILEGE_MAP上獲得完整的系統(tǒng)權限。
對象權限和Oracle系統(tǒng)權限都通過GRANT語句授予用戶或角色。需要注意的是在授予對象權限時語句應該是WITH GRANT OPTION子句,但在授予系統(tǒng)權象時語句是WITH ADMIN OPTION,所以在你試圖授予系統(tǒng)權限時,使用語句WITH GRANT OPTION系統(tǒng)會報告一個錯誤:ONLY ADMIN OPTION can be specified。要特別注意這個語法和錯誤信息。
角色和角色權限
角色權限就是將屬于用戶的權限授予一個角色。任何權限都可以授予給一個角色。授予系統(tǒng)權限給被授予者必須使用WITH_ADMIN_OPTION子句,在會話期間通過SET ROLE語句授予或撤銷角色權限。
然而,角色權限不能依靠存儲在SQL中的權限。如果函數(shù)、程序、包、觸發(fā)器或者方法使用另一個計劃擁有的對象,那么就必須直接給對象的擁有者授權,這是因為權限不會在會話之間改變。
授予和撤銷權限
給用戶或者角色授予權限使用GRANT 語句,GRANT語句的語法如下:
GRANT ROLE(或system privilege) TO user(role,Public) WITH ADMIN OPTION(可選)
對象權限被授予 WITH GRANT OPTION
【編輯推薦】