數據庫權限管理
權限是用戶對一項功能的執行權利,在oracle中,根據系統管理方式的不同,可將權限分為系統權限與對象權限兩類
系統權限
系統權限是指被授權用戶是否可以連接到數據庫上及數據庫中可以進行哪些系統操作,系統權限是在數據庫中執行某種系統疾病的操作,
或者針對某一類別的對象執行某種操作的權利,如,在數據庫中創建表空間的權利或者在數據庫中創建表的權利,這些都屬於系統權限
常見的系統權限如下:
- create session :連接到數據庫
- create table:創建表
- create view:創建視圖
- create sequence:創建序列
對象權限
對象權限是指用戶對數據庫中具體對象所擁有的權限,對象權限針對某個特定的模式對象執行操作的權利,只能針對模式來設置和管理
對象權限,如數據庫中的表,視圖,序列,存儲過程,存儲函數等
oracle數據庫用戶有兩種途徑獲得權限
- 管理員直接向用戶授予權限。
- 管理員將權限授予角色,然后再將角色授予一一個或多個用戶。
使用角色能夠更加方便和高效地對權限進行管理,所以數據庫管理員通常使用角色向用戶授予權限,而不是直接向用戶授予權限。在
Oracle數據庫系統中預定義了很多的角色,其中最常用的有CONNECT角色、RESOURCE角色、DBA角色等。一般程序使用的用戶只要授
予CONNECT和RESOURCE兩個角色即可。DBA角色具有所有的系統權限,並且可以給其他用戶、角色授權。
Oracle中常用的系統預定義角色如下。
- CONNECT:需要連接上數據庫的用戶,特別是那些不需要創建表的用戶.通常授予該角色,可對數據進行增刪改查。
- RESOURCE:更為可靠和正式的數據庫用戶可以授予該角色,可以創建表、觸發器、過程等。
- DBA.數據庫管理員角色,擁有管理數據庫的最高權限。一個具有DBA角色的用戶可以撤銷任何其他用戶甚至其他DBA權限,這是很危險的,所以不要輕易授予該角色。
新創建的用戶必須授予一定的權限才能進行相關數據庫操作。授權通過GRANT請句來實現,而取消授權則通過REVOKE語句實現。
授予權限語法:GRANT 權限|角色 to 用戶名
撤銷權限語法:revoke 權限|角色 from 用戶名
grant connect,resource to martin --授予connect和resource兩個角色 revoke connect,resource from martin --撤銷connect和resource兩個角色 grant select,scott.emp to martin --允許用戶查看emp表中的記錄 grant update,scott.emp to martin --允許用戶更新emp表中的記錄
數據庫安全設計原則
- 數據庫用戶權限權限按照最小分配原則
- 數據庫用戶分為管理,應用,維護,備份四類用戶
- 不允許使用SYS和system用戶建立數據庫應用對象
- 禁止grant dba to user