在成功的建立用戶以後,僅僅表示該用戶在 Oracle 系統中進行了註冊,這樣的用戶不能鏈接到數據庫。要使用戶可以鏈接到 Oracle 數據庫並使用 Oracle 的資源,必須讓具備 DBA 角色的用戶對該用戶進行受權。數據庫
根據系統管理方式的不一樣,在 Oracle 數據庫將權限分爲兩大類:系統權限和對象權限。安全
系統權限是在系統級對數據庫進行存取和使用的機制,好比用戶是否能鏈接到數據庫系統、執行系統級的DDL語句(如create、alter和drop)等函數
對象權限是指某一用戶對其餘用戶的表、視圖、序列、存儲過程、函數、包等的操做權限。不一樣類型的對象具備不一樣的對象權限,對於某些模式對象,好比簇、索引、觸發器等、數據庫鏈接等沒有相應的實體權限,這些權限由系統權限進行管理。spa
在 Oracle 11g 中有200多種系統特權,而且全部這些系統特權被列舉在system_privilege_map 數據目錄視圖中。受權操做使用grant 命令對象
語法: grant sys_privi | role to user | role | public [ with admin option ] 索引
通常用戶若被授予多高的權限就可能給 Oracle 系統帶來安全隱患。 Oracle 的管理員,應該可以查詢當前 Oracle 系統各個用戶的權限,而且可以使用 revoke 命令撤銷用戶的某些沒必要要的系統權限。資源
語法: revoke sys_privi | role from user | role | public it
授予對象權限給用戶或角色也使用 grant 命令。io
語法: grant obj_privi | all column on schema.object to user | role | public [ with grant option ] [ with hierarchy option ] table
要從用戶或角色中回收對象權限,仍然使用revoke 命令。
語法: revoke obj_privi | all on schema.object from user | role | public cascade constraints
用戶被授予的系統權限或對象權限都被記錄在 Oracle 的數據字典裏,瞭解某個用戶被授予哪些系統權限和對象權限是確保應用系統安全的重要工做。下表是Oracle 11g 用於存放用戶、系統權限、對象權限有關的數據字典。
數據字典名稱 | 說 明 |
DBA_Users | 數據庫用戶基本信息表 |
DBA_sys_privs | 已授予用戶或角色的系統權限 |
DBA_TAB_privs | 數據庫對象上的全部權限 |
User_SYS_privs | 登陸用戶能夠查看本身的系統權限 |
role_sys_privs | 登陸用戶查看本身的角色 |
all_tables | 用戶本身能夠查詢的基表信息 |